diff --git a/Gemfile b/Gemfile index be2518b..9d1c38a 100644 --- a/Gemfile +++ b/Gemfile @@ -1,7 +1,7 @@ source "http://rubygems.org" group :development do - gem 'rake', '~> 0.9.2' + gem 'rake', '~> 10.0.2' gem 'rack', '~> 1.4.1' gem 'jekyll', '~> 0.11.2' gem 'rdiscount', '~> 1.6.8' diff --git a/Gemfile.lock b/Gemfile.lock index 5060be1..7a4a49d 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -34,7 +34,7 @@ GEM rack (1.4.1) rack-protection (1.2.0) rack - rake (0.9.2.2) + rake (10.0.2) rb-fsevent (0.9.1) rdiscount (1.6.8) rubypants (0.2.0) @@ -61,7 +61,7 @@ DEPENDENCIES liquid (~> 2.3.0) pygments.rb (~> 0.2.12) rack (~> 1.4.1) - rake (~> 0.9.2) + rake (~> 10.0.2) rb-fsevent (~> 0.9) rdiscount (~> 1.6.8) rubypants (~> 0.2.0) diff --git a/Gemfile~ b/Gemfile~ new file mode 100644 index 0000000..9d1c38a --- /dev/null +++ b/Gemfile~ @@ -0,0 +1,18 @@ +source "http://rubygems.org" + +group :development do + gem 'rake', '~> 10.0.2' + gem 'rack', '~> 1.4.1' + gem 'jekyll', '~> 0.11.2' + gem 'rdiscount', '~> 1.6.8' + gem 'pygments.rb', '~> 0.2.12' + gem 'RedCloth', '~> 4.2.9' + gem 'haml', '~> 3.1.6' + gem 'compass', '~> 0.12.1' + gem 'rubypants', '~> 0.2.0' + gem 'rb-fsevent', '~> 0.9' + gem 'stringex', '~> 1.4.0' + gem 'liquid', '~> 2.3.0' +end + +gem 'sinatra', '~> 1.3.2' diff --git a/_config.yml b/_config.yml index fb29684..47cfbed 100644 --- a/_config.yml +++ b/_config.yml @@ -2,12 +2,12 @@ # Main Configs # # ----------------------- # -url: http://yoursite.com -title: My Octopress Blog -subtitle: A blogging framework for hackers. -author: Your Name +url: http://toozhao.com +title: 大染志 +subtitle: 无名程序员 +author: Junv simple_search: http://google.com/search -description: +description: # Default date format is "ordinal" (resulting in "July 22nd 2007") # You can customize the format as defined in @@ -36,7 +36,7 @@ category_dir: blog/categories markdown: rdiscount pygments: false # default python pygments have been replaced by pygments.rb -paginate: 10 # Posts per page on the blog index +paginate: 8 # Posts per page on the blog index pagination_dir: blog # Directory base for pagination URLs eg. /blog/page/2/ recent_posts: 5 # Posts in the sidebar Recent Posts section excerpt_link: "Read on →" # "Continue reading" link text at the bottom of excerpted articles @@ -58,7 +58,7 @@ default_asides: [asides/recent_posts.html, asides/github.html, asides/twitter.ht # ----------------------- # # Github repositories -github_user: +github_user: wahyd4 github_repo_count: 0 github_show_profile_link: true github_skip_forks: true @@ -89,11 +89,12 @@ delicious_user: delicious_count: 3 # Disqus Comments -disqus_short_name: -disqus_show_comment_count: false +disqus_short_name: wahyd4 +disqus_show_comment_count: true # Google Analytics -google_analytics_tracking_id: +google_analytics_tracking_id: UA-5243064-16 # Facebook Like facebook_like: false + diff --git a/_config.yml~ b/_config.yml~ new file mode 100644 index 0000000..15372ae --- /dev/null +++ b/_config.yml~ @@ -0,0 +1,100 @@ +# ----------------------- # +# Main Configs # +# ----------------------- # + +url: http://wahyd4.github.com +title: Junv's Blog +subtitle: nothing to say +author: Junv +simple_search: http://google.com/search +description: + +# Default date format is "ordinal" (resulting in "July 22nd 2007") +# You can customize the format as defined in +# http://www.ruby-doc.org/core-1.9.2/Time.html#method-i-strftime +# Additionally, %o will give you the ordinal representation of the day +date_format: "ordinal" + +# RSS / Email (optional) subscription links (change if using something like Feedburner) +subscribe_rss: /atom.xml +subscribe_email: +# RSS feeds can list your email address if you like +email: + +# ----------------------- # +# Jekyll & Plugins # +# ----------------------- # + +# If publishing to a subdirectory as in http://site.com/project set 'root: /project' +root: / +permalink: /blog/:year/:month/:day/:title/ +source: source +destination: public +plugins: plugins +code_dir: downloads/code +category_dir: blog/categories +markdown: rdiscount +pygments: false # default python pygments have been replaced by pygments.rb + +paginate: 10 # Posts per page on the blog index +pagination_dir: blog # Directory base for pagination URLs eg. /blog/page/2/ +recent_posts: 5 # Posts in the sidebar Recent Posts section +excerpt_link: "Read on →" # "Continue reading" link text at the bottom of excerpted articles + +titlecase: true # Converts page and post titles to titlecase + +# list each of the sidebar modules you want to include, in the order you want them to appear. +# To add custom asides, create files in /source/_includes/custom/asides/ and add them to the list like 'custom/asides/custom_aside_name.html' +default_asides: [asides/recent_posts.html, asides/github.html, asides/twitter.html, asides/delicious.html, asides/pinboard.html, asides/googleplus.html] + +# Each layout uses the default asides, but they can have their own asides instead. Simply uncomment the lines below +# and add an array with the asides you want to use. +# blog_index_asides: +# post_asides: +# page_asides: + +# ----------------------- # +# 3rd Party Settings # +# ----------------------- # + +# Github repositories +github_user: wahyd4 +github_repo_count: 0 +github_show_profile_link: true +github_skip_forks: true + +# Twitter +twitter_user: +twitter_tweet_count: 4 +twitter_show_replies: false +twitter_follow_button: true +twitter_show_follower_count: false +twitter_tweet_button: true + +# Google +1 +google_plus_one: false +google_plus_one_size: medium + +# Google Plus Profile +# Hidden: No visible button, just add author information to search results +googleplus_user: +googleplus_hidden: false + +# Pinboard +pinboard_user: +pinboard_count: 3 + +# Delicious +delicious_user: +delicious_count: 3 + +# Disqus Comments +disqus_short_name: +disqus_show_comment_count: false + +# Google Analytics +google_analytics_tracking_id: + +# Facebook Like +facebook_like: false + diff --git a/sass/_base.scss b/sass/_base.scss new file mode 100644 index 0000000..05fdd00 --- /dev/null +++ b/sass/_base.scss @@ -0,0 +1,5 @@ +@import "base/utilities"; +@import "base/solarized"; +@import "base/theme"; +@import "base/typography"; +@import "base/layout"; diff --git a/sass/_partials.scss b/sass/_partials.scss new file mode 100644 index 0000000..99c28b6 --- /dev/null +++ b/sass/_partials.scss @@ -0,0 +1,8 @@ +@import "partials/header"; +@import "partials/navigation"; +@import "partials/blog"; +@import "partials/sharing"; +@import "partials/syntax"; +@import "partials/archive"; +@import "partials/sidebar"; +@import "partials/footer"; diff --git a/sass/base/_layout.scss b/sass/base/_layout.scss new file mode 100644 index 0000000..8190342 --- /dev/null +++ b/sass/base/_layout.scss @@ -0,0 +1,192 @@ +$max-width: 1200px !default; + +// Padding used for layout margins +$pad-min: 18px !default; +$pad-narrow: 25px !default; +$pad-medium: 35px !default; +$pad-wide: 55px !default; + +// Sidebar widths used in media queries +$sidebar-width-medium: 240px !default; +$sidebar-pad-medium: 15px !default; +$sidebar-pad-wide: 20px !default; +$sidebar-width-wide: 300px !default; + +$indented-lists: false !default; + +$header-font-size: 1em !default; +$header-padding-top: 1.5em !default; +$header-padding-bottom: 1.5em !default; + +.group { @include pie-clearfix; } + +@mixin collapse-sidebar { + float: none; + width: auto; + clear: left; + margin: 0; + padding: 0 $pad-medium 1px; + background-color: lighten($sidebar-bg, 2); + border-top: 1px solid lighten($sidebar-border, 4); + section { + &.odd, &.even { float: left; width: 48%; } + &.odd { margin-left: 0; } + &.even { margin-left: 4%; } + } + &.thirds section { + width: 30%; + margin-left: 5%; + &.first { + margin-left: 0; + clear: both; + } + } +} + +body { + -webkit-text-size-adjust: none; + max-width: $max-width; + position: relative; + margin: 0 auto; + > header, > nav, > footer, #content > article, #content > div > article, #content > div > section { + @extend .group; + padding-left: $pad-min; + padding-right: $pad-min; + @media only screen and (min-width: 480px) { + padding-left: $pad-narrow; + padding-right: $pad-narrow; + } + @media only screen and (min-width: 768px) { + padding-left: $pad-medium; + padding-right: $pad-medium; + } + @media only screen and (min-width: 992px) { + padding-left: $pad-wide; + padding-right: $pad-wide; + } + } + div.pagination { + @extend .group; + margin-left: $pad-min; + margin-right: $pad-min; + @media only screen and (min-width: 480px) { + margin-left: $pad-narrow; + margin-right: $pad-narrow; + } + @media only screen and (min-width: 768px) { + margin-left: $pad-medium; + margin-right: $pad-medium; + } + @media only screen and (min-width: 992px) { + margin-left: $pad-wide; + margin-right: $pad-wide; + } + } + > header { + font-size: $header-font-size; + padding-top: $header-padding-top; + padding-bottom: $header-padding-bottom; + } +} + +#content { + overflow: hidden; + > div, > article { width: 100%; } +} + +aside.sidebar { + float: none; + padding: 0 $pad-min 1px; + background-color: lighten($sidebar-bg, 2); + border-top: 1px solid $sidebar-border; + @extend .group; +} + +.flex-content { max-width: 100%; height: auto; } + +.basic-alignment { + &.left { float: left; margin-right: 1.5em; } + &.right { float: right; margin-left: 1.5em; } + &.center { display:block; margin: 0 auto 1.5em; } + &.left, &.right { margin-bottom: .8em; } +} + +.toggle-sidebar { &, .no-sidebar & { display: none; }} + +body.sidebar-footer { + @media only screen and (min-width: 750px) { + aside.sidebar{ @include collapse-sidebar; } + } + #content { margin-right: 0px; } + .toggle-sidebar { display: none; } +} + +@media only screen and (min-width: 550px) { + body > header { font-size: $header-font-size; } +} +@media only screen and (min-width: 750px) { + aside.sidebar { @include collapse-sidebar; } +} +#main, #content, .sidebar { + @extend .group; +} +@media only screen and (min-width: 768px) { + body { -webkit-text-size-adjust: auto; } + body > header { font-size: $header-font-size * 1.2; } + #main { + padding: 0; + margin: 0 auto; + } + #content { + overflow: visible; + margin-right: $sidebar-width-medium; + position: relative; + .no-sidebar & { margin-right: 0; border-right: 0; } + .collapse-sidebar & { margin-right: 20px; } + > div, > article { + padding-top: $pad-medium/2; + padding-bottom: $pad-medium/2; + float: left; + } + } + aside.sidebar { + width: $sidebar-width-medium - $sidebar-pad-medium*2; + padding: 0 $sidebar-pad-medium $sidebar-pad-medium; + background: none; + clear: none; + float: left; + margin: 0 -100% 0 0; + section { + width: auto; margin-left: 0; + &.odd, &.even { float: none; width: auto; margin-left: 0; } + } + .collapse-sidebar & { + @include collapse-sidebar; + } + } +} + +@media only screen and (min-width: 992px) { + body > header { font-size: $header-font-size * 1.3; } + #content { margin-right: $sidebar-width-wide; } + #content { + > div, > article { + padding-top: $pad-wide/2; + padding-bottom: $pad-wide/2; + } + } + aside.sidebar { + width: $sidebar-width-wide - $sidebar-pad-wide*2; + padding: 1.2em $sidebar-pad-wide $sidebar-pad-wide; + .collapse-sidebar & { + padding: { left: $pad-wide; right: $pad-wide; } + } + } +} + +@if $indented-lists == false { + @media only screen and (min-width: 768px) { + ul, ol { margin-left: 0; } + } +} + diff --git a/sass/base/_solarized.scss b/sass/base/_solarized.scss new file mode 100644 index 0000000..45d8fc5 --- /dev/null +++ b/sass/base/_solarized.scss @@ -0,0 +1,46 @@ +$base03: #002b36 !default; //darkest blue +$base02: #073642 !default; //dark blue +$base01: #586e75 !default; //darkest gray +$base00: #657b83 !default; //dark gray +$base0: #839496 !default; //medium gray +$base1: #93a1a1 !default; //medium light gray +$base2: #eee8d5 !default; //cream +$base3: #fdf6e3 !default; //white +$solar-yellow: #b58900 !default; +$solar-orange: #cb4b16 !default; +$solar-red: #dc322f !default; +$solar-magenta: #d33682 !default; +$solar-violet: #6c71c4 !default; +$solar-blue: #268bd2 !default; +$solar-cyan: #2aa198 !default; +$solar-green: #859900 !default; + +$solarized: dark !default; + +@if $solarized == light { + + $_base03: $base03; + $_base02: $base02; + $_base01: $base01; + $_base00: $base00; + $_base0: $base0; + $_base1: $base1; + $_base2: $base2; + $_base3: $base3; + + $base03: $_base3; + $base02: $_base2; + $base01: $_base1; + $base00: $_base0; + $base0: $_base00; + $base1: $_base01; + $base2: $_base02; + $base3: $_base03; +} + +/* non highlighted code colors */ +$pre-bg: $base03 !default; +$pre-border: darken($base02, 5) !default; +$pre-color: $base1 !default; + + diff --git a/sass/base/_theme.scss b/sass/base/_theme.scss new file mode 100644 index 0000000..9a50a8b --- /dev/null +++ b/sass/base/_theme.scss @@ -0,0 +1,86 @@ +$noise-bg: image-url('noise.png') top left !default; +$img-border: inline-image('dotted-border.png'); + +// Main Link Colors +$link-color: lighten(#165b94, 3) !default; +$link-color-hover: adjust-color($link-color, $lightness: 10, $saturation: 25) !default; +$link-color-visited: adjust-color($link-color, $hue: 80, $lightness: -4) !default; +$link-color-active: adjust-color($link-color-hover, $lightness: -15) !default; + +// Main Section Colors +$main-bg: #f8f8f8 !default; +$page-bg: #252525 !default; +$article-border: #eeeeee !default; + +$header-bg: #333 !default; +$header-border: lighten($header-bg, 15) !default; +$title-color: #f2f2f2 !default; +$subtitle-color: #aaa !default; + +$text-color: #222 !default; +$text-color-light: #aaa !default; +$type-border: #ddd !default; + +/* Navigation */ +$nav-bg: #ccc !default; +$nav-bg-front: image-url('noise.png') !default; +$nav-bg-back: linear-gradient(lighten($nav-bg, 8), $nav-bg, darken($nav-bg, 11)) !default; +$nav-color: darken($nav-bg, 38) !default; +$nav-color-hover: darken($nav-color, 25) !default; +$nav-placeholder: desaturate(darken($nav-bg, 10), 15) !default; +$nav-border: darken($nav-bg, 10) !default; +$nav-border-top: lighten($nav-bg, 15) !default; +$nav-border-bottom: darken($nav-bg, 25) !default; +$nav-border-left: darken($nav-bg, 11) !default; +$nav-border-right: lighten($nav-bg, 7) !default; + +/* Sidebar colors */ +$sidebar-bg: #f2f2f2 !default; +$sidebar-link-color: $link-color !default; +$sidebar-link-color-hover: $link-color-hover !default; +$sidebar-link-color-active: $link-color-active !default; +$sidebar-color: change-color(mix($text-color, $sidebar-bg, 80), $hue: hue($sidebar-bg), $saturation: saturation($sidebar-bg)/2) !default; +$sidebar-border: desaturate(darken($sidebar-bg, 7), 10) !default; +$sidebar-border-hover: darken($sidebar-bg, 7) !default; +$sidebar-link-color-subdued: lighten($sidebar-color, 20) !default; +$sidebar-link-color-subdued-hover: $sidebar-link-color-hover !default; +$twitter-status-link: lighten($sidebar-link-color-subdued, 15) !default; + +$footer-color: #888 !default; +$footer-bg: #ccc !default; +$footer-bg-front: image-url('noise.png') !default; +$footer-bg-back: linear-gradient(lighten($footer-bg, 8), $footer-bg, darken($footer-bg, 11)) !default; +$footer-color: darken($footer-bg, 38) !default; +$footer-color-hover: darken($footer-color, 10) !default; +$footer-border-top: lighten($footer-bg, 15) !default; +$footer-border-bottom: darken($footer-bg, 15) !default; +$footer-link-color: darken($footer-bg, 38) !default; +$footer-link-color-hover: darken($footer-color, 25) !default; +$page-border-bottom: darken($footer-bg, 5) !default; + + +/* Core theme application */ + +a { + @include link-colors($link-color, $hover: $link-color-hover, $focus: $link-color-hover, $visited: $link-color-visited, $active: $link-color-active); +} +aside.sidebar a { + @include link-colors($sidebar-link-color, $hover: $sidebar-link-color-hover, $focus: $sidebar-link-color-hover, $active: $sidebar-link-color-active); +} +a { + @include transition(color .3s); +} + +html { + background: $page-bg image-url('line-tile.png') top left; +} +body { + > div { + background: $sidebar-bg $noise-bg; + border-bottom: 1px solid $page-border-bottom; + > div { + background: $main-bg $noise-bg; + border-right: 1px solid $sidebar-border; + } + } +} diff --git a/sass/base/_typography.scss b/sass/base/_typography.scss new file mode 100644 index 0000000..b68753f --- /dev/null +++ b/sass/base/_typography.scss @@ -0,0 +1,161 @@ +$blockquote: $type-border !default; +$sans: "PT Sans", "Helvetica Neue", Arial, sans-serif !default; +$serif: "PT Serif", Georgia, Times, "Times New Roman", serif !default; +$mono: Menlo, Monaco, "Andale Mono", "lucida console", "Courier New", monospace !default; +$heading-font-family: "PT Serif", "Georgia", "Helvetica Neue", Arial, sans-serif !default; +$header-title-font-family: $heading-font-family !default; +$header-subtitle-font-family: $heading-font-family !default; + +// Fonts +.heading { + font-family: $heading-font-family; +} +.sans { font-family: $sans; } +.serif { font-family: $serif; } +.mono { font-family: $mono; } + +body > header h1 { + font-size: 2.2em; + @extend .heading; + font-family: $header-title-font-family; + font-weight: normal; + line-height: 1.2em; + margin-bottom: 0.6667em; +} +body > header h2 { + font-family: $header-subtitle-font-family; +} + +body { + line-height: 1.5em; + color: $text-color; + @extend .serif; +} +h1 { + font-size: 2.2em; + line-height: 1.2em; +} + +@media only screen and (min-width: 992px) { + body { font-size: 1.15em; } + h1 { font-size: 2.6em; line-height: 1.2em; } +} + +#{headings()}{ + @extend .heading; + text-rendering: optimizelegibility; + margin-bottom: 1em; + font-weight: bold; +} +h2, section h1 { + font-size: 1.5em; +} +h3, section h2, section section h1 { + font-size: 1.3em; +} +h4, section h3, section section h2, section section section h1 { + font-size: 1em; +} +h5, section h4, section section h3 { + font-size: .9em; +} +h6, section h5, section section h4, section section section h3 { + font-size: .8em; +} +p, blockquote, ul, ol { margin-bottom: 1.5em; } + +ul { list-style-type: disc; + ul { list-style-type: circle; margin-bottom: 0px; + ul { list-style-type: square; margin-bottom: 0px; }}} + +ol { list-style-type: decimal; + ol { list-style-type: lower-alpha; margin-bottom: 0px; + ol { list-style-type: lower-roman; margin-bottom: 0px; }}} + +ul, ol { &, ul, ol { margin-left: 1.3em; }} + +strong { font-weight: bold; } + +em { font-style: italic; } + +sup, sub { font-size: 0.8em; position: relative; display: inline-block; } +sup { top: -.5em; } +sub { bottom: -.5em; } + +q { font-style: italic; + &:before { content: "\201C"; } + &:after { content: "\201D"; } +} + +em, dfn { font-style: italic; } + +strong, dfn { font-weight: bold; } + +del, s { text-decoration: line-through; } + +abbr, acronym { border-bottom: 1px dotted; cursor: help; } + +pre, code, tt { @extend .mono; } + +sub, sup { line-height: 0; } + +hr { margin-bottom: 0.2em; } + +small { font-size: .8em; } + +big { font-size: 1.2em; } + +blockquote { + $bq-margin: 1.2em; + font-style: italic; + position: relative; + font-size: 1.2em; + line-height: 1.5em; + padding-left: 1em; + border-left: 4px solid rgba($text-color-light, .5); + cite { + font-style: italic; + a { color: $text-color-light !important; word-wrap: break-word; } + &:before { content: '\2014'; padding:{right: .3em; left: .3em;} color: $text-color-light; } + } + @media only screen and (min-width: 992px) { + padding-left: 1.5em; + border-left-width: 4px; + } +} + +.pullquote-right:before, +.pullquote-left:before { + /* Reset metrics. */ + padding: 0; + border: none; + + /* Content */ + content: attr(data-pullquote); + + /* Pull out to the right, modular scale based margins. */ + float: right; + width: 45%; + margin: .5em 0 1em 1.5em; + + /* Baseline correction */ + position: relative; + top: 7px; + font-size: 1.4em; + line-height: 1.45em; +} + +.pullquote-left:before { + /* Make left pullquotes align properly. */ + float: left; + margin: .5em 1.5em 1em 0; +} + +/* @extend this to force long lines of continuous text to wrap */ +.force-wrap { + white-space: -moz-pre-wrap; + white-space: -pre-wrap; + white-space: -o-pre-wrap; + white-space: pre-wrap; + word-wrap: break-word; +} diff --git a/sass/base/_utilities.scss b/sass/base/_utilities.scss new file mode 100644 index 0000000..2d49e65 --- /dev/null +++ b/sass/base/_utilities.scss @@ -0,0 +1,28 @@ +@mixin mask-image($img, $repeat: no-repeat){ + @include experimental(mask-image, image-url($img), -webkit, -moz, -o, -ms); + @include experimental(mask-repeat, $repeat, -webkit, -moz, -o, -ms); + width: image-width($img); + height: image-height($img); +} + +@mixin shadow-box($border: #fff .5em solid, $shadow: rgba(#000, .15) 0 1px 4px, $border-radius: .3em) { + @include border-radius($border-radius); + @include box-shadow($shadow); + @include box-sizing(border-box); + border: $border; +} + +@mixin selection($bg, $color: inherit, $text-shadow: none){ + * { + &::-moz-selection { background: $bg; color: $color; text-shadow: $text-shadow; } + &::-webkit-selection { background: $bg; color: $color; text-shadow: $text-shadow; } + &::selection { background: $bg; color: $color; text-shadow: $text-shadow; } + } +} + +@function text-color($color, $dark: dark, $light: light){ + $text-color: ( (red($color)*299) + (green($color)*587) + (blue($color)*114) ) / 1000; + $text-color: if($text-color >= 150, $dark, $light); + @return $text-color; +} + diff --git a/sass/custom/_colors.scss b/sass/custom/_colors.scss new file mode 100644 index 0000000..740266a --- /dev/null +++ b/sass/custom/_colors.scss @@ -0,0 +1,43 @@ +// Here you can easily change your sites's color scheme. +// To give it a try, uncomment some of the lines below rebuild your blog, and see how it works. +// If you need a handy color picker try http://hslpicker.com + +//$header-bg: #263347; +//$subtitle-color: lighten($header-bg, 58); +//$nav-bg: desaturate(lighten(#8fc17a, 18), 5); +//$nav-bg-front: image-url('noise.png'); +//$nav-bg-back: linear-gradient(lighten($nav-bg, 8), $nav-bg, darken($nav-bg, 11)); +//$sidebar-bg: desaturate(#eceff5, 8); +//$sidebar-link-color: saturate(#526f9a, 10); +//$sidebar-link-color-hover: darken(#7ab662, 9); +//$footer-bg: #ccc !default; +//$footer-bg-front: image-url('noise.png'); +//$footer-bg-back: linear-gradient(lighten($footer-bg, 8), $footer-bg, darken($footer-bg, 11)); + + +/* To use the light Solarized highlighting theme uncomment the following line */ +//$solarized: light; + +/* If you want to tweak the Solarized colors you can do that here */ +//$base03: #002b36; //darkest blue +//$base02: #073642; //dark blue +//$base01: #586e75; //darkest gray +//$base00: #657b83; //dark gray +//$base0: #839496; //medium gray +//$base1: #93a1a1; //medium light gray +//$base2: #eee8d5; //cream +//$base3: #fdf6e3; //white +//$solar-yellow: #b58900; +//$solar-orange: #cb4b16; +//$solar-red: #dc322f; +//$solar-magenta: #d33682; +//$solar-violet: #6c71c4; +//$solar-blue: #268bd2; +//$solar-cyan: #2aa198; +//$solar-green: #859900; + + +/* Non highlighted code colors */ +//$pre-bg: $base03; +//$pre-border: darken($base02, 5); +//$pre-color: $base1; diff --git a/sass/custom/_fonts.scss b/sass/custom/_fonts.scss new file mode 100644 index 0000000..1a6b2a0 --- /dev/null +++ b/sass/custom/_fonts.scss @@ -0,0 +1,10 @@ +// Here you can easily change font faces which are used in your site. +// To give it a try, uncomment some of the lines below rebuild your blog, and see how it works. your sites's. +// If you love to use Web Fonts, you also need to add some lines to source/_includes/custom/head.html + +//$sans: "Optima", sans-serif; +//$serif: "Baskerville", serif; +//$mono: "Courier", monospace; +//$heading-font-family: "Verdana", sans-serif; +//$header-title-font-family: "Futura", sans-serif; +//$header-subtitle-font-family: "Futura", sans-serif; diff --git a/sass/custom/_layout.scss b/sass/custom/_layout.scss new file mode 100644 index 0000000..74c7de9 --- /dev/null +++ b/sass/custom/_layout.scss @@ -0,0 +1,21 @@ +// Here you can easily change your sites's layout. +// To give it a try, uncomment some of the lines below, make changes, rebuild your blog, and see how it works. + +//$header-font-size: 1em; +//$header-padding-top: 1.5em; +//$header-padding-bottom: 1.5em; + +//$max-width: 1350px; +//$indented-lists: true; + +// Padding used for layout margins +//$pad-min: 18px; +//$pad-narrow: 25px; +//$pad-medium: 35px; +//$pad-wide: 55px; + +// Sidebar widths used in media queries +//$sidebar-width-medium: 240px; +//$sidebar-pad-medium: 15px; +//$sidebar-pad-wide: 20px; +//$sidebar-width-wide: 300px; diff --git a/sass/custom/_styles.scss b/sass/custom/_styles.scss new file mode 100644 index 0000000..91ffccc --- /dev/null +++ b/sass/custom/_styles.scss @@ -0,0 +1,2 @@ +// This File is imported last, and will override other styles in the cascade +// Add styles here to make changes without digging in too much diff --git a/sass/partials/_archive.scss b/sass/partials/_archive.scss new file mode 100644 index 0000000..9ef1e82 --- /dev/null +++ b/sass/partials/_archive.scss @@ -0,0 +1,72 @@ +#archive { + #content > div { &, > article { padding-top: 0; } } +} +#blog-archives { + article { + padding: 1em 0 1em; + position: relative; + background: $img-border bottom left repeat-x; + &:last-child { + background: none; + } + footer { padding: 0; margin: 0;} + } + h1 { color: $text-color; margin-bottom: .3em; } + h2 { display: none; } + h1 { + font-size: 1.5em; + a { + @include hover-link; + color: inherit; + &:hover { color: $link-color-hover; } + font-weight: normal; + display: inline-block; + } + } + a.category, time { + @extend .sans; + color: $text-color-light; + } + color: $text-color-light; + .entry-content { display: none; } + time { + font-size: .9em; + line-height: 1.2em; + .month, .day { display: inline-block; } + .month { text-transform: uppercase; } + } + p { margin-bottom: 1em; } + &, .entry-content { a { @include link-colors(inherit, $link-color-hover); }} + a:hover { color: $link-color-hover; } + @media only screen and (min-width: 550px) { + article { margin-left: 5em; } + h2 { + margin-bottom: .3em; + font-weight: normal; + display: inline-block; + position: relative; top: -1px; + float: left; + &:first-child { padding-top: .75em; } + } + time { + position: absolute; + text-align: right; + left: 0em; + top: 1.8em; + } + .year { display: none; } + article { + padding:{left: 4.5em; bottom: .7em;} + } + a.category { + line-height: 1.1em; + } + } +} +#content > .category { + article { + margin-left: 0; + padding-left: 6.8em; + } + .year { display: inline; } +} diff --git a/sass/partials/_blog.scss b/sass/partials/_blog.scss new file mode 100644 index 0000000..57fe7a8 --- /dev/null +++ b/sass/partials/_blog.scss @@ -0,0 +1,141 @@ +article { + padding-top: 1em; + a { @extend .force-wrap; } + header { + position: relative; + padding-top: 2em; + padding-bottom: 1em; + margin-bottom: 1em; + background: $img-border bottom left repeat-x; + h1 { + margin: 0; + a { text-decoration: none; + &:hover { text-decoration: underline; } } + } + p { + font-size: .9em; + color: $text-color-light; + margin: 0; + &.meta { + @extend .sans; + text-transform: uppercase; + position: absolute; top: 0; + } + } + @media only screen and (min-width: 768px) { + margin-bottom: 1.5em; + padding-bottom: 1em; + background: $img-border bottom left repeat-x; + } + } + h2 { + padding-top: 0.8em; + background: $img-border top left repeat-x; + } + .entry-content & h2:first-child, header + h2 { padding-top: 0; } + h2:first-child, header + h2 { background: none; } + .feature { + padding-top: .5em; + margin-bottom: 1em; + padding-bottom: 1em; + background: $img-border bottom left repeat-x; + font-size: 2.0em; font-style: italic; + line-height: 1.3em; + } + img, video, .flash-video { + @extend .flex-content; + @extend .basic-alignment; + @include shadow-box; + } + video, .flash-video { margin: 0 auto 1.5em; } + video { display: block; width: 100%; } + .flash-video { + > div { + position: relative; + display: block; + padding-bottom: 56.25%; + padding-top: 1px; + height: 0; + overflow: hidden; + iframe, object, embed { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + } + } + } + > footer { + padding-bottom: 2.5em; + margin-top: 2em; + @extend .sans; + p.meta { + margin-bottom: .8em; + font-size: .85em; + clear: both; + overflow: hidden; + } + .byline + time:before, time +time:before, .comments:before, .byline ~ .categories:before { + @extend .separator; + } + } + +} +article + article { + .blog-index & { + background: $img-border top left repeat-x; + } +} +#content .blog-index { + padding: { top: 0; bottom: 0; } + article { padding-top: 2em; } + article header { background: none; padding-bottom: 0; } + article h1 { + font-size: 2.2em; + a { color: inherit; &:hover { color: $link-color-hover; } } + } + a[rel=full-article] { + background: darken($main-bg, 5); + display: inline-block; + padding: .4em .8em; + margin-right: .5em; + text-decoration: none; + color: mix($text-color, $text-color-light); + @extend .serif; + @include transition(background-color .5s); + &:hover { + background: $link-color-hover; + text-shadow: none; + color: $main-bg; + } + } + footer { + @extend .sans; + margin-top: 1em; + } +} + +.separator { + content: "\2022 "; + padding: 0 .4em 0 .2em; + display: inline-block; +} + +#content div.pagination { + text-align: center; + font-size: .95em; + position: relative; + background: $img-border top left repeat-x; + padding: {top: 1.5em; bottom: 1.5em;} + a { + text-decoration: none; + color: $text-color-light; + &.prev { position: absolute; left: 0; } + &.next { position: absolute; right: 0; } + &:hover { color: $link-color-hover; } + &[href*=archive] { + &:before, &:after { content: '\2014'; padding: 0 .3em; } + } + } +} diff --git a/sass/partials/_footer.scss b/sass/partials/_footer.scss new file mode 100644 index 0000000..3741122 --- /dev/null +++ b/sass/partials/_footer.scss @@ -0,0 +1,19 @@ +body > footer { + @extend .sans; + font-size: .8em; + color: $footer-color; + text-shadow: lighten($footer-bg, 5) 0 1px; + background-color: $footer-bg; + @include background($footer-bg-front, $footer-bg-back); + border-top: 1px solid $footer-border-top; + position: relative; + padding-top: 1em; + padding-bottom: 1em; + margin-bottom: 3em; + @include border-bottom-radius(.4em); + z-index: 1; + a { + @include link-colors($footer-link-color, $footer-link-color-hover, $visited: $footer-link-color); + } + p:last-child { margin-bottom: 0; } +} diff --git a/sass/partials/_header.scss b/sass/partials/_header.scss new file mode 100644 index 0000000..e3c6c02 --- /dev/null +++ b/sass/partials/_header.scss @@ -0,0 +1,18 @@ +body > header { + background: $header-bg; + h1 { + display: inline-block; + margin: 0; + a, a:visited, a:hover { + color: $title_color; + text-decoration: none; + } + } + h2 { + margin: .2em 0 0; + @extend .sans; + font-size: 1em; + color: $subtitle-color; + font-weight: normal; + } +} diff --git a/sass/partials/_navigation.scss b/sass/partials/_navigation.scss new file mode 100644 index 0000000..30fa011 --- /dev/null +++ b/sass/partials/_navigation.scss @@ -0,0 +1,137 @@ +body > nav { + position: relative; + background-color: $nav-bg; + @include background($nav-bg-front, $nav-bg-back); + border: { + top: 1px solid $nav-border-top; + bottom: 1px solid $nav-border-bottom; } + padding-top: .35em; + padding-bottom: .35em; + form { + @include background-clip(padding-box); + margin: 0; padding: 0; + .search { + padding: .3em .5em 0; + font-size: .85em; + font-family: $sans; + line-height: 1.1em; + width: 95%; + @include border-radius(.5em); + @include background-clip(padding-box); + @include box-shadow(lighten($nav-bg, 2) 0 1px); + background-color: lighten($nav-bg, 15); + border: 1px solid $nav-border; + color: #888; + &:focus { + color: #444; + border-color: #80b1df; + @include box-shadow(#80b1df 0 0 4px, #80b1df 0 0 3px inset); + background-color: #fff; + outline: none; + } + } + } + fieldset[role=search]{ float: right; width: 48%; } + fieldset.mobile-nav{ float: left; width: 48%; + select{ width: 100%; font-size: .8em; border: 1px solid #888;} + } + ul { display: none; } + @media only screen and (min-width: 550px) { + font-size: .9em; + ul { + @include horizontal-list(0); + float: left; + display: block; + padding-top: .15em; + } + ul.subscription { + margin-left: .8em; + float: right; + li:last-child a { padding-right: 0; } + } + ul li { + margin: 0; + } + a { + @include link-colors($nav-color, $nav-color-hover, $visited: $nav-color); + font-family: $sans; + text-shadow: lighten($nav-bg, 12) 0 1px; + float: left; + text-decoration: none; + font-size: 1.1em; + padding: .1em 0; + line-height: 1.5em; + } + li + li { + border-left: 1px solid $nav-border-left; + margin-left: .8em; + a { + padding-left: .8em; + border-left: 1px solid $nav-border-right; + } + } + form { + float: right; + text-align: left; + padding-left: .8em; + width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium + 20px; + .search { + width: 93%; + font-size: .95em; + line-height: 1.2em; + } + } + ul[data-subscription$=email] + form { + width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium - 58px; + .search { width: 91%; } + } + fieldset.mobile-nav { display: none; } + fieldset[role=search]{ width: 99%; } + } + @media only screen and (min-width: 992px) { + form { + width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 + 10px; + } + ul[data-subscription$=email] + form { + width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 - 58px; + } + } +} +.no-placeholder { + body > nav .search { + background: lighten($nav-bg, 15) image-url('search.png') .3em .25em no-repeat; + text-indent: 1.3em; + } +} +@mixin mask-subscription-nav($feed: 'rss.png'){ + position: relative; top: 0px; + text-indent: -999999em; + background-color: $nav-border-right; + border: 0; + padding: 0; + &,&:after { @include mask-image($feed); } + &:after { + content: ""; + position: absolute; top: -1px; left: 0; + background-color: lighten($nav-color, 25); + } + &:hover:after { background-color: lighten($nav-color, 20); } +} +.maskImage { + body > nav { + @media only screen and (min-width: 550px) { + ul[data-subscription$=email] + form { + width: $sidebar-width-medium - $pad-medium*2 - $sidebar-pad-medium - 32px; + } + } + @media only screen and (min-width: 992px) { + ul[data-subscription$=email] + form { + width: $sidebar-width-wide - $pad-wide - $sidebar-pad-wide*2 - 32px; + } + } + } + ul.subscription { position: relative; top: .2em; li, a { border: 0; padding: 0; }} + a[rel=subscribe-rss]{ @include mask-subscription-nav('rss.png'); } + a[rel=subscribe-email]{ @include mask-subscription-nav('email.png'); } +} + diff --git a/sass/partials/_sharing.scss b/sass/partials/_sharing.scss new file mode 100644 index 0000000..3eecb48 --- /dev/null +++ b/sass/partials/_sharing.scss @@ -0,0 +1,8 @@ +.sharing { + p.meta + & { + padding: { top: 1em; left: 0; } + background: $img-border top left repeat-x; + } +} + +#fb-root { display: none; } diff --git a/sass/partials/_sidebar.scss b/sass/partials/_sidebar.scss new file mode 100644 index 0000000..eec540b --- /dev/null +++ b/sass/partials/_sidebar.scss @@ -0,0 +1,5 @@ +@import "sidebar/base"; +@import "sidebar/twitter"; +@import "sidebar/googleplus"; +@import "sidebar/pinboard"; +@import "sidebar/delicious"; diff --git a/sass/partials/_syntax.scss b/sass/partials/_syntax.scss new file mode 100644 index 0000000..5465286 --- /dev/null +++ b/sass/partials/_syntax.scss @@ -0,0 +1,261 @@ +.highlight, html .gist .gist-file .gist-syntax .gist-highlight { + table td.code { width: 100%; } + border: 1px solid $pre-border !important; +} +.highlight .line-numbers, html .gist .gist-file .gist-syntax .highlight .line_numbers { + text-align: right; + font-size: 13px; + line-height: 1.45em; + @if $solarized == light { + background: lighten($base03, 1) $noise-bg !important; + border-right: 1px solid darken($base02, 2) !important; + @include box-shadow(lighten($base03, 2) -1px 0 inset); + text-shadow: lighten($base02, 2) 0 -1px; + } @else { + background: $base02 $noise-bg !important; + border-right: 1px solid darken($base03, 2) !important; + @include box-shadow(lighten($base02, 2) -1px 0 inset); + text-shadow: darken($base02, 10) 0 -1px; + } + span { color: $base01 !important; } + padding: .8em !important; + @include border-radius(0); +} + +figure.code, .gist-file, pre { + @include box-shadow(rgba(#000, .06) 0 0 10px); + .highlight pre { @include box-shadow(none); } +} + +.gist .highlight, figure.code .highlight { + @include selection(adjust-color($base03, $lightness: 23%, $saturation: -65%), $text-shadow: $base03 0 1px); +} +html .gist .gist-file { + margin-bottom: 1.8em; + position: relative; + border: none; + padding-top: image-height("code_bg.png") !important; + .highlight { + margin-bottom: 0; + } + .gist-syntax { + border-bottom: 0 !important; + background: none !important; + .gist-highlight { + background: $base03 !important; + } + .highlight pre { + @extend .pre-code; + padding: 0; + } + } + .gist-meta { + padding: .6em 0.8em; + border: 1px solid lighten($base02, 2) !important; + color: $base01; + font-size: .7em !important; + @if $solarized == light { + background: lighten($base03, 2) $noise-bg; + border: 1px solid $pre-border !important; + border-top: 1px solid lighten($base03, 2) !important; + } @else { + background: $base02 $noise-bg; + } + @extend .sans; + line-height: 1.5em; + a { + color: mix($base1, $base01) !important; + @include hover-link; + &:hover { color: $base1 !important; } + } + a[href*='#file'] { + position: absolute; top: 0; left:0; right:-10px; + color: #474747 !important; + @extend .code-title; + &:hover { color: $link-color !important; } + } + a[href*=raw]{ + @extend .download-source; + top: .4em; + } + } +} +pre { + background: $pre-bg $noise-bg; + @include border-radius(.4em); + @extend .mono; + border: 1px solid $pre-border; + line-height: 1.45em; + font-size: 13px; + margin-bottom: 2.1em; + padding: .8em 1em; + color: $pre-color; + overflow: auto; +} +h3.filename { + @extend .code-title; + + pre { @include border-top-radius(0px); } +} + +p, li { + code { + @extend .mono; + display: inline-block; + white-space: no-wrap; + background: #fff; + font-size: .8em; + line-height: 1.5em; + color: #555; + border: 1px solid #ddd; + @include border-radius(.4em); + padding: 0 .3em; + margin: -1px 0; + } + pre code { font-size: 1em !important; background: none; border: none; } +} + +.pre-code { + font-family: $mono !important; + overflow: scroll; + overflow-y: hidden; + display: block; + padding: .8em; + overflow-x: auto; + line-height: 1.45em; + background: $base03 $noise-bg !important; + color: $base1 !important; + span { color: $base1 !important; } + span { font-style: normal !important; font-weight: normal !important; } + + .c { color: $base01 !important; font-style: italic !important; } /* Comment */ + .cm { color: $base01 !important; font-style: italic !important; } /* Comment.Multiline */ + .cp { color: $base01 !important; font-style: italic !important; } /* Comment.Preproc */ + .c1 { color: $base01 !important; font-style: italic !important; } /* Comment.Single */ + .cs { color: $base01 !important; font-weight: bold !important; font-style: italic !important; } /* Comment.Special */ + .err { color: $solar-red !important; background: none !important; } /* Error */ + .k { color: $solar-orange !important; } /* Keyword */ + .o { color: $base1 !important; font-weight: bold !important; } /* Operator */ + .p { color: $base1 !important; } /* Operator */ + .ow { color: $solar-cyan !important; font-weight: bold !important; } /* Operator.Word */ + .gd { color: $base1 !important; background-color: mix($solar-red, $base03, 25%) !important; display: inline-block; } /* Generic.Deleted */ + .gd .x { color: $base1 !important; background-color: mix($solar-red, $base03, 35%) !important; display: inline-block; } /* Generic.Deleted.Specific */ + .ge { color: $base1 !important; font-style: italic !important; } /* Generic.Emph */ + //.gr { color: #aa0000 } /* Generic.Error */ + .gh { color: $base01 !important; } /* Generic.Heading */ + .gi { color: $base1 !important; background-color: mix($solar-green, $base03, 20%) !important; display: inline-block; } /* Generic.Inserted */ + .gi .x { color: $base1 !important; background-color: mix($solar-green, $base03, 40%) !important; display: inline-block; } /* Generic.Inserted.Specific */ + //.go { color: #888888 } /* Generic.Output */ + //.gp { color: #555555 } /* Generic.Prompt */ + .gs { color: $base1 !important; font-weight: bold !important; } /* Generic.Strong */ + .gu { color: $solar-violet !important; } /* Generic.Subheading */ + //.gt { color: #aa0000 } /* Generic.Traceback */ + .kc { color: $solar-green !important; font-weight: bold !important; } /* Keyword.Constant */ + .kd { color: $solar-blue !important; } /* Keyword.Declaration */ + .kp { color: $solar-orange !important; font-weight: bold !important; } /* Keyword.Pseudo */ + .kr { color: $solar-magenta !important; font-weight: bold !important; } /* Keyword.Reserved */ + .kt { color: $solar-cyan !important; } /* Keyword.Type */ + .n { color: $solar-blue !important; } + .na { color: $solar-blue !important; } /* Name.Attribute */ + .nb { color: $solar-green !important; } /* Name.Builtin */ + .nc { color: $solar-magenta !important;} /* Name.Class */ + .no { color: $solar-yellow !important; } /* Name.Constant */ + //.ni { color: #800080 } /* Name.Entity */ + .nl { color: $solar-green !important; } + .ne { color: $solar-blue !important; font-weight: bold !important; } /* Name.Exception */ + .nf { color: $solar-blue !important; font-weight: bold !important; } /* Name.Function */ + .nn { color: $solar-yellow !important; } /* Name.Namespace */ + .nt { color: $solar-blue !important; font-weight: bold !important; } /* Name.Tag */ + .nx { color: $solar-yellow !Important; } + //.bp { color: #999999 } /* Name.Builtin.Pseudo */ + //.vc { color: #008080 } /* Name.Variable.Class */ + .vg { color: $solar-blue !important; } /* Name.Variable.Global */ + .vi { color: $solar-blue !important; } /* Name.Variable.Instance */ + .nv { color: $solar-blue !important; } /* Name.Variable */ + //.w { color: #bbbbbb } /* Text.Whitespace */ + .mf { color: $solar-cyan !important; } /* Literal.Number.Float */ + .m { color: $solar-cyan !important; } /* Literal.Number */ + .mh { color: $solar-cyan !important; } /* Literal.Number.Hex */ + .mi { color: $solar-cyan !important; } /* Literal.Number.Integer */ + //.mo { color: #009999 } /* Literal.Number.Oct */ + .s { color: $solar-cyan !important; } /* Literal.String */ + //.sb { color: #d14 } /* Literal.String.Backtick */ + //.sc { color: #d14 } /* Literal.String.Char */ + .sd { color: $solar-cyan !important; } /* Literal.String.Doc */ + .s2 { color: $solar-cyan !important; } /* Literal.String.Double */ + .se { color: $solar-red !important; } /* Literal.String.Escape */ + //.sh { color: #d14 } /* Literal.String.Heredoc */ + .si { color: $solar-blue !important; } /* Literal.String.Interpol */ + //.sx { color: #d14 } /* Literal.String.Other */ + .sr { color: $solar-cyan !important; } /* Literal.String.Regex */ + .s1 { color: $solar-cyan !important; } /* Literal.String.Single */ + //.ss { color: #990073 } /* Literal.String.Symbol */ + //.il { color: #009999 } /* Literal.Number.Integer.Long */ + div { .gd, .gd .x, .gi, .gi .x { display: inline-block; width: 100%; }} +} + +.highlight, .gist-highlight { + pre { background: none; @include border-radius(0px); border: none; padding: 0; margin-bottom: 0; } + margin-bottom: 1.8em; + background: $base03; + overflow-y: hidden; + overflow-x: auto; +} + +$solar-scroll-bg: rgba(#fff, .15); +$solar-scroll-thumb: rgba(#fff, .2); +@if $solarized == light { + $solar-scroll-bg: rgba(#000, .15); + $solar-scroll-thumb: rgba(#000, .15); +} + +pre, .highlight, .gist-highlight { + &::-webkit-scrollbar { height: .5em; background: $solar-scroll-bg; } + &::-webkit-scrollbar-thumb:horizontal { background: $solar-scroll-thumb; -webkit-border-radius: 4px; border-radius: 4px } +} + +.highlight code { + @extend .pre-code; background: #000; +} +figure.code { + background: none; + padding: 0; + border: 0; + margin-bottom: 1.5em; + pre { margin-bottom: 0; } + figcaption { + position: relative; + @extend .code-title; + a { @extend .download-source; } + } + .highlight { + margin-bottom: 0; + } +} + +.code-title { + text-align: center; + font-size: 13px; + line-height: 2em; + text-shadow: #cbcccc 0 1px 0; + color: #474747; + font-weight: normal; + margin-bottom: 0; + @include border-top-radius(5px); + font-family: "Helvetica Neue", Arial, "Lucida Grande", "Lucida Sans Unicode", Lucida, sans-serif; + background: #aaaaaa image-url("code_bg.png") top repeat-x; + border: 1px solid #565656; + border-top-color: #cbcbcb; + border-left-color: #a5a5a5; + border-right-color: #a5a5a5; + border-bottom: 0; +} + +.download-source { + position: absolute; right: .8em; + @include hover-link; + color: #666 !important; + z-index: 1; + font-size: 13px; + text-shadow: #cbcccc 0 1px 0; + padding-left: 3em; +} diff --git a/sass/partials/sidebar/_base.scss b/sass/partials/sidebar/_base.scss new file mode 100644 index 0000000..5441304 --- /dev/null +++ b/sass/partials/sidebar/_base.scss @@ -0,0 +1,106 @@ +.side-shadow-border { + @include box-shadow(lighten($sidebar-bg, 5) 0 1px); +} +aside.sidebar { + overflow: hidden; + color: $sidebar-color; + text-shadow: lighten($sidebar-bg, 8) 0 1px; + a { @extend .force-wrap; } + section { + @extend .sans; + font-size: .8em; + line-height: 1.4em; + margin-bottom: 1.5em; + h1 { + margin: 1.5em 0 0; + padding-bottom: .2em; + border-bottom: 1px solid $sidebar-border; + @extend .side-shadow-border; + + p { + padding-top: .4em; + } + } + } + img { + @extend .flex-content; + @extend .basic-alignment; + @include shadow-box($border: #fff .3em solid); + } + ul { + margin-bottom: 0.5em; + margin-left: 0; + } + li { + list-style: none; + padding: .5em 0; + margin: 0; + border-bottom: 1px solid $sidebar-border; + @extend .side-shadow-border; + p:last-child { + margin-bottom: 0; + } + } + a { + color: inherit; + @include transition(color .5s); + } + &:hover a { + color: $sidebar-link-color; + &:hover { color: $sidebar-link-color-hover; } + } +} +.aside-alt-link { + color: $sidebar-link-color-subdued; + &:hover { + color: $sidebar-link-color-subdued-hover; + } +} + +@media only screen and (min-width: 768px) { + .toggle-sidebar { + outline: none; + position: absolute; right: -10px; top: 0; bottom: 0; + display: inline-block; + text-decoration: none; + color: mix($text-color-light, $sidebar-bg); + width: 9px; + cursor: pointer; + &:hover { + background: mix($sidebar-border, $sidebar-bg); + @include background(linear-gradient(left, rgba($sidebar-border, .5), rgba($sidebar-border, 0))); + } + &:after { + position: absolute; right: -11px; top: 0; + width: 20px; + font-size: 1.2em; + line-height: 1.1em; + padding-bottom: .15em; + @include border-bottom-right-radius(.3em); + text-align: center; + background: $main-bg $noise-bg; + border-bottom: 1px solid $sidebar-border; + border-right: 1px solid $sidebar-border; + content: "\00BB"; + text-indent: -1px; + } + .collapse-sidebar & { + text-indent: 0px; + right: -20px; + width: 19px; + &:hover { + background: mix($sidebar-border, $sidebar-bg); + } + &:after { + border-left: 1px solid $sidebar-border; + text-shadow: #fff 0 1px; + content: "\00AB"; + left: 0px; right: 0; + text-align: center; + text-indent: 0; + border: 0; + border-right-width: 0; + background: none; + } + } + } +} diff --git a/sass/partials/sidebar/_delicious.scss b/sass/partials/sidebar/_delicious.scss new file mode 100644 index 0000000..e962702 --- /dev/null +++ b/sass/partials/sidebar/_delicious.scss @@ -0,0 +1,4 @@ +.delicious-posts { + a.delicious-link { margin-bottom: .5em; display: block; } + p { font-size: 1em; } +} diff --git a/sass/partials/sidebar/_googleplus.scss b/sass/partials/sidebar/_googleplus.scss new file mode 100644 index 0000000..c2a693e --- /dev/null +++ b/sass/partials/sidebar/_googleplus.scss @@ -0,0 +1,26 @@ +.googleplus { + h1 { + -moz-box-shadow: none !important; + -webkit-box-shadow: none !important; + -o-box-shadow: none !important; + box-shadow: none !important; + border-bottom: 0px none !important; + } + a { + text-decoration: none; + white-space: normal !important; + line-height: 32px; + + img { + float: left; + margin-right: 0.5em; + border: 0 none; + } + } +} + +.googleplus-hidden { + position: absolute; + top: -1000em; + left: -1000em; +} diff --git a/sass/partials/sidebar/_pinboard.scss b/sass/partials/sidebar/_pinboard.scss new file mode 100644 index 0000000..9f9ab46 --- /dev/null +++ b/sass/partials/sidebar/_pinboard.scss @@ -0,0 +1,12 @@ +#pinboard_linkroll { + .pin-title, .pin-description { + display: block; + margin-bottom: .5em; + } + .pin-tag { + @include hover-link; + @extend .aside-alt-link; + &:after { content: ','; } + &:last-child:after { content: ''; } + } +} diff --git a/sass/partials/sidebar/_twitter.scss b/sass/partials/sidebar/_twitter.scss new file mode 100644 index 0000000..dfd49b5 --- /dev/null +++ b/sass/partials/sidebar/_twitter.scss @@ -0,0 +1,34 @@ +#tweets { + .loading { + background: inline-image('bird_32_gray.png') no-repeat center .5em; + color: darken($sidebar-bg, 18); + text-shadow: $main-bg 0 1px; + text-align: center; + padding: 2.5em 0 .5em; + &.error { + background: inline-image('bird_32_gray_fail.png') no-repeat center .5em; + } + } + p { + position: relative; + padding-right: 1em; + } + a[href*=status]:first-child { + color: $twitter-status-link; + float: right; + padding: 0 0 .1em 1em; + position: relative; right: -1.3em; + text-shadow: #fff 0 1px; + font-size: .7em; + span { font-size: 1.5em; } + text-decoration: none; + &:hover { + color: $sidebar-link-color-subdued-hover; + text-decoration: none; + } + } + a[href*='twitter.com/search']{ + @extend .aside-alt-link; + @include hover-link; + } +} diff --git a/sass/screen.scss b/sass/screen.scss new file mode 100644 index 0000000..1899f60 --- /dev/null +++ b/sass/screen.scss @@ -0,0 +1,10 @@ +@import "compass"; +@include global-reset; +@include reset-html5; + +@import "custom/colors"; +@import "custom/fonts"; +@import "custom/layout"; +@import "base"; +@import "partials"; +@import "custom/styles"; diff --git a/source/CNAME b/source/CNAME new file mode 100644 index 0000000..49046a4 --- /dev/null +++ b/source/CNAME @@ -0,0 +1 @@ +toozhao.com diff --git a/source/_includes/after_footer.html b/source/_includes/after_footer.html new file mode 100644 index 0000000..8246c1f --- /dev/null +++ b/source/_includes/after_footer.html @@ -0,0 +1,4 @@ +{% include fancybox.html %} +{% include phasebeam.html %} +{% include disqus.html %} +{% include custom/after_footer.html %} \ No newline at end of file diff --git a/source/_includes/archive_post.html b/source/_includes/archive_post.html new file mode 100644 index 0000000..c47dc42 --- /dev/null +++ b/source/_includes/archive_post.html @@ -0,0 +1,16 @@ +{% capture date %}{{ post.date }}{% endcapture %} +{% capture this_year %}{{ date | date: "%Y" }}{% endcapture %} +{% unless year == this_year %} + {% assign year = this_year %} + {% unless forloop.first %} + + {% endunless %} +
{{ date | date: "%Y" }}
+{% endunless %} +
+

{{ post.title }}

+
+ +
{{ post.categories | category_links }}
+
+
\ No newline at end of file diff --git a/source/_includes/article.html b/source/_includes/article.html new file mode 100644 index 0000000..aee6efb --- /dev/null +++ b/source/_includes/article.html @@ -0,0 +1,32 @@ +
+ {% if index %} +

{% if site.titlecase %}{{ post.title | titlecase }}{% else %}{{ post.title }}{% endif %}

+ {% else %} +

{% if site.titlecase %}{{ page.title | titlecase }}{% else %}{{ page.title }}{% endif %}

+ {% endif %} + {% if post or page.single %}{% include post/date.html %}{% endif %} +
+
+ {% if index %} + {{ content | excerpt }} + {% else %} + {{ content }} + {% unless index %} + {% include post/sharing.html %} + {% endunless %} + {% endif %} + {% if post or page.single %} +
+ {% include post/categories.html %} + {% if site.disqus_short_name and site.disqus_show_comment_count == true %} + {% if post.comments == true %} + Comments + {% endif %} + {% if page.comments == true %} + Comments + {% endif %} + {% endif %} +
+ {% endif %} +
+{% include post/comment.html %} \ No newline at end of file diff --git a/source/_includes/asides/delicious.html b/source/_includes/asides/delicious.html new file mode 100644 index 0000000..115cdcb --- /dev/null +++ b/source/_includes/asides/delicious.html @@ -0,0 +1,8 @@ +{% if site.delicious_user %} +
+

On Delicious

+
+ +

My Delicious Bookmarks »

+
+{% endif %} \ No newline at end of file diff --git a/source/_includes/asides/github.html b/source/_includes/asides/github.html new file mode 100644 index 0000000..cb267f0 --- /dev/null +++ b/source/_includes/asides/github.html @@ -0,0 +1,30 @@ +{% if site.github_user %} +
+

GitHub Repos

+ + {% if site.github_show_profile_link %} + @{{site.github_user}} on GitHub + {% endif %} + + +
+{% endif %} diff --git a/source/_includes/asides/googleplus.html b/source/_includes/asides/googleplus.html new file mode 100644 index 0000000..00a0aa8 --- /dev/null +++ b/source/_includes/asides/googleplus.html @@ -0,0 +1,11 @@ +{% if site.googleplus_user %} +
+

+ + + Google+ + +

+
+{% endif %} + diff --git a/source/_includes/asides/pinboard.html b/source/_includes/asides/pinboard.html new file mode 100644 index 0000000..c89c3e7 --- /dev/null +++ b/source/_includes/asides/pinboard.html @@ -0,0 +1,19 @@ +{% if site.pinboard_user %} +
+

My Pinboard

+ +

My Pinboard Bookmarks »

+
+ +{% endif %} diff --git a/source/_includes/asides/recent_posts.html b/source/_includes/asides/recent_posts.html new file mode 100644 index 0000000..cc62814 --- /dev/null +++ b/source/_includes/asides/recent_posts.html @@ -0,0 +1,10 @@ +
+

Recent Posts

+ +
diff --git a/source/_includes/asides/twitter.html b/source/_includes/asides/twitter.html new file mode 100644 index 0000000..bab5de4 --- /dev/null +++ b/source/_includes/asides/twitter.html @@ -0,0 +1,19 @@ +{% if site.twitter_user %} +
+

Latest Tweets

+ + + + {% if site.twitter_follow_button %} + + {% else %} +

Follow @{{ site.twitter_user }}

+ {% endif %} +
+{% endif %} diff --git a/source/_includes/custom/after_footer.html b/source/_includes/custom/after_footer.html new file mode 100644 index 0000000..e69de29 diff --git a/source/_includes/custom/asides/about.html b/source/_includes/custom/asides/about.html new file mode 100644 index 0000000..59d309e --- /dev/null +++ b/source/_includes/custom/asides/about.html @@ -0,0 +1,4 @@ +
+

About Me

+

A little something about me.

+
diff --git a/source/_includes/custom/category_feed.xml b/source/_includes/custom/category_feed.xml new file mode 100644 index 0000000..f47c553 --- /dev/null +++ b/source/_includes/custom/category_feed.xml @@ -0,0 +1,27 @@ +--- +layout: nil +--- + + + + <![CDATA[{{ page.title }} | {{ site.title }}]]> + + + {{ site.time | date_to_xmlschema }} + {{ site.url }}/ + + + {% if site.email %}{% endif %} + + Octopress + + {% for post in site.categories[page.category] limit: 5 %} + + <![CDATA[{{ post.title | cdata_escape }}]]> + + {{ post.date | date_to_xmlschema }} + {{ site.url }}{{ post.id }} + + + {% endfor %} + diff --git a/source/_includes/custom/footer.html b/source/_includes/custom/footer.html new file mode 100644 index 0000000..2a654ea --- /dev/null +++ b/source/_includes/custom/footer.html @@ -0,0 +1 @@ +

© {{ site.time | date: "%Y" }} {{ site.author }}

\ No newline at end of file diff --git a/source/_includes/custom/head.html b/source/_includes/custom/head.html new file mode 100644 index 0000000..e69de29 diff --git a/source/_includes/custom/header.html b/source/_includes/custom/header.html new file mode 100644 index 0000000..e69de29 diff --git a/source/_includes/custom/navigation.html b/source/_includes/custom/navigation.html new file mode 100644 index 0000000..7cfdc95 --- /dev/null +++ b/source/_includes/custom/navigation.html @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/source/_includes/disqus.html b/source/_includes/disqus.html new file mode 100644 index 0000000..eb30877 --- /dev/null +++ b/source/_includes/disqus.html @@ -0,0 +1,21 @@ +{% comment %} Load script if disquss comments are enabled and `page.comments` is either empty (index) or set to true {% endcomment %} +{% if site.disqus_short_name and page.comments != false %} + +{% endif %} diff --git a/source/_includes/facebook_like.html b/source/_includes/facebook_like.html new file mode 100644 index 0000000..74f9130 --- /dev/null +++ b/source/_includes/facebook_like.html @@ -0,0 +1,10 @@ +{% if site.facebook_like %} +
+ +{% endif %} diff --git a/source/_includes/fancybox.html b/source/_includes/fancybox.html new file mode 100644 index 0000000..0529d67 --- /dev/null +++ b/source/_includes/fancybox.html @@ -0,0 +1,18 @@ + + \ No newline at end of file diff --git a/source/_includes/footer.html b/source/_includes/footer.html new file mode 100644 index 0000000..72e2c3d --- /dev/null +++ b/source/_includes/footer.html @@ -0,0 +1,20 @@ +
+ {% if site.facebook_user %} + + {% endif %} + {% if site.googleplus_user %} + Google+ + {% endif %} + {% if site.twitter_user %} + + {% endif %} + {% if site.github_user %} + GitHub + {% endif %} + {% if site.pinterest_user %} + Pinterest + {% endif %} + RSS +
+{% include custom/footer.html %} +
\ No newline at end of file diff --git a/source/_includes/google_analytics.html b/source/_includes/google_analytics.html new file mode 100644 index 0000000..4d4d596 --- /dev/null +++ b/source/_includes/google_analytics.html @@ -0,0 +1,13 @@ +{% if site.google_analytics_tracking_id %} + +{% endif %} diff --git a/source/_includes/google_plus_one.html b/source/_includes/google_plus_one.html new file mode 100644 index 0000000..b69ddae --- /dev/null +++ b/source/_includes/google_plus_one.html @@ -0,0 +1,9 @@ +{% if site.google_plus_one %} + +{% endif %} diff --git a/source/_includes/head.html b/source/_includes/head.html new file mode 100644 index 0000000..16d74d6 --- /dev/null +++ b/source/_includes/head.html @@ -0,0 +1,20 @@ + + + + + {% if page.title %}{{ page.title }} | {% endif %}{{ site.title }} + + + {% capture description %}{% if page.description %}{{ page.description }}{% else %}{{ content | raw_content }}{% endif %}{% endcapture %} + + {% if page.keywords %}{% endif %} + + + + + + + + {% include google_analytics.html %} + {% include custom/head.html %} + \ No newline at end of file diff --git a/source/_includes/header.html b/source/_includes/header.html new file mode 100644 index 0000000..f296183 --- /dev/null +++ b/source/_includes/header.html @@ -0,0 +1,2 @@ + +{% include custom/header.html %} \ No newline at end of file diff --git a/source/_includes/navigation.html b/source/_includes/navigation.html new file mode 100644 index 0000000..2f0e628 --- /dev/null +++ b/source/_includes/navigation.html @@ -0,0 +1,15 @@ + + {% if site.simple_search %} +
+
+ + +
+
+ {% endif %} +{% include custom/navigation.html %} diff --git a/source/_includes/pagination.html b/source/_includes/pagination.html new file mode 100644 index 0000000..2b700e7 --- /dev/null +++ b/source/_includes/pagination.html @@ -0,0 +1,7 @@ +{% if paginator.previous_page or paginator.next_page %} + +{% endif %} \ No newline at end of file diff --git a/source/_includes/phasebeam.html b/source/_includes/phasebeam.html new file mode 100644 index 0000000..0ccbab7 --- /dev/null +++ b/source/_includes/phasebeam.html @@ -0,0 +1,6 @@ +
+ + + +
+ \ No newline at end of file diff --git a/source/_includes/post/author.html b/source/_includes/post/author.html new file mode 100644 index 0000000..83dd6a8 --- /dev/null +++ b/source/_includes/post/author.html @@ -0,0 +1,8 @@ +{% if post.author %} + {% assign author = post.author %} +{% elsif page.author %} + {% assign author = page.author %} +{% else %} + {% assign author = site.author %} +{% endif %} +{% if author %}Posted by {{ author }}{% endif %} diff --git a/source/_includes/post/categories.html b/source/_includes/post/categories.html new file mode 100644 index 0000000..9763a52 --- /dev/null +++ b/source/_includes/post/categories.html @@ -0,0 +1,6 @@ +{% capture category %}{% if post %}{{ post.categories | category_links | replace:', ','' }}{% else %}{{ page.categories | category_links | replace:', ','' }}{% endif %}{% endcapture %} +{% capture has_category %}{% if post %}{{ post.categories | category_links | size }}{% else %}{{ page.categories | category_links | size }}{% endif %}{% endcapture %} + +{% unless has_category == '0' %} +
{{ category }}
+{% endunless %} \ No newline at end of file diff --git a/source/_includes/post/comment.html b/source/_includes/post/comment.html new file mode 100644 index 0000000..babe59f --- /dev/null +++ b/source/_includes/post/comment.html @@ -0,0 +1,7 @@ +{% if site.disqus_short_name and page.comments == true %} +
+
+ +
+
+{% endif %} \ No newline at end of file diff --git a/source/_includes/post/date.html b/source/_includes/post/date.html new file mode 100644 index 0000000..fd27160 --- /dev/null +++ b/source/_includes/post/date.html @@ -0,0 +1,19 @@ +{% capture date %}{{ page.date }}{{ post.date }}{% endcapture %} +{% capture date_formatted %}{{ page.date_formatted }}{{ post.date_formatted }}{% endcapture %} +{% capture has_date %}{{ date | size }}{% endcapture %} + +{% capture updated %}{{ page.updated }}{{ post.updated }}{% endcapture %} +{% capture updated_formatted %}{{ page.updated_formatted }}{{ post.updated_formatted }}{% endcapture %} +{% capture was_updated %}{{ updated | size }}{% endcapture %} + +{% if was_updated != '0' %} + +{% else %} + {% if has_date != '0' %} + + {% endif %} +{% endif %} \ No newline at end of file diff --git a/source/_includes/post/disqus_thread.html b/source/_includes/post/disqus_thread.html new file mode 100644 index 0000000..b1acd8c --- /dev/null +++ b/source/_includes/post/disqus_thread.html @@ -0,0 +1 @@ + diff --git a/source/_includes/post/sharing.html b/source/_includes/post/sharing.html new file mode 100644 index 0000000..205664d --- /dev/null +++ b/source/_includes/post/sharing.html @@ -0,0 +1,15 @@ +
+
+ {% if site.facebook_like %} + + {% endif %} + {% if site.twitter_tweet_button %} + + {% endif %} + {% if site.google_plus_one %} + + {% endif %} + +
+ +
\ No newline at end of file diff --git a/source/_includes/twitter_sharing.html b/source/_includes/twitter_sharing.html new file mode 100644 index 0000000..687e77d --- /dev/null +++ b/source/_includes/twitter_sharing.html @@ -0,0 +1,11 @@ +{% if site.twitter_follow_button or site.twitter_tweet_button %} + +{% endif %} diff --git a/source/_layouts/category_index.html b/source/_layouts/category_index.html new file mode 100644 index 0000000..228b6ab --- /dev/null +++ b/source/_layouts/category_index.html @@ -0,0 +1,15 @@ +--- +layout: default +--- + +
+

{{ page.title }}

+ +
+ +{% for post in site.categories[page.category] %} + {% include archive_post.html %} +{% endfor %} \ No newline at end of file diff --git a/source/_layouts/default.html b/source/_layouts/default.html new file mode 100644 index 0000000..18f16df --- /dev/null +++ b/source/_layouts/default.html @@ -0,0 +1,10 @@ +{% capture root_url %}{{ site.root | strip_slash }}{% endcapture %} +{% include head.html %} + + + +
{{ content | expand_urls: root_url }}
+ + {% include after_footer.html %} + + \ No newline at end of file diff --git a/source/_layouts/page.html b/source/_layouts/page.html new file mode 100644 index 0000000..5f4baca --- /dev/null +++ b/source/_layouts/page.html @@ -0,0 +1,5 @@ +--- +layout: default +--- + +
{% include article.html %}
\ No newline at end of file diff --git a/source/_layouts/post.html b/source/_layouts/post.html new file mode 100644 index 0000000..e43605f --- /dev/null +++ b/source/_layouts/post.html @@ -0,0 +1,6 @@ +--- +layout: default +single: true +--- + +
{% include article.html %}
\ No newline at end of file diff --git a/source/_posts/2010-09-18-a-new-begins.markdown b/source/_posts/2010-09-18-a-new-begins.markdown new file mode 100644 index 0000000..6c4495e --- /dev/null +++ b/source/_posts/2010-09-18-a-new-begins.markdown @@ -0,0 +1,43 @@ +--- +title: 一个全新的开始 +author: wahyd4 +excerpt: | + | + 我们想大声的宣布大染志今天上线啦!!! +layout: post +permalink: /2010/09/a-new-begins/ +categories: + - 头条推荐 +tags: + - 上线 + - 大染志 + - 开始 +--- +我们想大声的宣布大染志今天上线啦!!!

+

+ 希望大家可以经常来我们的网站常来看看,我们会尽量每天一篇文章的速度进行网站更新,而且我们在周末的时候还会有专题奉献给大家,另外我们还有一种“核武器”,到时候大家就知道了,所以大家一定要来看哦! +

+ + + +

+ 关于我们的成员,我们是一群在校大学生! +

+ + + +

+ 我们希望借此得到锻炼,当然如果可以获得一些Money,当然更好啊! +

+ + + +

+ 总之,大家的支持是我们最大的动力! +

+ + + +

+ +

\ No newline at end of file diff --git a/source/_posts/2010-09-19-blue-tooth-one.markdown b/source/_posts/2010-09-19-blue-tooth-one.markdown new file mode 100644 index 0000000..3968397 --- /dev/null +++ b/source/_posts/2010-09-19-blue-tooth-one.markdown @@ -0,0 +1,80 @@ +--- +title: 蓝牙手机控制电脑——不是梦!(1) +author: wahyd4 +layout: post +permalink: /2010/09/blue-tooth-one/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - java + - Salling Clickr + - 手机 + - 控制电脑 + - 蓝牙 +--- +作者:Junv + +开始之前你需要:智能手机一部(理论上支持Java的手机都行,作者是在Nokia 6120C 下试验成功),支持蓝牙的电脑一台(不支持蓝牙的可以外接蓝牙接收器!淘宝上很便宜。),Salling Clickr 软件(这个是核心)。 + +作者设备:Nokia 6120c ,Lenovo y450. + +下面开始 + +下面开始实现蓝牙控制电脑, + +首先下载Salling Clickr 软件,并安装。该软件支持windows 和 Mac两种系统!(这一步没什么特别,相信大家都可以做到!) + +安装完成之后运行电脑端Salling Clickr 软件将看到如下页面。 + +

+ +

+ +可以看到如界面显示的,用这个软件可以实现控制iTunes ,PowerPoint,windows Mediaplayer,还可以实现操作鼠标!从而达到实现操作电脑几乎所有软件的一半应用。 + +另外一个选项phone events,大家可以根据自己需要更改,这里不再多讲。 + +而在底部菜单setting里面,大家可以看到 + +

+ +

+ +勾选 automatically run Salling Clickr when logging on,即表示在随电脑启动的时候就自启动该软件。 + +Disconnect idle 里面则表示多少时间手机不操作则断开手机与电脑的链接。这个可以根据自己需要选择。 + +其他的设置就不在这里演示了。 + +现在开始比较关键的设置手机型号,软件会根据相应的型号,然后给你提供相应的软件,支持  Symbian s60,s40(java),windows moblie ,理论上支持Java的软件都可以支持!这个情大家试试吧。 + +点主界面的set up device. + +

+ +

+ +先选brand 商标,然后选择型号 model .里面包含了很多手机的型号,出了iphone。android 最新的型号,但是可能android 用Java版本可以使用! + +选好之后 + +

+ +

+ +点copy to desktop,软件就将你手机所需要的软件复制到桌面。再点 continue .然后就是安装手机端软件啦。 + +

+ 在Nokia 6120c 下面安装好之后,出现如下图标。 +

+ +我这里有两个一个是sis格式的,另外一个是java 版 + +本的。 + +接下来你需要继续阅读: + +## [蓝牙手机控制电脑——不是梦!(2)][1] + + [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%812/ \ No newline at end of file diff --git a/source/_posts/2010-09-19-blue-tooth.markdown b/source/_posts/2010-09-19-blue-tooth.markdown new file mode 100644 index 0000000..eb04fd4 --- /dev/null +++ b/source/_posts/2010-09-19-blue-tooth.markdown @@ -0,0 +1,71 @@ +--- +title: 蓝牙手机控制电脑——不是梦!(2) +author: wahyd4 +layout: post +permalink: /2010/09/blue-tooth/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - java,手机 + - Salling Clickr + - 控制 + - 电脑 +--- +作者:Junv + +上篇文章阅读:[蓝牙手机控制电脑——不是梦!(1)][1] + +接下来我们实现手机连接电,并控制电脑的操作。。 + +这里我选择运行Java 版本的程序(sis也可以!), + +手机版本的界面如图所示。 + +

+
+

+ +我们选择connect.(连接)需要确认你的电脑支持蓝牙,并打开。你的手机支持蓝牙并打开。 + +

+ +

+ +选择你的电脑,这里我的电脑是lenovo-pc.然后连接 + +连接成功后得以下界面。这里可以看淡菜单项, + +

+ +

+ +可以看到现在该软件支持控制三种程序,在system里面还可以实现控制鼠标,和调节声音大小。 + +在我们进去之后。点击 menu菜单,然后在里面选择open presentation>>>>在里面可以看到两个选项,我们这里选择recent(这里为了演示方便,而且我以前使用过,如果初次使用你必须选择browse,从电脑里面浏览) + +

+ +

+ +这是手机连接电脑成功的画面,此时电脑的现实是这个样子的,自己调出了PowerPoint + +此时点击手机的ok键,电脑即进入全屏PPt模式,手机界面还有PPT页面的预览显示,手机的左右键即可控制PPT的上下页浏览。 + +

+ +

+ +其他的功能就留给大家自己探索吧,反正这款软件相当不错。 + +大家有什么不懂的,请留言吧,我会尽量给大家解答的。 + +下面附上下载链接:里面包含电脑端安装软件,再弱弱地说一下还有注册机哦。 + +
+ +
+ +点击下载 + + [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/ \ No newline at end of file diff --git a/source/_posts/2010-09-19-end-of-the-summer.markdown b/source/_posts/2010-09-19-end-of-the-summer.markdown new file mode 100644 index 0000000..f548d5a --- /dev/null +++ b/source/_posts/2010-09-19-end-of-the-summer.markdown @@ -0,0 +1,13 @@ +--- +title: end of the summer +author: wahyd4 +layout: post +permalink: /2010/09/end-of-the-summer/ +categories: + - 《 theLun》 +--- +这个夏天就快结束了。我在这里写下第一篇文字。for our summer memories. + +[][1] + + [1]: http://www.junv.info/wp-content/uploads/2010/09/DSC02310_副本_副本3.jpg \ No newline at end of file diff --git a/source/_posts/2010-09-19-recuva.markdown b/source/_posts/2010-09-19-recuva.markdown new file mode 100644 index 0000000..5344949 --- /dev/null +++ b/source/_posts/2010-09-19-recuva.markdown @@ -0,0 +1,59 @@ +--- +title: 软件分享:Recuva(超强文件恢复软件) +author: wahyd4 +layout: post +permalink: /2010/09/recuva/ +categories: + - 头条推荐 + - 酷玩软件 +tags: + - recuva,下载 + - 使用 + - 数据恢复 + - 软件 +--- +作者:Zhong Liang + +欢迎来到大染志          欢迎来到酷玩软件。  从这周开始每周我们每周都会跟大家分享一些对大家的工作、生活、学习非常有用的软件。大家有什么意见、会有什么要求,请在评论中积极提出,我们将尽最大力量满足大家的需求! + +第一款软件分享: + +名字:Recuva(超强文件恢复软件)。 + +功能:该软件能将 :1.被误删了文件、2.格式化了磁盘里面的资料 :恢复如初。 + +适用于:但有些人不小心把自己的重要资料误删了、把盘格式化了、回收站也清空了。这是一点很焦急,这是大家不要慌。Recuva这款超强文件恢复软件能 将你大部分误删的资料找回!   这款软件以得到很多人的认可,并且本人也多次用它,恢复被删的文件的能力超强!觉得值得大家收藏! + +用法简绍:1.首先下载:地址: + +2.双击打开,下一步:出现如下图: + +[][1] + +出现这图时你可以选择你要恢复的文件类型,如果都没就选择其它,直到找到你要恢复的文件类型。 + +3.选好文件类型后下一步,出现如下图: + +[][2] + +当出现这个画面是,你就选择你被删的文件的路径。也就是:你想要恢复的文件以前存储的路径。 + +4.当选好路径后点下一步:出现如下图: + +[][3] + +这是你被删出的文件就已经出现在如上图的目录里了,然后选择你想恢复的文件,点上勾,然后点恢复。 + +注意:当你点恢复时:会让你选择你要把文件恢复到那个盘。请不要把恢复文件的路径整到跟以前被删除文件的路径一样。 + +比如:你以前被删的文件在:c盘 + +那么你恢复文件的文件就最好在:D盘或其它盘。 + +这样文件恢复的机会才能到达95%以上。 + +最后:希望这软件能帮那 些正为重要资料被删而不知道怎恢复的朋友,找回重要的资料。 + + [1]: http://www.junv.info/wp-content/uploads/2010/09/11w2.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/09/asda.jpg + [3]: http://www.junv.info/wp-content/uploads/2010/09/sdasd.jpg \ No newline at end of file diff --git a/source/_posts/2010-09-19-tencent.markdown b/source/_posts/2010-09-19-tencent.markdown new file mode 100644 index 0000000..30e2c43 --- /dev/null +++ b/source/_posts/2010-09-19-tencent.markdown @@ -0,0 +1,201 @@ +--- +title: 送腾讯企业邮箱邀请码啦! +author: wahyd4 +layout: post +permalink: /2010/09/tencent/ +categories: + - 我们爱分享 +tags: + - 企业邮箱 + - 腾讯 + - 邀请码 +--- +作者:Junv + +前几天在网友那里要到的腾讯企业邮箱邀请码,绑定了我的域名。感觉还不错,但是现在腾讯企业邮箱只支持邀请的方式去使用。 + +现在我有30个邀请名额,请各位需要邀请码的朋友们,在下面留言吧,我会尽快送上邀请码的! + +下面是关于腾讯企业邮箱的一些参数。 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ 附:腾讯企业邮箱功能速览 +
+ 独立邮箱帐号数 + + 200个 +
+ 多域名支持 + + 5个 +
+ 邮箱容量 + + 无限制 +
+ 企业网盘 + + 2GB,内部共享 +
+ 普通附件 + + 50 MB +
+ 超大附件 + + 1 GB/每个帐号 +
+ 短信支持 + + 来信提醒、备忘提醒 +
+ 全球互通、南北互联 + + 国内外10多个城市架设服务器 +
+ 防病毒 + + 卡巴斯基防病毒引擎 +
+ 反垃圾功能 + + 系统级反垃圾过滤,支持企业自定义黑白名单 +
+ 多种方式访问 + + 网页、POP3/SMTP、IMAP +
+ 支持SSL + + 全程SSL +
+ 企业内部信息通知 + + 支持公告板和邮件群发 +
+ 帐号自主管理 + + 支持批量导入、邮件群组、分级管理 +
+ 企业地址本 + + 多级组织架构管理 +
+ 日志管理 + + 用户和管理员登录及常用操作记录 +
+ 企业LOGO + + 支持自定义 +
+ +[][1] + + [1]: http://www.junv.info/wp-content/uploads/2010/09/qiye.png \ No newline at end of file diff --git a/source/_posts/2010-09-21-230.markdown b/source/_posts/2010-09-21-230.markdown new file mode 100644 index 0000000..c82c98f --- /dev/null +++ b/source/_posts/2010-09-21-230.markdown @@ -0,0 +1,84 @@ +--- +title: 那些刀光剑影的日子 +author: wahyd4 +layout: post +permalink: /2010/09/230/ +categories: + - 头条推荐 + - 游戏下载 +--- +记得多少年前的小学时代,冒着被老师,被家长骂的危险也要悄悄到网吧玩CS的日子真的渐渐逝去,邀上几个好友血拼是何等的痛快,在那个天真的年代就开始了“血腥”的杀戮。随着时间的消逝,不管现在游戏有多少,无论腾讯的穿越火线有多火,电脑上永远都不会少了反恐精英的影子,经典就是经典,无论多少年华,无论多少的竞争,都不可能磨灭它在我们这个年代出生的人心中的位置。 + +CS最早是由Valve Software公司从1999年6月19日开始发行,从那时候开始CS的神话就不曾抹灭过! + +**人物简介:**** ** + +反恐精英方(CT) + +ST-6【美国海豹突击队第六分队】 + +[][1] + +美国著名特种部队,队员训练素质高,作战能力强,得到世界各国认可。 + +GSG9【德国边境防御大队第九小队】 + +[][2]原本是奥运会保安小队,逐渐发展壮大成为世界一流的境防部队。 + +SAS【英国皇家空降特勤队】 + +[][3] + +世界著名的反恐部队,原本只执行间谍任务,后来扩大到全欧洲的恐怖事件。 + +GIGN【法国宪兵干预队】 + +[][4] + +法国动乱时期建立,在没有军队的情况下干预队会率先镇压民众。 + +恐怖分子方(T) + +凤凰战士【凤凰国际特种组织】 + +[][5] + +曾制造世界震惊的“凤凰炸弹事件”,现正被全世界通缉 + +L337克鲁尔【代号L337】 + +[][6] + +亚洲精英恐怖分子集体,队员枪法高超配合默契,令人闻风丧胆。 + +北极复仇者【瑞典北极特战队】 + +[][7] + +欧洲著名恐怖组织,曾策划多起大型爆炸事件 + +蝰蛇【狂蟒游击队】 + +[][8] + +东南亚经常出没的恐怖分子,手段残忍暴力,为达到目标不惜消灭亲友 + +CS是我们这代人中的神话,是永恒的经典,无论是人物系统,还是武器系统,都是在那个时候甚至到如今都是那样的出色,程亮枪生的金属光泽,棱角分明,轮廓清晰的枪身构造还有那枪口喷发出的火焰!  这些都是我们最珍贵的记忆! + +[][9] + +[][10] + +[][11] + + [1]: http://www.junv.info/wp-content/uploads/2010/09/Seal1.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/09/Gsg9.jpg + [3]: http://www.junv.info/wp-content/uploads/2010/09/Sas.jpg + [4]: http://www.junv.info/wp-content/uploads/2010/09/Gign1.jpg + [5]: http://www.junv.info/wp-content/uploads/2010/09/Phoenix1.jpg + [6]: http://www.junv.info/wp-content/uploads/2010/09/L3371.jpg + [7]: http://www.junv.info/wp-content/uploads/2010/09/Arctic.jpg + [8]: http://www.junv.info/wp-content/uploads/2010/09/Guerilla-2.jpg + [9]: http://www.junv.info/wp-content/uploads/2010/09/d5cdbdb46aee81308bd4b29b.jpg + [10]: http://www.junv.info/wp-content/uploads/2010/09/3442157490195162000.jpg + [11]: http://www.junv.info/wp-content/uploads/2010/09/1e3ae5dda13222ff76c63827.jpg \ No newline at end of file diff --git a/source/_posts/2010-09-22-nikitamaggie-q.markdown b/source/_posts/2010-09-22-nikitamaggie-q.markdown new file mode 100644 index 0000000..76a31c2 --- /dev/null +++ b/source/_posts/2010-09-22-nikitamaggie-q.markdown @@ -0,0 +1,28 @@ +--- +title: NIKITA/maggie Q +author: wahyd4 +excerpt: > + 美剧回归了。盼来了久违的《gossip + girl》。除此之外还有一部新上的《Nikita》,是继《吸血鬼日记》之后美国CW电视台推出的又一部谍战电视连续剧, +layout: post +permalink: /2010/09/nikitamaggie-q/ +categories: + - 《 theLun》 +tags: + - maggie Q + - NIKITA + - 下载 + - 免费 +--- +[][1] + +美剧回归了。盼来了久违的《gossip girl》。除此之外还有一部新上的《Nikita》,是继《吸血鬼日记》之后美国CW电视台推出的又一部谍战电视连续剧,改编自法国著名导演吕克贝松1990年的经典作。看了两集,感觉还不错,是我喜欢的类型。一如美剧一贯的精彩紧凑的剧情。 + +不得不说,Maggie Q的出演是本剧的一大亮点。出身于美国檀香山的美越混血,从一位知名model到知名演员,《赤裸特工》《尖峰时刻2》《碟中谍3》加上这部CW的新戏《尼基塔》,成功塑造了她的“亚洲打女”形象。但Maggie Q始终还是那么性感优雅。 + +[][2] + +NIKITA/maggie Q《尼基塔 第一季》剧集免费下载:来自人人影视:点我进入下载 + + [1]: http://www.junv.info/wp-content/uploads/2010/09/NIKITA.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/09/Maggie-Q1.jpg \ No newline at end of file diff --git a/source/_posts/2010-09-22-wordpress.markdown b/source/_posts/2010-09-22-wordpress.markdown new file mode 100644 index 0000000..937499e --- /dev/null +++ b/source/_posts/2010-09-22-wordpress.markdown @@ -0,0 +1,37 @@ +--- +title: 一款很棒的wordpress 首页动画展示插件 +author: wahyd4 +layout: post +permalink: /2010/09/wordpress/ +categories: + - 头条推荐 + - 酷玩软件 +tags: + - wordpress + - 幻灯片 + - 插件 + - 首页 +--- +笔者为了找这样一款在首页显示的插件费了很多功夫,本来国产的有一款类似的差距叫helloFlash做的还不错,但是有一点不好的就是,这个插件会截取你发辫文章里面的每一张图片,而不是只是一张。这样就不好了。 + +经过苦苦寻找,终于让我找到了这样一款插件,做得比较好。叫做Featured Content Valley ,是一款英文的插件,设置相比helloflash那样的傻瓜配置是要复杂一些,不过还好。下面我就介绍一下这款插件的配置。[][1] + +这里面可以设置你要截取图片的类别,就是 Category name ,我这里选择的是头条推荐。下面一个是显示数量。说一下比较重要的事,你可以自定义幻灯片的宽度和高度。你完全可以按照你自己的需要设置就好了,下面一个选项是在图片下方留多高的区域来显示文字。这篇区域的颜色由幻灯片的背景颜色控制,这个颜色也是可以设置的。即是Gallery Background color。然后你还可以设置幻灯片的边框的颜色,你可以设置成与你的主题相协调的颜色。即是Gallery Border color. 你还可以在Gallery Text color 里面设置显示的字体的颜色。这些事基本设置,下面还有一些设置。 + +[][2] + +下面两行的设置,你可以不用修改,如果你不需要高级属性的话,因为插件本身已经有默认值了。这里我就不再介绍了,如果大家想自己设置这些,就花点功夫自己研究研究吧。 + +Slide Transition Type 这是动画效果的选择,你可以根据你自己的需要来设置什么效果。 + +下面就是有一个Advanced Custom Fields ,一些高级选项。 如果你不勾选高级选项的话,系统就会采用默认选项。 即你只需要在自定义栏目里面属于  类似于键值对这样的东西。键是“ artucleimg”不要引号。然后再值里面跟上图片的地址,说选择的图片还是尽量满足你设置的大小比较好。 + +最后你要做的很简单就是   代码放到你想显示这个动画的任何地方。他就可以显示啦,不信你试试。很简单的。 + + + +下面附上最新版本3.2.0下载地址吧:[点我下载][3](wordpress 官方网站下载)! + + [1]: http://www.junv.info/wp-content/uploads/2010/09/8-15.png + [2]: http://www.junv.info/wp-content/uploads/2010/09/8-15-2.png + [3]: http://downloads.wordpress.org/plugin/featured-content-gallery.3.2.0.zip \ No newline at end of file diff --git a/source/_posts/2010-09-23-f1-2010.markdown b/source/_posts/2010-09-23-f1-2010.markdown new file mode 100644 index 0000000..5d88979 --- /dev/null +++ b/source/_posts/2010-09-23-f1-2010.markdown @@ -0,0 +1,68 @@ +--- +title: F1 2010 现在可以下载啦! +author: wahyd4 +excerpt: > + F1 2010 + 与9月22日发行了,作者第一时间在国内几个比较著名的单机游戏网站的醒目位置都看到介绍和下载链接!本人虽然不算一个游戏的狂热的追求者,但是对赛车和足球确实有着很深厚的感情,于是本人也在第一时间下载了游戏,进行试玩。 +layout: post +permalink: /2010/09/f1-2010/ +categories: + - 头条推荐 + - 游戏下载 +tags: + - F1 2010 + - 上海 + - 下载 + - 赛车 +--- +作者:Junv + +F1 2010 与9月22日发行了,作者第一时间在国内几个比较著名的单机游戏网站的醒目位置都看到介绍和下载链接!本人虽然不算一个游戏的狂热的追求者,但是对赛车和足球确实有着很深厚的感情,于是本人也在第一时间下载了游戏,进行试玩。 + +[][1] + +我下载的是完整破解版,文件大小的5个多G,(我将在文末提供外链种子下载链接),安装的时候也很顺利,没好远出现什么异常,只是我感觉它 的安装界面比较单调,而是剩余时间弄得不好,安装在我的笔记本上大概话了20-30分钟吧。要在安装的过程中输入密钥:01911-01911-01911-01911-01911。 + +安装好之后只需要将镜像razar里面的文件,复制替换到原游戏文件夹即可! + +安装信息: + +1. 解压缩 +2. 载入镜像 +3. 安装并且输入序列号01911-01911-01911-01911-01911 +4. 将破解补丁复制到游戏安装目录下 +5. 运行游戏 + +[][2] + +这里有一点需要说明一下,可能有的童鞋,进入游戏会发现需要你登陆windows live 并输入key 才可以保存游戏,本人最初玩这个游戏的时候也犯了这个错误,后面再网上查了资料。其实不用的,就是在叫你选择使用已有的账号或者新建账号登陆的时候,请选择新建账号,然后进去将选择条往下拉到底,会出现 “ creat a local profile” 这样一个链接,点进去就可以啦。你就可以不用登陆到网上了。 + +我觉得对于我来说刚开始操作这个游戏的时候,感觉还是比较困难的, + +下面简单说一下按键吧   A:进档  Z:退档     空格:油门     ctrl:  刹车,或者倒车用的倒档,   C:切换屏幕,级切换视角    方向键左键:左转    方向键右键:右转 + +其他就差不多啦。 + +[][3] + +刚开始你会从练习赛开始,这个操作也需要大家慢慢适应吧,玩多了就应该觉得好些了。 + +我玩了雨天赛道,感觉太震撼了,而且特别真实,连水雾都模仿得非常逼真。 + +值得一玩的是,里面还有上海国际赛道哦,感觉很亲切。玩过之后发现上海国际赛道还是有两个比较大的弯感觉很困难拐过去, + +而且我还发现法拉利的车子真的直线加速好快好快,很轻易就超过一半的车子。 + +更多精彩由你来体验吧。 + +下面附上下载链接:[点我下载BT种子][4] + +[ 迅雷下载][5](来自gamersky) + +图片来自:多玩 + + [1]: http://www.junv.info/wp-content/uploads/2010/09/picthumb.php_.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/09/33.jpg + [3]: http://www.junv.info/wp-content/uploads/2010/09/22.jpg + [4]: http://db.gamersky.com/Soft/ShowSoftDown.asp?UrlID=1&SoftID=25895 + [5]: http://db.gamersky.com/Soft/ShowSoftDown.asp?UrlID=1&SoftID=25895&flag=1 \ No newline at end of file diff --git a/source/_posts/2010-09-23-ultraiso.markdown b/source/_posts/2010-09-23-ultraiso.markdown new file mode 100644 index 0000000..3be3100 --- /dev/null +++ b/source/_posts/2010-09-23-ultraiso.markdown @@ -0,0 +1,77 @@ +--- +title: 'UltraISO(软碟通)—>轻松做个超好用的u盘系统启动盘!' +author: wahyd4 +layout: post +permalink: /2010/09/ultraiso/ +categories: + - 头条推荐 + - 酷玩软件 +tags: + - u盘 + - 下载 + - 系统 +--- +作者:zhong liang + +UltraISO(软碟通)—>轻松做个超好用的u盘系统启动盘! + +欢迎来到大染志,欢迎来到酷玩软件。 + +分享这个软件的功能:怎样做一个u盘系统启动盘。 + +目的:方便大家,快速的给电脑装:windos xp 或windos 7系统。 + +1. 下载UltraISO(软碟通)。地址:。 + +这个地址下载的该软件,有软件和软件的注册码,堪称完美破解版。大家进去注册(注册很简单就不介绍 了哈) ,然后就能下载了。 + +1. 下载个老毛挑winpe:。 +2. 安装:UltraISO(软碟通)。直接点下一步,下一步,……就ok 了。 +3. 制作u盘系统启动盘过程。 +4. 打开安装好的  :UltraISO(软碟通) ,然后选择文件。如图: + + + +然后点,文件下的打开文件:打开后如图: + +[][1] + +然后选择:你下好的老毛挑winpeboot.iso文件。如下图: + +[][2] + +选择好后,点打开。效果如下图: + +[][3] + +用红色圈住的就是winpeboot.iso的全部文件。 + +接下来就选择,菜单上的:启动  。如下图: + +[][4] + +然后选,启动下的:写入硬盘映像,并同时插上你的u盘。 + +打开效果如图: + +[][5] + +这里要注意了,一定要确定:上图显示的硬盘驱动器:是你u盘的信息,就是确保那驱动器是你的u盘,然后,写入放式最好选择:USB-HDD+,最后选择:写入。 + +这时你等过:10分钟左右就刻录完了,这时你的u盘就是系统启动盘了。 + +科学家说  :实践是检验真理的唯一标准,大家赶快试试吧。 + +经验:本人已做了2个u盘系统启动盘了,跟朋友也做了10多个了 ,绝对好用、使用。 + +由于篇幅问题,这里就不详细介绍怎样用做好的u盘系统启动盘装系统了。简单的说哈。你在:biso里把      first    boot设为:USB-HDD或USB-ZIP启动。就可以看到,u盘启动里面的强大功能了。 + +寄予:希望这篇文章,能真正帮助朋友们轻松做个属于自己的u盘系统启动盘。而不是在网上找了一大堆烦杂的资料,最后还是无从下手。 + +最后:希望大家,多多提出你们的建议,提出你们要求,我们尽最大力量满足大家的要求。希望大家多多评论,如果你觉得:酷玩软件的文章很好很实用,请向你的朋友推荐,在此表示感谢,你们的支持将是我们前进的无限动力! 谢谢! + + [1]: http://www.junv.info/wp-content/uploads/2010/09/12.png + [2]: http://www.junv.info/wp-content/uploads/2010/09/21.png + [3]: http://www.junv.info/wp-content/uploads/2010/09/31.png + [4]: http://www.junv.info/wp-content/uploads/2010/09/41.png + [5]: http://www.junv.info/wp-content/uploads/2010/09/5.png \ No newline at end of file diff --git a/source/_posts/2010-09-24-next-year-and-today.markdown b/source/_posts/2010-09-24-next-year-and-today.markdown new file mode 100644 index 0000000..4397fad --- /dev/null +++ b/source/_posts/2010-09-24-next-year-and-today.markdown @@ -0,0 +1,17 @@ +--- +title: 明年今日。 +author: wahyd4 +layout: post +permalink: /2010/09/next-year-and-today/ +categories: + - 《 theLun》 +--- +  + +它的国语版《十年》是一首被Eason被EF唱烂的了歌。当然这首粤语版的也算。 + +这么多年了,每当前奏响起,情绪还是会不自觉地就落入了歌里。有人听歌是听旋律,有人听歌则看歌词。本人较为喜欢粤语版,只因为粤语的词林夕拿捏得更好。一直如此。而陈小霞的作曲也保持了她一贯的水准。 + +过去几年,喜欢这首歌的原因或许仅仅只是因为旋律顺畅,然而随着年龄的增长人也变得越来越敏感,如今再听这首歌总会感慨于林夕直戳人心的词。 + +凡若有过一段深刻的感情应该都会有感于此吧。此刻回想一年前的自己,是否也如当初一般认真且不舍又或是决绝呢。总有一个人会恋恋不舍。一年又一年地活在当年。只因为在有生的瞬间能遇到你,竞花光所有运气。 \ No newline at end of file diff --git a/source/_posts/2010-09-25-a-most-usefual-website.markdown b/source/_posts/2010-09-25-a-most-usefual-website.markdown new file mode 100644 index 0000000..7a16fb1 --- /dev/null +++ b/source/_posts/2010-09-25-a-most-usefual-website.markdown @@ -0,0 +1,59 @@ +--- +title: 几个常用的网站,要记到哈! +author: wahyd4 +layout: post +permalink: /2010/09/a-most-usefual-website/ +categories: + - 我们爱分享 +tags: + - 几个实用网站,大家要记到哈! +--- +作者:liu + +向大家推荐几个有用的网站哈,他家可以用过这个网站得到一些知识! + +1.太傻论坛,其实一点也不傻,学习英语的好帮手。 + +[][1]http://edu.taisha.org + +2.词汇量相当的惊人,有单词本,里边还有好多学习课程。 + +[http://www.dict.cn ][2] + +3.英语学习网站,练习你的听力, + +    [http://www.24en.com/voa][3] / + + 4.英语翻译网站: + + [][4][http://translate.google.com/#][5] + +5.一个可以精确定位的全球卫星地图: + + + +6. 《环球科学》杂志的官方网站,很吸引人! + +http://www.sciam.cn/ + +7. 圆点视线,关于色彩的教程,做网站或搞平面设计,要想知道什么样的色彩搭配最好,来这里学习一下吧。 + +http://www.apoints.com[][6] + +8. 大名鼎鼎的《电脑爱好者 CFan》的官方网站。主页: + +http://www.cfan.com.cn/ 。        + +论坛:http://bbs.cfan.com.cn/ + +9. 酷驴音乐网,好听的英文歌、纯音乐、非主流音乐 + +http://www.kumule.com/[][7] + + [1]: http://www.junv.info/wp-content/uploads/2010/09/7f9fbd82614149e7bc3e1ecb.jpg + [2]: http://www.dict.cn/ + [3]: http://www.24en.com/voa/ + [4]: http://www.junv.info/wp-content/uploads/2010/09/04e82f089da1c1d23ac763f5.jpg + [5]: http://translate.google.com/ + [6]: http://www.junv.info/wp-content/uploads/2010/09/3b430101a40919bde850cdd5.jpg + [7]: http://www.junv.info/wp-content/uploads/2010/09/u42748670341659055255fm0gp0.gif \ No newline at end of file diff --git a/source/_posts/2010-09-25-cet-6-2.markdown b/source/_posts/2010-09-25-cet-6-2.markdown new file mode 100644 index 0000000..9436039 --- /dev/null +++ b/source/_posts/2010-09-25-cet-6-2.markdown @@ -0,0 +1,56 @@ +--- +title: 分享六级词汇供下载,只是因为我需要面对! +author: wahyd4 +layout: post +permalink: /2010/09/cet-6-2/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 下载 + - 六级 + - 分享 + - 英语 + - 词汇 +--- +作者:Junv + +很庆幸自己在今年6月考过了4级,很纠结的是今年12月我又要面对英语6级。老实说我很多4级单词根本都不认识,考过英语4级完全靠的是我高中的底子! + +但是自己也明白上了大学,对英语这方面花的功夫太少了,唯一增加了的就是:我开始看美剧!到现在为止算是看了5部左右吧,其实在美剧的时候,有时候还是比较纠结的,因为把看美剧荒废了学业,但是自己很多时候又是在耍!好了,还是废话少说。 + +[][1] + +下面来介绍一些为大家准备的英语六级词汇文档。 + +一共两份,两份均来自百度文档分享中心。一份是有英标的(我个人决定有英标很重要!至少可以让我们晓得这个单词怎么发音!),另外一份就是没有音标的了。 + +这里有个从网上截取下来的资料: + + 1.听力 + + 四级听力语速为130~150词每分钟,略快于VOA Special English,大部分考生会由于长期缺乏训练,会有较长的适应期。 + + 六级听力语速则达到150~180词每分钟,英美音并重,且难点多于四级。许多考生在做听力练习时有如游梦境、不知所云的感觉。 + + 2.词汇与语法 + +四级要求考生领会式掌握4200个单词,以及由这些单词构成的常用词组,并具有按照基本构词法识别生词的能力,语法已达到大学最难水平;六级考试要求掌握5500个单词,其中1300以上个较难单词成为六级考试的核心内容,六级考试中30道词汇题只涉及30个高难词汇的辨析。 + +
+ 那天我看了看她的六级词汇书,感觉词汇不是很多,而且有不少词汇其实我们都认识,可能只是不会写。相信我们只要努力这些词汇都不是问题的! +
+ +
+ 哈哈,加油咯! +
+ +
+ 下面分享下载地址吧:无音标版 +
+ +
+ 有音标版(注意两种版本的单词有一些不同哦) +
+ + [1]: http://www.junv.info/wp-content/uploads/2010/09/f14_24825251.jpg \ No newline at end of file diff --git a/source/_posts/2010-09-25-remove-trashes.markdown b/source/_posts/2010-09-25-remove-trashes.markdown new file mode 100644 index 0000000..c530060 --- /dev/null +++ b/source/_posts/2010-09-25-remove-trashes.markdown @@ -0,0 +1,46 @@ +--- +title: 教你一招:清除你电脑中的垃圾文件(很好用) +author: wahyd4 +layout: post +permalink: /2010/09/remove-trashes/ +categories: + - 我们爱分享 +tags: + - 电脑 + - 维护 +--- +作者:Lee + +

+ 步骤很简单就两步!
【方法】新建一个记事本,把下面的文字复制进去,点“另存为”,路径选“桌面”,保存类型为“所有文件”,文件名为“清除系统LJ.bat”,就完成了。记住后缀名一定要是.bat,ok!你的垃圾清除器就这样制作成功了!
双击它就能很快地清理垃圾文件,大约一分钟不到。 +

+ +======就是下面的文字(这行不用复制)============================= + +@echo off +echo 正在清除系统垃圾文件,请稍等…… +del /f /s /q %systemdrive%*.tmp +del /f /s /q %systemdrive%*._mp +del /f /s /q %systemdrive%*.log +del /f /s /q %systemdrive%*.gid +del /f /s /q %systemdrive%*.chk +del /f /s /q %systemdrive%*.old +del /f /s /q %systemdrive%recycled\*.\* +del /f /s /q %windir%*.bak +del /f /s /q %windir%prefetch\*.\* +rd /s /q %windir%temp & md %windir%temp +del /f /q %userprofile%cookies\*.\* +del /f /q %userprofile%recent\*.\* +del /f /s /q “%userprofile%Local SettingsTemporary Internet Files\*.\*“ +del /f /s /q “%userprofile%Local SettingsTemp\*.\*“ +del /f /s /q “%userprofile%recent\*.\*“ +echo 清除系统LJ完成! +echo. & pause + +=====到这里为止(这行不用复制)============================================ +以后只要双击运行该文件,当屏幕提示“清除系统LJ完成!就还你一个“苗条”的系统了!!怎么样?是不是很好用?隔一段时间后,都可以使用该文件来处理产生的垃圾文件。 +注:LJ就是垃圾的意思!这招比那些所谓的优化大师好用!最重要的是无论在公司默认的系统环境还是在自己家中的电脑都不会破坏系统文件 + +

+ +

\ No newline at end of file diff --git a/source/_posts/2010-09-27-462.markdown b/source/_posts/2010-09-27-462.markdown new file mode 100644 index 0000000..d7c7170 --- /dev/null +++ b/source/_posts/2010-09-27-462.markdown @@ -0,0 +1,41 @@ +--- +title: Ucall +author: wahyd4 +excerpt: | + UUcall电脑电话宝,话费超低廉 + + 向大家推荐一种网络电话,只要有电脑,可以上网,就可以使用这款软件。 + + 拥有注册用户超过3000万的UUCall电话宝网络电话,可以直接通过您的电脑拨打全球任意一部电话或者手机, +layout: post +permalink: /2010/09/462/ +categories: + - 酷玩软件 +--- +[][1] 作者 liu + +UUcall电脑电话宝,话费超低廉 + +向大家推荐一种网络电话,只要有电脑,可以上网,就可以使用这款软件。 + +拥有注册用户超过3000万的UUCall电话宝网络电话,可以直接通过您的电脑拨打全球任意一部电话或者手机, + +价格低廉、通话清晰,是最受网友喜爱的免费网络电话软件。 + +并且可享受3~300分钟免费体验。 + +可登陆此网站了解详细信息: + + + +* 下载地址为。可以在此下载此软件,然后注册机可以使用。UUCall电话宝网络电话。 +* 免费绿色软件无需安装,下载到桌面即可使用 +* 软件语言:简体中文      软件大小:1.2M +* 支持平台:Windows2000/XP/Vista/Windows7 + +可在其网页上登陆,登陆需要你的邮址,登陆成功后会在你的邮箱里发送一封邮件,通知你登陆成功。例如内容如下:<1111111111@qq.com>您好: +感谢您注册成为UUCall的会员,请妥善保存您的帐号信息。 + +然后用桌面上的软件即可使用,并拨打电话。 + + [1]: http://www.junv.info/wp-content/uploads/2010/09/7f9fbd82614149e7bc3e1ecb1.jpg \ No newline at end of file diff --git a/source/_posts/2010-09-28-a-competation.markdown b/source/_posts/2010-09-28-a-competation.markdown new file mode 100644 index 0000000..5fcf2b1 --- /dev/null +++ b/source/_posts/2010-09-28-a-competation.markdown @@ -0,0 +1,46 @@ +--- +title: '第三届中国成都青年(大学生)电子商务创业大赛[全国的大学生,三年内毕业青年皆可参加哦]' +author: wahyd4 +layout: post +permalink: /2010/09/a-competation/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 奖金 + - 比赛 + - 电子商务 +--- +作者:Junv + +[][1] + +今天下午我们班上宣布了这个信息:第三届中国成都青年(大学生)电子商务创业大赛,现在可以报名参加比赛了。报名的截止日期是10月25日(即是你需要在10月25日之前提交你的项目,以word形式)。 + +先说一下丰厚的奖金,激起大家的兴趣吧。 + +冠军:奖金20000元+证书 + +亚军:奖金10000元+证书 + +季军:奖金5000元+证书 + +优秀团队奖(7名):奖金1000元+证书; + +看看,奖品还是很丰富的哦。 + +这个是需要一团队形式参加比赛的,每个团队3到5人。(我看了之后心里面有点窃喜哦,我们大染志刚好可以分为两个队参加比赛,哈哈!!先问问他们的意见吧。) + +他这个成都的参赛选手是从成都找一个传统商业,作为研究对象,将其进行从传统商业到电子商务转型。 + +需要::各团队本着以实战为主的思路出发,针对传统企业建设网站(网店)。并从前期市场调研、同行分析、战略定位、网店(网站)设计思路、项目运营推广宣传方案、盈利模式、风险控制、投资预算等方面进行全面细致策划。 + +更多的信息:登陆 + +如果有童鞋,也有参加的意愿,可以和我们联系哦,在下面留言吧!!! + +哈哈,我们可能成为竞争对手哦!! + +Fighting…… + + [1]: http://www.junv.info/wp-content/uploads/2010/09/111.jpg \ No newline at end of file diff --git a/source/_posts/2010-09-28-newest-m9.markdown b/source/_posts/2010-09-28-newest-m9.markdown new file mode 100644 index 0000000..8884f16 --- /dev/null +++ b/source/_posts/2010-09-28-newest-m9.markdown @@ -0,0 +1,28 @@ +--- +title: 魅族M9最新谍照??不是以前的哦 +author: wahyd4 +layout: post +permalink: /2010/09/newest-m9/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - M9 + - 谍照 + - 魅族 +--- +作者:Junv + +今天在群里面有人发了两张模糊的M9的照片,看起来外观都是和M9的很像啊。难道Jwong说的10月份的样机就是这个样子?还是什么人漏出来的。不管怎样,和笔者一样的煤油只希望M9早点出来啊,我们等得花儿都谢了。 + +下面放上图片吧: + +让大家兴奋一下: + +[][1] + +  + +  + + [1]: http://toozhao.com/wp-content/uploads/2010/11/ceJnKbnU8GiY.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-02-google-earth.markdown b/source/_posts/2010-10-02-google-earth.markdown new file mode 100644 index 0000000..551cc6e --- /dev/null +++ b/source/_posts/2010-10-02-google-earth.markdown @@ -0,0 +1,40 @@ +--- +title: Google地图,卫星定位! +author: wahyd4 +layout: post +permalink: /2010/10/google-earth/ +categories: + - 我们爱分享 +--- + 作者:Liu + +向大家介绍一个地图。只要输入你想查找的地点,Google就会通过其全球卫星为你查找到精确的方位。 + +Google 地图,在地图上查找本地商户、查看 + +卫星地图、获取公交和驾车路线。  + +Google地图可以分为两类,当你使用地图选项时,查找的地点是以地图形式出现的。 + +当你使用卫星选项时,查找的地点是以卫星实物图显示的。 + +例如你想查找河北省邯郸市第一中学,只需在搜索栏中输入“河北省邯郸市第一中学”那么邯郸第一中学 的俯视图就会出现。 + +这是因为Google将该实物的卫星俯视图拍摄了下来。 + + 如图示**Google地图**里的中国新疆库尔乐军事基地转贴图俯视图: + +[][1] + +如图示。利用**Google 地图**提供路线非常灵活 + + [][2] + +网址。 + + 谷歌地图(Google Map) + +谷歌地图(Google Maps)是 Google 公司提供的电子地图服务,包括局部详细的卫星照片。能提供三种视图:一是矢量地图(传统地图),可提供政区和交通以及商业信息;二是不同分辨率的卫星照片(俯视图,跟 Google Earth 上的卫星照片基本一样);三是地形视图,可以用以显示地形和等高线。它的姊妹产品是Google Earth。 + + [1]: http://www.junv.info/wp-content/uploads/2010/10/tupian.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/10/n.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-05-jiu-zai-gou.markdown b/source/_posts/2010-10-05-jiu-zai-gou.markdown new file mode 100644 index 0000000..d6affda --- /dev/null +++ b/source/_posts/2010-10-05-jiu-zai-gou.markdown @@ -0,0 +1,27 @@ +--- +title: 九寨沟。黄龙(美图) +author: wahyd4 +layout: post +permalink: /2010/10/jiu-zai-gou/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 九寨沟 + - 图片 + - 素材 + - 黄龙 +--- +作者:Junv + +趁着国庆这个长假,和我弟娃去九寨沟转了一圈。我们运气很好,碰到了难得的艳阳天。九寨沟真的很美。下面就送上美图吧,需要的同学就来拿图吧,做素材也很好的哦。 + +[][1][][2][][3][][4][][5][][6][][7] + + [1]: http://www.junv.info/wp-content/uploads/2010/10/SAM_1185_conew1.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/10/SAM_1216_conew1.jpg + [3]: http://www.junv.info/wp-content/uploads/2010/10/SAM_1212_conew1.jpg + [4]: http://www.junv.info/wp-content/uploads/2010/10/SAM_1209_conew1.jpg + [5]: http://www.junv.info/wp-content/uploads/2010/10/SAM_1202_conew1.jpg + [6]: http://www.junv.info/wp-content/uploads/2010/10/SAM_1198_conew1.jpg + [7]: http://www.junv.info/wp-content/uploads/2010/10/SAM_1190_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-05-private.markdown b/source/_posts/2010-10-05-private.markdown new file mode 100644 index 0000000..726c731 --- /dev/null +++ b/source/_posts/2010-10-05-private.markdown @@ -0,0 +1,31 @@ +--- +title: 游戏推荐——private +author: wahyd4 +excerpt: > + 在浏览网页时,笔者偶然发现了这款名为《private》的游戏,有些直译成中文又叫“私处”但是总觉得这个名字有点不太尊重女性朋友一样。这个姑且放过不提。 +layout: post +permalink: /2010/10/private/ +categories: + - 头条推荐 + - 游戏下载 +tags: + - 下载 + - 游戏 +--- +在浏览网页时,笔者偶然发现了这款名为《private》的游戏,有些直译成中文又叫“私处”但是总觉得这个名字有点不太尊重女性朋友一样。这个姑且放过不提。 + +笔者尝试玩了一下这款游戏,感觉画面很可爱,而且最重要的是他那纯正的英语发音,对于正要准备英语四级考试的我来说,一边游戏一边听力,哇咔 (这样玩游戏时就可以告诉老妈我在练听力——好天真)。好啦废话不多说。下面是一些游戏截图,希望你们喜欢 + +  + +  + +开发商Zombie Cow在发布会上将这款游戏描述为“你指挥一群小小的带着避孕套作头盔的战士,深入女性私处和屁股”的射击游戏 + +  + +下面提供游戏下载连接:[电驴下载][1] [迅雷下载][1] + +**对了 忘记说的一点是这款游戏看起来小巧可是貌似对机器配置的要求有点高,所以如果机器配置过低的童鞋可以在设置里面把游戏效果尽可能的调低点。如果还有什么问题的话  可以留言相互讨论,希望有高手能够看见解决一下!** + + [1]: ed2k://|file|%5B%E7%A7%81%E5%A4%84%5D.privates.exe |100129178|b6ee25991d267336e4e183ec6c936b58|h =ustp4csd3ezxngtfz6t7cdghrbmu6j3j|/ \ No newline at end of file diff --git a/source/_posts/2010-10-05-qq-reading.markdown b/source/_posts/2010-10-05-qq-reading.markdown new file mode 100644 index 0000000..4e0657d --- /dev/null +++ b/source/_posts/2010-10-05-qq-reading.markdown @@ -0,0 +1,34 @@ +--- +title: QQ阅读——像艺术一样阅读 +author: wahyd4 +excerpt: > + 笔者今天偶然登录QQ邮箱,发现了QQ阅读这个东西(现在还处于beta版本)。于是我便试着开始使用这个东西。用过之后,的确我被这样一个艺术品一样的东西给镇住了,它的界面是如此漂亮,让人惊艳不已。 +layout: post +permalink: /2010/10/qq-reading/ +categories: + - 头条推荐 + - 我们爱分享 +--- +作者:Junv + +笔者今天偶然登录QQ邮箱,发现了QQ阅读这个东西(现在还处于beta版本)。于是我便试着开始使用这个东西。用过之后,的确我被这样一个艺术品一样的东西给镇住了,它的界面是如此漂亮,让人惊艳不已。 + +和google reader 和 有道阅读相比,QQ阅读的界面更加简洁,更加漂亮。让人眼前一亮。 + +下面结合图片进行说明吧。 + +[][1]这是设置好你订阅之后的界面,将你喜欢阅读的显示出来,是不是很漂亮,很简洁呢? 你除了可以订阅一般网站以外,还可以订阅微博,QQ空间最近留言,分享最多的文章,等等。 + +[][2]这是订阅我们之后的显示的文章类别页面,页面的排版没有采用传统的竖直列表,而且加上了图片的现实,看上去让人想赶快阅读。 + +[][3] + +这是文章阅读的界面,比普通的阅读页面感觉更大,视野更宽阔,更简洁。而且你还可以评论文章或者分享到QQ微博,空间等等。 + +很不错的小功能。 + +我的看法:其实我不讨厌腾讯这个公司,相反我很喜欢现在的腾讯公司,他们开发的产品越来越有创意,希望腾讯开发出越来越多的东西吧,越来越少的山寨。 + + [1]: http://www.junv.info/wp-content/uploads/2010/10/11sa.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/10/red.jpg + [3]: http://www.junv.info/wp-content/uploads/2010/10/hahasd.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-07-prepare-cet-4.markdown b/source/_posts/2010-10-07-prepare-cet-4.markdown new file mode 100644 index 0000000..da1a4a4 --- /dev/null +++ b/source/_posts/2010-10-07-prepare-cet-4.markdown @@ -0,0 +1,55 @@ +--- +title: 备战四级! +author: wahyd4 +excerpt: | + 马上要四级考试。 + + 那么四级的分数是怎安排的呢?我们又应把重点发在哪里呢? + + 四级中:听力部分35% ,249分 + 阅读理解为35% ,249分 +layout: post +permalink: /2010/10/prepare-cet-4/ +categories: + - 我们爱分享 +--- +马上要四级考试。 + +那么四级的分数是怎安排的呢?我们又应把重点发在哪里呢? + +
四级中:听力部分35% ,249分
+ +阅读理解为35% ,249分 + +完型填空或改错部分为10% ,71分 + +写作和翻译部分分值比例为20%,其中写作部分15%,翻译部分5%,共142分。 + +满分是710分 + +其次,时间安排(级考试流程): + +1. 写作:30分钟 +2. 快速阅读:15分钟 +3. 收第一张答题卡:5分钟 +4. 听力:35分钟 +5. 选词填空、阅读、完形填空、翻译:45分钟 +6. 开始交卷 + +参加四级考试的感触是,考前觉得难,所以一直在准备。考试心中慌乱,怕自己答不完题,考完后对答案,只觉得自己一定能过,心中很放心。下面是自己的参考经验: + +其中阅读分为快速阅读与选词填空和两篇阅读 + +**快速阅读**:时间要求为15分钟,大概有1300字,所以没有时间精读。 + +**做题技巧**:先看题,找出关键字,再依照关键字从文中找答案。还有就是应该抓住发卷子的五分钟,做快速阅读。一般作文时间比较充沛,但那时还未发放快速阅读卷子。 + +**阅读**:两篇阅读分值很高,共有十道选择题,占分120分左右,所以要很精细的阅读。可以先看题,再阅读,因为时间不是很够,可以节约时间。 + +** 听力**:分值比较大,所以要重视。 + +考前一定要多练习,其次在考试中也要根据关键词做题,一般对的概率比较大。但主要还是下功夫练习听力。 + +可以从中下载。 + +翻译与完形填空、选词填空都需要平时词汇的积累,所以从现在起,要开始好好学习。 \ No newline at end of file diff --git a/source/_posts/2010-10-07-tk-free.markdown b/source/_posts/2010-10-07-tk-free.markdown new file mode 100644 index 0000000..d296fde --- /dev/null +++ b/source/_posts/2010-10-07-tk-free.markdown @@ -0,0 +1,41 @@ +--- +title: .tk顶级域名免费注册啦 +author: wahyd4 +excerpt: | + 笔者在浏览网页时,发现一个可以免费注册的顶级域名,而且还比较短哦。那就是.tk + + 注册地址:http://www.dot.tk/zh/pageA00.html +layout: post +permalink: /2010/10/tk-free/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 免费 + - 域名 +--- +作者:Junv + +笔者在浏览网页时,发现一个可以免费注册的顶级域名,而且还比较短哦。那就是.tk + +注册地址: + +笔者尝试注册了一下,而且注册步骤也很简单。不要注意的是,长度在4个字母以上的域名是免费的,而长度在四个字母以下的域名是需要付费的,而且很贵。 + +注册里面你需要留下你真实的邮箱信息,因为你注册的时候,系统会将一个链接和一个相信的类似于激活码的东西发送到你的邮箱,此时你打开邮箱的链接,输入“激活码”即可完成注册了。 + +下面送上注册过程中的图片吧。 + +[][1] + +[][1]在这里面填上你想要注册的域名的字母就可以了 +[][2] + +如果你的域名没有被注册,显示你可以注册,然后勾选免费域名就行啦。下面的填的的一些信息就没什么特别的了 + +切记:你需要填写你真实的邮箱地址,否则你将收不到域名注册的有关信息。 + +如果个别童鞋仍然搞不懂域名注册,请在后门留言吧,我会尽快帮你解决的。 + + [1]: http://www.junv.info/wp-content/uploads/2010/10/regdom.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/10/reg1.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-07-xiami-free-download.markdown b/source/_posts/2010-10-07-xiami-free-download.markdown new file mode 100644 index 0000000..b58a361 --- /dev/null +++ b/source/_posts/2010-10-07-xiami-free-download.markdown @@ -0,0 +1,44 @@ +--- +title: 虾米正版音乐免费下载 +author: wahyd4 +excerpt: > + 也许很多在网上听歌的童鞋都知道虾米这个网站吧,他是一个web + 2.0 + 的网站,可以根据自己的喜好在选择歌曲,也可以听其他网友正在听的或者是其他网友推荐你听的歌曲。同时还可以用自己喜欢的歌制作电台给大家分享你喜欢的歌曲。 +layout: post +permalink: /2010/10/xiami-free-download/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 下载 + - 免费 + - 虾米 + - 音乐 +--- +作者:Junv + +也许很多在网上听歌的童鞋都知道虾米这个网站吧,他是一个web 2.0 的网站,可以根据自己的喜好在选择歌曲,也可以听其他网友正在听的或者是其他网友推荐你听的歌曲。同时还可以用自己喜欢的歌制作电台给大家分享你喜欢的歌曲。 + +最近虾米推出了“酷暑一夏,音乐随下”活动,你可以免费下载虾米里面的正版音乐啦。而且随着日期的增长,你可以下载的歌曲每天就增加一首。比如今天是10月7日,那么我今天就可以免费下载7首,明天我就可以下载8首,以此类推。。。。 + +希望想要下载正版歌曲的童鞋们赶紧去下载吧!也许这个活动不知道哪一天就取消啦。 + +需要注意的是,下载虾米里面的正版音乐,你需要 下载虾米的音乐软件——虾歌 + +  + + + + + + + +
+ + +
+ +虾米地址: + +虾歌下载地址: \ No newline at end of file diff --git a/source/_posts/2010-10-08-haha.markdown b/source/_posts/2010-10-08-haha.markdown new file mode 100644 index 0000000..645b879 --- /dev/null +++ b/source/_posts/2010-10-08-haha.markdown @@ -0,0 +1,24 @@ +--- +title: 提个神。 +author: wahyd4 +excerpt: | + 晚餐时间。各位吃过了吗?来欣赏一下这张颇具艺术感的图片吧。 + + 出自哪位摄影师之手本人目前尚未知。只是看着这张图不由会想起余华的《兄弟》里对于那些个“屁股”的描写。 +layout: post +permalink: /2010/10/haha/ +categories: + - 《 theLun》 + - 头条推荐 +--- +  + +晚餐时间。各位吃过了吗?来欣赏一下这张颇具艺术感的图片吧。 + +出自哪位摄影师之手本人目前尚未知。只是看着这张图不由会想起余华的《兄弟》里对于那些个“屁股”的描写。当然,在这里我们暂且将它称之为“臀部”。 + +这张图的光线运用的恰到好处,阴影落在底部更增强了立体感。否则您不用想也知道除了能看见两瓣浑圆的人体组织之外还有那什么。 + +构图也非常棒。不仅重点突出,更是让观众的视线随着后背脊柱而一直向前延伸。展开的五指使人感受到人体的力量。 + +人体摄影不过艺术,你我皆非专业人士,全当娱乐欣赏罢。只是不知图中之物所属雌雄。您觉得呢? \ No newline at end of file diff --git a/source/_posts/2010-10-08-three-nations.markdown b/source/_posts/2010-10-08-three-nations.markdown new file mode 100644 index 0000000..1270543 --- /dev/null +++ b/source/_posts/2010-10-08-three-nations.markdown @@ -0,0 +1,31 @@ +--- +title: 巨经典的网页游戏《三国杀》 +author: wahyd4 +excerpt: > + 作为一个忠实的三国粉丝,今天为大家推荐一款虽然有点落伍的三国游戏《三国杀》,但是它的可玩性很不错哦!可以算是网页游戏中比较有内涵,有质量的精品! +layout: post +permalink: /2010/10/three-nations/ +categories: + - 游戏下载 +--- +[][1] + +[][2]作为一个忠实的三国粉丝,今天为大家推荐一款虽然有点落伍的三国游戏《三国杀》,但是它的可玩性很不错哦!可以算是网页游戏中比较有内涵,有质量的精品! + +《三国杀》是中国传媒大学动画学院04级游戏专业学生基于bang规则设计,2009年6月底《三国杀》被移植至网游平台,推出Online版。在《三国杀》游戏中,玩家将扮演一名三国时期的武将,结合本局身份,合纵连横,经过一轮一轮的谋略和动作获得最终的胜利。   《三国杀》作为一款原创桌面游戏,有别于其他桌面游戏的最主要特色,就是身份系统。《三国杀》中共有4种身份:主公、反贼、忠臣、内奸。主公和忠臣的任务就是剿灭反贼,清除内奸;反贼的任务则是推翻主公。内奸则要在场上存在除主公以外的其他人物之时先清除其他人物,最后单挑主公。游戏开始时每个玩家随机抽取一张身份牌,抽到主公的玩家,要将自己的身份牌明示。其他人的身份牌不能被其他玩家看到。 + +《三国杀》游戏作为一款网页游戏,注定它的上手就得比较容易。它采用回合制的出牌顺序,由主公开始依次行动,在自己的回合内,玩家需要完成摸牌、出牌和弃牌的过程。游戏牌共分为三大类:基本牌、锦囊牌和装备牌。每类牌里包含了多种同类型牌。每种牌都有自己的独特用处。 + +这款游戏的另一大游戏特色,就是在游戏中加入了武将系统,每名玩家除去自己的身份外,还需要扮演一名三国时期的武将。每名武将都有专属武将技,这些技能从名称到作用都是根据该武将能力、性格而设计。[][3] + +而这款游戏最吸引我的一点就是,它在游戏牌名称的设计上力求做到“语出必有典”,例如【乐不思蜀】牌下注明“问禅曰:‘颇思蜀否?’禅曰:‘此间乐,不思蜀。’”简单的几句话就讲述了乐不思蜀的典故。一张看似简单的【无中生有】,牌下的注释却是引自博大精深的《老子》:“天下万物生于有,有生于无。”这样的设定很容易就能吸引一大批的上班族,因为它也和其他桌游一样,是一款健康的游戏。一局多则三、四十分钟,少则十几分钟。轻松自在,大可在公司午休时来上一局,同时也可以学到很多的典故。 + +当然,具体的玩法,我就不一一讲解了,因为,每个人都有自己的风格,只有玩出自己风格的游戏才是适合你的游戏! + +网页游戏,无需下载!你需要做的,就是:百度一下《三国杀》! + +《三国杀》,看谁不爽,就杀谁。你,还等什么呢? + + [1]: http://www.junv.info/wp-content/uploads/2010/10/图片1.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/10/f2264e2cd53cfcde8813996f.jpg + [3]: http://www.junv.info/wp-content/uploads/2010/10/图片2.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-09-a-platform.markdown b/source/_posts/2010-10-09-a-platform.markdown new file mode 100644 index 0000000..165bca1 --- /dev/null +++ b/source/_posts/2010-10-09-a-platform.markdown @@ -0,0 +1,50 @@ +--- +title: 为您学习网络安全知识 搭建一个简单而快捷的平台 +author: wahyd4 +excerpt: > + 当我们在使用电脑的时候,或多或少会遇到有关网络安全的问题,我们是否懂呢?我们或许对人难以启齿的问,可是自己也不免有不知道的时候,那就请你看看下面的内容吧。希望对你们有所帮助。 +layout: post +permalink: /2010/10/a-platform/ +categories: + - 头条推荐 +tags: + - 专题 + - 网络安全 +--- +作者:Wei + +或许我们提供的知识很少,或许我们提供的知识还很单方面,但是,请您明白这是一群大学生的一片热忱的心。 + +[][1] + +**何为安全技术** + +当我们在使用电脑的时候,或多或少会遇到有关网络安全的问题,我们是否懂呢?我们或许对人难以启齿的问,可是自己也不免有不知道的时候,那就请你看看下面的内容吧。希望对你们有所帮助。 + + + +**网络安全学习方法揭秘** + +想要对网络安全知识深入的了解与学习,我们就需要一个完整的学习方法。希望下面的一些方法能够给您带来一些头绪,以至于设计出适合自己的学习方法。这个大揭秘希望你不要错过哦。 + + + +**网络安全学习计划** + +了解了整体的学习方法,我们下面需要的便是一个整套的学习计划了。现在我们为您提供便是我们认为不错的计划安排哦。但愿我们的所做的不会让您失望。 + + + +## 网络安全在线为你服务 + +我们提供的知识与服务还很欠缺,您想知道的内容我们也许没办法一时间给你完备的答复,希望这块内容能解决此项问题,能更好的、及时地解决您当前面临的问题。 + + + +**网络安全注意事项** + +在处理有关网络安全的问题的时候,一定要注意以下提到的问题及注意事项哦,别错过了。 + + + + [1]: http://www.junv.info/wp-content/uploads/2010/10/200914135159.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-24-google-chrome.markdown b/source/_posts/2010-10-24-google-chrome.markdown new file mode 100644 index 0000000..c7fd11a --- /dev/null +++ b/source/_posts/2010-10-24-google-chrome.markdown @@ -0,0 +1,53 @@ +--- +title: 几款google chrome浏览器扩展程序(app) +author: wahyd4 +excerpt: > + 笔者作为一个忠实的chrome粉丝,一直坚持用chrome浏览器,除了淘宝和网银这些不得不用IE。老实说你用过了chrome + 你就一点也不想再回去用IE 8这样的蜗牛浏览器,用chrome + 你才明白什么叫速度, +layout: post +permalink: /2010/10/google-chrome/ +categories: + - 头条推荐 + - 酷玩软件 +tags: + - chrome +--- +作者:Junv + +[下载google扩展程序][1] + +笔者作为一个忠实的chrome粉丝,一直坚持用chrome浏览器,除了淘宝和网银这些不得不用IE。老实说你用过了chrome 你就一点也不想再回去用IE 8这样的蜗牛浏览器,用chrome 你才明白什么叫速度,而且我也很喜欢从chrome简洁的界面和对CSS3已经html 5的良好支持。 + +出最初的chrome到现在的chrome 8,据说chrome 9都快出来了。看来chrome 就是快啊。 + +当然用google chrome 浏览器就离不了扩展程序了。如果是chrome 是一辆跑车的话,好的扩展程序就是为chrome 插上了翅膀。chrome 从此就可以飞了。 + +好了在这里就不废话了,支持插入主题吧。 +[截图快手: 截屏, 批注, 分享][2] 英语: + +## [Awesome Screenshot: Capture & Annotate][2] + +这款插件的督导之处就是,比起官方的截图插件,你不仅可以截图,还可以在图片做标记,对图片进行剪裁和在图上打上文字。这样你就可以很容易的对图片进行标注和涂鸦了。 + +[][3] + +[Ultimate Chrome Flag][4] + +这款插件对网页开发者和网站管理员特别有用,通过塌,你可以看到这个网站所在的IP和地址,你还可以看到它的Alexa 排名和google PR等信息,如果那个网站足够好你还可以看到他在google 趋势里面的信息。 + +[][5] + +[Chrome TV][6] + +这是一款在线看电视的插件,你通过这个插件可以看到你以前看不到的电视台哦。全世界很多地方的电视都有,当然也包括我们中国咯,我前面看了一下中国的电视台还不少哦。。其他的就让大家慢慢去发现吧 + +[][7]更多的东西就留给大家去探索吧,记得给我说哦。。。 + + [1]: https://chrome.google.com/extensions?hl=zh-CN + [2]: https://chrome.google.com/extensions/detail/alelhddbbhepgpmgidjdcjakblofbmce + [3]: http://www.junv.info/wp-content/uploads/2010/10/下载_conew1.jpg + [4]: https://chrome.google.com/extensions/detail/dbpojpfdiliekbbiplijcphappgcgjfn + [5]: http://www.junv.info/wp-content/uploads/2010/10/QQ截图未命名.jpg + [6]: https://chrome.google.com/extensions/detail/lambangeielkjcnmioccboaphdfcffib + [7]: http://www.junv.info/wp-content/uploads/2010/10/1132sdasaz.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-24-m9.markdown b/source/_posts/2010-10-24-m9.markdown new file mode 100644 index 0000000..360c33a --- /dev/null +++ b/source/_posts/2010-10-24-m9.markdown @@ -0,0 +1,34 @@ +--- +title: 且说M9 +author: wahyd4 +excerpt: > + M9这个名字已经出现了N久N久,从最开始说有tds-cdma 和wcdma + 两个版本,到现在M9只有WCDMA版本。一款手机让我们等了太久,太久。 +layout: post +permalink: /2010/10/m9/ +categories: + - 头条推荐 + - 我说 +tags: + - M9 + - 评论 +--- +作者:Junv + +M9这个名字已经出现了N久N久,从最开始说有tds-cdma 和wcdma 两个版本,到现在M9只有WCDMA版本。一款手机让我们等了太久,太久。 + +其实我最初看重魅族M9的还是性价比高。配置很高端,价格也相对苹果便宜一些,而且很重要一点的是它用的android 系统,因此它的扩展性一定很好。然后慢慢到现在,我们再细细来看,魅族这样的配置2499已经没有当初曝光时的那样有吸引力了。MOTO的里程碑现在也就2500左右,你能把魅族的工业制造水平和MOTO的比吗,在一些细节的处理上显然不能。但是魅族的确是一个很负责的公司,我们在论坛上可以看到,很多消费者的M8坏了,都是魅族免费回厂维修。 + +然后说说现在魅族的系统,在android基础上进行再开发,我们通过Jwong漏图片,可以看到的确比android原生态系统界面简洁多了,而且也是相当漂亮的。据说比android原生系统易用很多。 + +下面我就想说说我的抱怨:魅族M9让我们等了太久了,M9延续了M8的跳票。从最初的8月上市,后来延迟到12月上市10月底出样机在店上我们试用。现在10月还剩下仅有的5天,我们还看不到任何M9到门市试用的消息,我对M910月底可以试用这一消息表示怀疑,我们现在可以看到的仅仅是Jwong偶尔露出的一些信息,吊足了我们的胃口。口水到了嘴边又被咽了下去。 + +再则是魅族的价格,从最初的2199,再到现在的2499。然而改进的仅仅是屏幕的分辨率从720\*480,到现在的960\*680。但是时间也推后了几个月啊,就我个人来看吧,价格应该不会升这么多吧,而且标准配置里面还没有耳机。所以我才说魅族的性价比都没有以前那么高了。其实我个人决定作为一个旗舰手机,3G手机,还是应该配置前置摄像头。但是现在几乎可以断定是没有摄像头了。(从我们得知的种种消息来看) + +以前有人说,android 3.0 将不再允许OEM商将界面改变,如果真是这样的话,魅族的系统还有前途吗?还可以继续向前吗?但是我个人决定,这个消息的可能性不太大,如果大家都是一样的界面,又这么多厂商,比的只能是配置和外观。还有多少可比性呢? + +最后,作为魅族的支持者。我还是希望M9早日出来吧!我等得花谢花开啦! + +附上M9最新图片一张:[][1] + + [1]: http://www.junv.info/wp-content/uploads/2010/10/734f12f3bc2bba8c0b46e00e.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-26-java-best-four.markdown b/source/_posts/2010-10-26-java-best-four.markdown new file mode 100644 index 0000000..2a8a94c --- /dev/null +++ b/source/_posts/2010-10-26-java-best-four.markdown @@ -0,0 +1,166 @@ +--- +title: 传说中的JAVA四大名著 +author: wahyd4 +layout: post +permalink: /2010/10/java-best-four/ +categories: + - IT书籍 + - 头条推荐 +--- +作者:Lee + +1、Java编程语言(第三版)——-James Gosling(Java之父) + +本书基本信息如下: + +
    +
  • + 原书名: The Java Programming Language,Third Edition +
  • +
  • + 原出版社: Addison Wesley/Pearson +
  • +
  • + 作者: [美]Arnold,Gosling,Holmes +
  • +
  • + 译者: 虞万荣 王玉峰 赵亮 +
  • +
  • + 丛书名: 开发大师系列 +
  • +
  • + 出版社:中国电力出版社 +
  • +
  • + ISBN:7508315162 +
  • +
  • + 上架时间:2003-11-25 +
  • +
  • + 出版日期:2003 年12月 +
  • +
  • + 开本:16开 +
  • +
  • + 页码:560 +
  • +
  • + 版次:3-1 +
  • +
  • + 本版教材征订号:0044098052-2 +
  • +
+ +
+
    +
  • +

    + 适用专业:计算机 +

    +
  • + +
  • +

    + 适用分级:研究生、本科 +

    +
  • +
+
+ +#### [][1] + +内容简介:这是一本众多java fans千呼万唤才出来的好书,本书由“java之父”[b]james gosling[/b]以及另外两名顶级大师(jini技术的创建者[b]ken arnold[/b]和著名开发大师[b]david holmes[/b])亲自撰写,无论是对java语言的初学者还是资深使用者都具有极高的价值. +本书完全覆盖了java语言当前版本的特征和类库,可以作为java语言的入门向导,也可作为高级java开发及java语言教学的参考用书。 +2、Java编程思想(第3版)——-Bruce Eckel + +本书基本信息(第三版) + +* 原书名: **Thinking in Java, Third Edition** +* 原出版社: Prentice Hall PTR +* 作者: **(美)Bruce Eckel** +* 译者: 陈昊鹏 饶若楠等 +* 丛书名: **计算机科学丛书** +* 出版社:机械工业出版社 +* ISBN:**711116220X** +* 上架时间:2005-4-21 +* 出版日期:2005 年5月 +* 开本:16开 +* 页码:796 +* 版次:3-1 + * 所属分类: 计算机 > 软件与程序设计 > JAVA > + +[][2][][3] + +3、 Effective Java中文版——–Joshua Bloch + +## 本书基本信息 + +
    +
  • + 原书名: Effective Java Programming Language Guide +
  • +
  • + 原出版社: Pearson Education +
  • +
  • + 作者: (美)Joshua Bloch +
  • +
  • + 译者: 潘爱民 +
  • +
  • + 丛书名: Sun公司核心技术丛书 +
  • +
  • + 出版社:机械工业出版社 +
  • +
  • + ISBN:7111113853 +
  • +
  • + 上架时间:2003-1-8 +
  • +
  • + 出版日期:2003 年1月 +
  • +
  • + 开本:16开 +
  • +
  • + 页码:214 +
  • +
  • + 版次:1-1 +
  • +
+ +4、JAVA 2核心技术 卷I:基础知识(原书第7版)——–Cay Horstmann +JAVA 2核心技术 卷II:高级特性(原书第7版)———Cay Horstmann + +[][4] + +**内容简介:** + +本书是java技术经典参考书,多年畅销不衰,第7版在保留以前版本风格的基础上,涵盖java 2开发平台标准版j2se 5.0的基础知识,主要内容包括面向对象程序设计、反射与代理、接口与内部类、事件监听器模型、使用swing ui工具箱进行图形用户界面设计、异常处理、流输入/输出和对象序列化,泛型程序设计等。 +本书内容翔实、深入浅出,附有大量程序实例,极具实用价值,是java初学者和java程序员的必备参考书。 + +> **下载地址:** +> +> Java编程语言第三版 +> +> thinking in java 中文版第三版 +> +> Effective java 中文版 +> +> java 核心技术第二卷(请用迅雷下载!) +> +> 请你支持我们的网站,而不是做一个来了下了就走了!如不能下载,请告知我们,我们会尽快发到你的电子邮箱 + + [1]: http://www.junv.info/wp-content/uploads/2010/10/Java编程语言(第三版).jpg + [2]: http://www.junv.info/wp-content/uploads/2010/10/Java编程思想(第2版).jpg + [3]: http://www.junv.info/wp-content/uploads/2010/10/Java编程思想:第3版.jpg + [4]: http://www.junv.info/wp-content/uploads/2010/10/JAVA-2核心技术-卷I:基础知识(原书第7版).jpg \ No newline at end of file diff --git a/source/_posts/2010-10-27-speedupmypc.markdown b/source/_posts/2010-10-27-speedupmypc.markdown new file mode 100644 index 0000000..79f70bc --- /dev/null +++ b/source/_posts/2010-10-27-speedupmypc.markdown @@ -0,0 +1,53 @@ +--- +title: '整理并提升计算机速度,SpeedUpMyPc评测&下载' +author: wahyd4 +excerpt: > + 也许每个人有时都会不经意间发现自己的电脑变得很慢,连打开本地的文件夹都感觉不是很流畅,这种感觉可能在windows + 7上比windows xp + 更明显。其实这也是正常的,当你的电脑用了很久之后就会产生很多垃圾,加上本身系统没有根据自身的硬件情况加以优化, +layout: post +permalink: /2010/10/speedupmypc/ +categories: + - 头条推荐 + - 酷玩软件 +--- +作者:Junv + +也许每个人有时都会不经意间发现自己的电脑变得很慢,连打开本地的文件夹都感觉不是很流畅,这种感觉可能在windows 7上比windows xp 更明显。其实这也是正常的,当你的电脑用了很久之后就会产生很多垃圾,加上本身系统没有根据自身的硬件情况加以优化,所以慢慢你就会觉得自己的电脑越来越慢,今天我为大家推荐一款国外的商业软件SpeedUpMyPc。但是是需要购买的,(弱弱地说一下我们的下载版本里面包含有激活码哦。)但是的确处理效果很好。可以提升电脑的速度。 + +[][1] + +当你进入主页面,点击快速扫描,他就会自动扫描你的电脑。帮你解决: + +系统调整:改善internet访问,系统资源和视觉效果的使用情况。 + +加速工具:提高windows的开机速度,文件导航浏览速度和软件启动的速度。我个人决定提高windows开机速度不错哦。比360更好。 + +垃圾文件:帮你清理很多垃圾文件。 + +[][2]扫描之后你可以看到,他回根据扫描结果,需要改进地方的多少,来判断你电脑存在的问难题是否严重。如果你第一次使用这个软件,那你看到的结果肯定会吓你一跳的。注意:如果你不激活的话你都不能使用它的修复功能哦。 + +如果你按照它的要求调整了自己的计算机,有些东西你想后悔的话,你可以点击在 管理 的系统调整里面,撤销一些你前面做的修改。这个比较人性化。 + +[][3]这个软件还有一些加速工具,当你一直在后台运行这个软件的话,他就可以帮你一直优化电脑。 + +**CPU管理器:可以控制那些失控的程序耗尽你的电脑资源。** + +**主动式文件缩略图生成器:提高你文件浏览的速度。** + +**软件快速启动程序:帮你快速从开始菜单启动程序。** + +**[][4] +** + +[**下载软件**][5] + +如果下载失效,请留言告诉我们。 + +注意:这个软件是通过联网激活,附件里面的激活码,我本人是成功激活了,如果大家没有激活,请在文章末尾留言吧。 + + [1]: http://www.junv.info/wp-content/uploads/2010/10/110.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/10/21.jpg + [3]: http://www.junv.info/wp-content/uploads/2010/10/31.jpg + [4]: http://www.junv.info/wp-content/uploads/2010/10/41.jpg + [5]: http://u.115.com/file/f136f6643 \ No newline at end of file diff --git a/source/_posts/2010-10-29-sql.markdown b/source/_posts/2010-10-29-sql.markdown new file mode 100644 index 0000000..4446c27 --- /dev/null +++ b/source/_posts/2010-10-29-sql.markdown @@ -0,0 +1,117 @@ +--- +title: SQL入门经典(第4版)附下载 +author: wahyd4 +layout: post +permalink: /2010/10/sql/ +categories: + - IT书籍 +tags: + - SQL + - 下载 + - 免费 +--- +作者:Junv + +[][1] + +我们大家都清楚学习编程语言的人,都是必须学习数据库的。现在比较流行的数据库有 mysql,oracle,微软的 SQL 2005,SQL 2008等等。其实差不多都是 采用 SQL语言进行操作,当然不同的数据库,操作还是有一些差别的。 + +今天给大家推荐一本书 SQL 入门经典(第四版)。 + +其他我就不多说了,这样一本经典的书。 + +下面贴出书的目录: + +**目录** + +**第一部分 SQL概念综述 +第1章 欢迎来到SQL世界 +1.1 SQL定义及历史 +1.2 SQL会话 +1.3 SQL命令的类型 +1.4 本书使用的数据库 +1.5 小结 +1.6 问与答 +1.7 实践 +第二部分 建立数据库 +第2章 定义数据结构 +2.1 数据是什么 +2.2 基本数据类型 +2.3 小结 +2.4 问与答 +2.5 实践 +第3章 管理数据库对象 +3.1 什么是数据库对象 +3.2 什么是规划 +3.3 表:数据的主要存储方式 +3.4 完整性约束 +3.5 小结 +3.6 问与答 +3.7 实践 +第4章 规格化过程 +4.1 规格化数据库 +4.2 去规格化数据库 +4.3 小结 +4.4 问与答 +4.5 实践 +第5章 操作数据 +5.1 数据操作概述 +5.2 用新数据填充表 +5.3 更新现有数据 +5.4 从表里删除数据 +5.5 小结 +5.6 问与答 +5.7 实践 +第6章 管理数据库事务 +6.1 什么是事务 +6.2 控制事务 +6.3 事务控制与数据库性能 +6.4 小结 +6.5 问与答 +6.6 实践 +第三部分 从查询中获得有效的结果 +第7章 数据库查询 +7.1 什么是查询 +7.2 SELECT语句 +7.3 简单查询的范例 +7.4 小结 +7.5 问与答 +7.6 实践 +第8章 使用操作符对数据进行分类 +第9章 汇总查询得到的数据 +第10章 数据排序与分组 +第11章 调整数据的外观 +第12章 日期和时间 +第四部分 建立复杂的数据库查询 +第13章 在查询里结合表 +第14章 使用子查询定义未确定数据 +第15章 组合多个查询 +第五部分 SQL性能调整 +第16章 利用索引改善性能 +第17章 改善数据库性能 +第六部分 使用SQL管理用户和安全 +第18章 管理数据库用户 +第19章 管理数据库安全 +第七部分 摘要数据结构 +第20章 创建和使用视图及异名 +第21章 使用系统目录 +第八部分 在实际工作中应用SQL知识 +第22章 高级SQL主题 +第23章 SQL扩展到企业、互联网和内部网 +第24章 标准SQL的扩展 +第九部分 附录 +附录A 常用SQL命令 +附录B 使用MySQL进行练习 +附录C 测验和练习的答案 +附录D 本书范例的CREATE TABLE语句 +附录E 书中范例的INSERT语句 +附录F 额外练习** + +**下载:[点我][2]** + +**温馨提示:如果有能力,还是希望大家购买正版。支持作者。** + +**附卓越购买链接:购买** + + [1]: http://www.junv.info/wp-content/uploads/2010/10/51pYWZH59eL._BO2204203200_PIsitb-sticker-arrow-clickTopRight35-76_AA240_SH20_OU28_.jpg + [2]: http://u.115.com/file/f165f38b6c \ No newline at end of file diff --git a/source/_posts/2010-10-30-world-of-goo.markdown b/source/_posts/2010-10-30-world-of-goo.markdown new file mode 100644 index 0000000..83d1893 --- /dev/null +++ b/source/_posts/2010-10-30-world-of-goo.markdown @@ -0,0 +1,33 @@ +--- +title: 粘粘世界(World of Goo) 汉化版 下载 +author: wahyd4 +excerpt: > + 这是一款很值得玩的游戏,也许可以这样说吧,我觉得并不必植物大战僵尸差。别看游戏大小只有70多M,可是却又很多关卡,而且游戏的画面美工也做得相当不错。都是2D的效果,加上那些音乐,这个游戏给人的感觉就是特别地震撼。 +layout: post +permalink: /2010/10/world-of-goo/ +categories: + - 头条推荐 + - 游戏下载 +tags: + - 下载 + - 免费 + - 游戏 +--- +作者:Junv + +这是一款很值得玩的游戏,也许可以这样说吧,我觉得并不必植物大战僵尸差。别看游戏大小只有70多M,可是却又很多关卡,而且游戏的画面美工也做得相当不错。都是2D的效果,加上那些音乐,这个游戏给人的感觉就是特别地震撼。 + +[][1] + +最初是看室友在玩这个游戏,然后就被这个游戏深深地迷上了。这个游戏就是有很多Goo,(Goo就是粘连小球)你用他来搭建,让它变得很高抑或是变得跨度很大。里面有几种不同的粘连小球,像是黑色的粘连小球和绿色的粘连小球还有透明的粘连小球。游戏里面你可能还会借助一些其他的道具,比如说像热气球这样的东西,刻意让粘连小球被拖起来,不至于往下压垮掉。 + +[][2] + +这个游戏里面借用了很多无力力学上的原理。这样使得你不得不随时考虑粘连建筑的稳固性。让你在玩游戏的同时还锻炼了大脑。 + +这款游戏是不是很棒呢?? + +下载:点我下载 + + [1]: http://www.junv.info/wp-content/uploads/2010/10/928_1272447245_9825.jpg + [2]: http://www.junv.info/wp-content/uploads/2010/10/928_1272447245_95561.jpg \ No newline at end of file diff --git a/source/_posts/2010-10-31-format-change.markdown b/source/_posts/2010-10-31-format-change.markdown new file mode 100644 index 0000000..ae324ec --- /dev/null +++ b/source/_posts/2010-10-31-format-change.markdown @@ -0,0 +1,51 @@ +--- +title: '格式转换:音频、视频、图片->想要什么格式就有什么格式!' +author: wahyd4 +excerpt: | + 软件名称:格式工厂 + + 软件功能:能将视频、音频、图片转换成任何格式!比如:有些电影在电脑上看不方便,想在手机上看,这时格式工厂就能将视频转换成:3gp格式! +layout: post +permalink: /2010/10/format-change/ +categories: + - 头条推荐 + - 酷玩软件 +--- +Author:Zhong   Liang + +软件名称:格式工厂 + +软件功能:能将视频、音频、图片转换成任何格式!比如:有些电影在电脑上看不方便,想在手机上看,这时格式工厂就能将视频转换成:3gp格式! + +下载地址: + +用法介绍: + +1. 下载格式工厂,安装,打开如图: + +[][1] + +2.:比如你要将视频avi格式转换成3gp格式:那么就选视频,将其转换成3gp,如图: + +[][2] + +3.点3gp就出现如下图,然后点击添加文件,如图: + +[][3] + +4.然后选中你要转换的文件,如图: + +[][4] + +5.选中之后,就点确定,如图:[][5] + +6.最后,点确定,就开始格式转换了:[][6] + +7.最后,点输出文件夹,就能看见已经转换好的格式了: + + [1]: http://www.junv.info/wp-content/uploads/2010/10/11.png + [2]: http://www.junv.info/wp-content/uploads/2010/10/21.png + [3]: http://www.junv.info/wp-content/uploads/2010/10/3.png + [4]: http://www.junv.info/wp-content/uploads/2010/10/4.png + [5]: http://www.junv.info/wp-content/uploads/2010/10/5.png + [6]: http://www.junv.info/wp-content/uploads/2010/10/61.png \ No newline at end of file diff --git a/source/_posts/2010-11-01-google-picasa.markdown b/source/_posts/2010-11-01-google-picasa.markdown new file mode 100644 index 0000000..905ce2e --- /dev/null +++ b/source/_posts/2010-11-01-google-picasa.markdown @@ -0,0 +1,45 @@ +--- +title: Google Picasa 可以访问了? +author: wahyd4 +excerpt: > + 本来今天作者想来试验前些天以为有人介绍的用http://picasaweb.google.com.jp来访问Picasa,可是我今天用我的chrome + 打开这个这个网址是,网址直接调到http://picasaweb.google.com/home + ,而且页面很快打开了。 +layout: post +permalink: /2010/11/google-picasa/ +categories: + - 我们爱分享 +tags: + - google + - picasa +--- +作者:Junv + +本来今天作者想来试验前些天以为有人介绍的用http://picasaweb.google.com.jp来访问Picasa,可是我今天用我的chrome 打开这个这个网址是,网址直接调到 ,而且页面很快打开了。难道我中大奖了?还是大家都可以访问啦? + +我觉得可能还是我们在某些时候可以访问Picasa 相册。 + +下面还是说一下前面友人告诉我的方法吧。虽然Picasa 被X了,可是有些国家的google 分站的 picasa 服务没有被X,所以我们可能通过这个渠道可以访问到。大家开动大脑试试吧。 + +请求大家验证一下吧。 + +下面附上我的一张截图,以示我说的是真话。请大家注意看右下角的时间哦。我没有作假。 + +

+

+ 笔者今天晚上有访问就这个网站。如果我们直接诶访问的话的确是访问不到的。然而如果我们在访问这个链接picasaweb.google.com.jp/home  ,则是可以访问的,大家试试吧。 +

+ +
+

+ 更新:好像现在这个链接已经不能访问了,如果你想浏览picasa请使用VPN访问。可以参考一下文章: +

+ +

+ 免费VPN推荐:173VPN +

+ +

+ 免费VPN(Tenacy) +

+
\ No newline at end of file diff --git a/source/_posts/2010-11-03-san-css.md b/source/_posts/2010-11-03-san-css.md new file mode 100644 index 0000000..c596e6d --- /dev/null +++ b/source/_posts/2010-11-03-san-css.md @@ -0,0 +1,41 @@ +--- +title: 禅意花园——CSS网页经典案例 +author: wahyd4 +layout: post +permalink: /2010/11/san-css/ +categories: + - 编程之美 +--- +**禅意花园——CSS网页经典案例** + +**作者 liu**  + +[][1]** **  + +** +CSS禅意花园是一位加拿大设计师Dava Shea创建的,他在网站设计的实际工作中逐渐认识到CSS的巨大潜力远远被挖掘出来。 **** **  + +为了推动CSS设计的发展,他在2003年建立了“CSS禅意花园”这个网站,网址为[http://www.csszengarden.com][2]  + +[][3] + +他知道仅仅依靠自己的力量是无法发掘出CSS的全部潜力的,因此采用了征集作品的方式,通过大家的努力来展现CSS的魅力。  + + 首先Dava Shea精心设计了一个网页,把这个网页的HTML结构和内容固定下来,为这个网页设计了5个完全不同主题风格的CSS样式,  + +然后通过网站的发布,邀请全世界的广大设计师参与CSS禅意花园的作品设计,征集作品。  + +[][4]  + +对征集的作品要求必须完全使用他提供的这个HTML结构和内容,不能做改动,要保证通过调用设计师提供的CSS文件来展现作品。  + +读者在网址[http://www.zengarden.com][5]的后面加上编号,就可以查看相应的作品,例如要查看005号作品,  + +输入网址. +可以查看第149个网页。 + + [1]: /images/2010/11/u42748670341659055255fm0gp0.gif + [2]: http://www.csszengarden.com/ + [3]: /images/2010/11/u4243068223183409904fm15gp0.gif + [4]: /images/2010/11/7f9fbd82614149e7bc3e1ecb.jpg + [5]: http://www.zengarden.com/ \ No newline at end of file diff --git a/source/_posts/2010-11-04-free-vpn.md b/source/_posts/2010-11-04-free-vpn.md new file mode 100644 index 0000000..66877e9 --- /dev/null +++ b/source/_posts/2010-11-04-free-vpn.md @@ -0,0 +1,69 @@ +--- +title: 免费VPN(Tenacy) +author: wahyd4 +excerpt: | + 相信大家都有这样的经历吧,你想浏览国外的一些网站。比如查一些资料啊等等。可是直接访问却访问不了。那真叫悲剧啊。 + + 所以就有这样一种技术叫VPN,在百度百科的解释是:VPN的英文全称是“Virtual Private Network”, +layout: post +permalink: /2010/11/free-vpn/ +categories: + - 头条推荐 + - 我们爱分享 +--- +> 最新通告 +> 如果您無法訪問 Tenacy 開心直通車,請將網址更改為 vpnXX.tenacy.com 其中的 XX 為任意英文或數字。例如: http://vpna1.tenacy.com/ + +相信大家都有这样的经历吧,你想浏览国外的一些网站。比如查一些资料啊等等。可是直接访问却访问不了。那真叫悲剧啊。 + +所以就有这样一种技术叫VPN,在百度百科的解释是:VPN的英文全称是“Virtual Private Network”,翻译过来就是“虚拟专用网络”。顾名思义,虚拟专用网络可以把它理解成是虚拟出来的企业内部专线。 + +我们现在一般用的VPN,一般常见的是在美国,还有些事香港。这两个地方是做多的。 + +可是网上的VPN。几乎所有的都是收费的,很难找到免费的VPN而且速度还不错,今天给大家介绍一个免费的VPN。Tenacy 公司提供的免费公众服务。 + +可以免费使用VPN,正如它介绍的情况,这个VPN不需要注册,免费,没有广告,隐藏IP,无时间限制,无限流量。 + +

+ 当你点开这个网站,然后再输入框中输入验证码,即可得到VPN的账号和密码。一般是会出现三个账号。其中两个是美国的主机,另外一个是香港的主机。选择香港或者美国的主机都差不多,速度经过测试都比较快。没有出现连接不上的情况。 +

+ +

+ 接下来说说怎么使用收到的VPN账号。由于我的电脑是windows 7,因此我将介绍win 7下的使用办法,其实XP也差不多。 +

+ +

+ 首先,你需要确定你的电脑是介入互联网的,简单说你刻意打开QQ,百度这样的网站。 +

+ +

+ 点击桌面的网络图标(就是显示时间那个区域的网络图标),然后选择打开网络和共享中心。 +

+ +

+ 选择连接到网络,带有VPN的选项。 +

+ +

+ 点击VPN连接。 +

+ +

+ 在这里输入你在网页里面得到的账号和密码。账号一般都是 vpn.tenacy.com 。  下面的域输入框不用输入。 +

+ +

+ 注意你在网页得到的VPN,信息,需要分类型,有的是刻意windows ,linux, mac os使用,有些事android ,iphone 使用的。 +

+ +

+ 请注意分辨,如果没有分辨的话,可能出现端口错误的信息。 +

+ +

+ 如果连接成功,你将看到VPN连接下方显示,Internet 访问。 +

+ +

+ 好了,说完了,想要的同学们快试试吧。不错哦。 +

\ No newline at end of file diff --git a/source/_posts/2010-11-04-google-changes-life.md b/source/_posts/2010-11-04-google-changes-life.md new file mode 100644 index 0000000..30d5ba6 --- /dev/null +++ b/source/_posts/2010-11-04-google-changes-life.md @@ -0,0 +1,82 @@ +--- +title: 《Google改变生活》好书推荐 +author: wahyd4 +excerpt: > + 今天在学校图书馆看书,看到新书架上到了这样一本书《google + 改变生活》。我很好奇,在谷歌离开中国内地以后还会有专门写google的非技术性的文章。 +layout: post +permalink: /2010/11/google-changes-life/ +categories: + - IT书籍 +tags: + - google + - 图书 +--- +今天在学校图书馆看书,看到新书架上到了这样一本书《google 改变生活》。我很好奇,在谷歌离开中国内地以后还会有专门写google的非技术性的文章。 + +

+ +

+ +这本书,是介绍给平时不怎么了解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的一些功能和软件 + +这里给大家提供在线阅读的链接: + +点我阅读 \ No newline at end of file diff --git a/source/_posts/2010-11-04-kabasky-free.md b/source/_posts/2010-11-04-kabasky-free.md new file mode 100644 index 0000000..0d1428a --- /dev/null +++ b/source/_posts/2010-11-04-kabasky-free.md @@ -0,0 +1,29 @@ +--- +title: 卡巴斯基免费啦 +author: wahyd4 +excerpt: > + 在此360与QQ鏖战之际,卡巴斯基给我们送来了一丝微风。卡巴斯基赠送旗下的高端安全软件,卡巴斯基安全部队2011 + 一年的免费使用权。希望广大同学听到消息后火速到卡巴网站填写你的邮箱,申请激活码。 +layout: post +permalink: /2010/11/kabasky-free/ +categories: + - 我们爱分享 +tags: + - 免费 + - 卡巴斯基 +--- +在此360与QQ鏖战之际,卡巴斯基给我们送来了一丝微风。卡巴斯基赠送旗下的高端安全软件,卡巴斯基安全部队2011 一年的免费使用权。希望广大同学听到消息后火速到卡巴网站填写你的邮箱,申请激活码。 + +看来卡巴斯基也想从这场战役中获益哈哈。 + +只有30天的时间哦,过了这个村,就没有这个店啦。 + +温馨提示:如果你的电脑配置较低,我在这里就不是很建议你用卡巴斯基,因为卡巴斯基一向比较消耗内存和CPU资源在其更新和杀毒的时候。但是杀毒的性能确实没话说,很不错的。 + +下面附上申请地址:点我进入 + +这里还有一个我申请到的激活码,需要的同学就拿去吧,我没用。 + +[][1] + + [1]: /images/2010/11/11-4-6.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-09-call-of-duty-7.md b/source/_posts/2010-11-09-call-of-duty-7.md new file mode 100644 index 0000000..8230c3c --- /dev/null +++ b/source/_posts/2010-11-09-call-of-duty-7.md @@ -0,0 +1,69 @@ +--- +title: 年度游戏大作——使命召唤7完美破解版下载 +author: wahyd4 +excerpt: '《使命召唤:黑色行动》(Call of Duty: Black Ops)是Activision公司出品的著名FPS游戏《使命召唤》系列的第七部,故事设定在越南战争与北极、古巴等一些冷战地区。' +layout: post +permalink: /2010/11/call-of-duty-7/ +categories: + - 头条推荐 + - 游戏下载 +tags: + - 下载 + - 使命召唤 + - 免费 +--- +注:此文章大部分内容来自3DM,且游戏资源资源也是来自3DM。 + +此游戏在今天才正式发布,因此相信这个资源也应该是最新的。 + +[][1] + +**中文名称**:使命召唤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. + +[][2] + +下面是本童鞋想说的一些话,相信常玩单机游戏的朋友,没有不知道使命召唤系列游戏吧,即是call  of duty,该游戏美奶奶出一个新版本。今年已经到了第七年。这个游戏特别注重游戏的真实感,画面也很棒,当然对电脑要求也很高哦,所以电脑配置不好的朋友,量力而行吧。 + +这个版本里面还加入了时下很流行的僵尸模式,很让人期待哦。我已经在下载啦,你呢? + +我话就不多说了,大家自己下载吧!玩吧,保证让你爽到死。哈哈 + +下载种子:点我 + +附3DM论坛使命召唤 7游戏发布地址: 需要注册哦。 + + [1]: /images/2010/11/20101025160542364.jpg + [2]: /images/2010/11/11-9_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-10-java-9-9.md b/source/_posts/2010-11-10-java-9-9.md new file mode 100644 index 0000000..776f4cd --- /dev/null +++ b/source/_posts/2010-11-10-java-9-9.md @@ -0,0 +1,59 @@ +--- +title: Java双重循环的典型应用(九九乘法表) +author: wahyd4 +excerpt: > + 刚才正好在看JAVA的双重循环这一块,然后突然就想到了很经典的九九乘法表。因为我们之前C语言里面也写过这样的程序。所以我就试着写这个程序。 +layout: post +permalink: /2010/11/java-9-9/ +categories: + - 编程之美 +tags: + - java +--- +刚才正好在看JAVA的双重循环这一块,然后突然就想到了很经典的九九乘法表。因为我们之前C语言里面也写过这样的程序。所以我就试着写这个程序。确实在试的过程中还是发现很多问题和值得注意的地方。下面慢慢说来。 +用JAVA写的九九乘法表。 + +
{
+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和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 .它其实就是一个数组其实相当于是程序比不可少的东西,不管怎样你都要写出来,但是你还是可以选择不在程序里面使用它。** \ No newline at end of file diff --git a/source/_posts/2010-11-10-zune.md b/source/_posts/2010-11-10-zune.md new file mode 100644 index 0000000..e4e0a21 --- /dev/null +++ b/source/_posts/2010-11-10-zune.md @@ -0,0 +1,65 @@ +--- +title: 超越itunes的音乐播放软件Zune +author: wahyd4 +excerpt: > + 如果以前你以为只有苹果的itunes播放器可以很华丽的话,那现在你就错了,微软的Zune + 我觉得比苹果的itunes更加华丽,更加完美。同样他们都是依附于产品而生存的。 +layout: post +permalink: /2010/11/zune/ +categories: + - 头条推荐 + - 酷玩软件 +--- +如果以前你以为只有苹果的itunes播放器可以很华丽的话,那现在你就错了,微软的Zune 我觉得比苹果的itunes更加华丽,更加完美。同样他们都是依附于产品而生存的。itunes 衣服与ipod,itouch,iphone。然而zune则依附与微软的zune音乐播放器。这可以说是二者的共同之处吧。 + +下面我们将抛开itunes 只谈Zune,先来看看Zune的主界面吧。 + +

+ +

+ +

+ 可以看到zune的主界面也深褐色构成,这是一个正在播放音乐的的主界面。可以在界面下方看到音乐的信息,还有红色的跳动的光晕,随着音乐的节奏变化,特别漂亮。主界面有三个主要部分构成。history+new+pins +

+ +

+ history里面显示的你的历史播放信息,new里面显示的最新加入播放目录的媒体,包括音乐,视频,相片,以及你订阅的信息(需要连接有订阅内容的网站。)当你点击他们时,都会出现很漂亮的动画。 +

+ +

+ zune的音乐播放效果也是特别好的。 +

+ +

+ 我们选择左上方的colllection就可以进入选择你想要播放的媒体。 +

+ +

+ +

+ +

+ 和主界面相反,媒体页面这是选用白色为主旋律,而且从界面可以看出,风格和windows phone 7  是一种风格,很不错的艺术。 +

+ +

+ 同样可以看到在右上方可以用几种不同的方式来浏览歌曲。 +

+ +

+ 下面说一种我个人最喜欢发的方式,就是用Zune放着歌,用zune打开图片,用幻灯方式浏览。那才真叫享受啦。 +

+ +

+ 下面给大家发一张图片看看。 +

+ +

+ 其他更多的功能就大家去探索吧。比如订阅功能,我在这里就不多讲啦。 +

+ +

+ 下面附上官方的下载地址(目前这个播放器只有英语版本,切大小大概100M左右。):点我下载 +

+ +

\ No newline at end of file diff --git a/source/_posts/2010-11-11-java.md b/source/_posts/2010-11-11-java.md new file mode 100644 index 0000000..b36bfd8 --- /dev/null +++ b/source/_posts/2010-11-11-java.md @@ -0,0 +1,243 @@ +--- +title: Java基础与案例开发详解免费在线阅读 +author: wahyd4 +excerpt: > + 话说虽然作者上学期已经学了j2se + 了,但是这个学期来了之后,还是觉得自己的java + 功底不够,很多东西感觉还是无从下手,前面一再说的药学j2ee + 然后开发网站, +layout: post +permalink: /2010/11/java/ +categories: + - IT书籍 +--- +话说虽然作者上学期已经学了j2se 了,但是这个学期来了之后,还是觉得自己的java 功底不够,很多东西感觉还是无从下手,前面一再说的药学j2ee 然后开发网站,一直在拖,拖到现在还是没有怎么学习。究其原因我的j2se还是没有学扎实。 + +想我们学的虽然是卡内基梅隆大学的SSD系列课程,但是没用书,学java 怎么会有多少效果。所以我最近在重新学习看j2se,的确学到很多新的知识,而且把以前的知识也巩固了。 + +[][1] + +这本书写的很详细,是大家可能会熟悉的张孝祥组织编写的,内容的质量还不错哦,没有很多国内java 书的浮躁。全书接近600页。前面是分别详细讲解,最后是几个不错的开发软件的实例,其中一个是开发一个java版本的QQ,里面实现了QQ的绝大多数功能哦。值得学习一下。 + +下面附上书的一点目录: + +点击即可进入51cto阅读。 + + + + + + + + + +
+ 第1章 Java 前奏 +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
  • + 1.1 Java语言发展简史 +
  • +
    +
  • + 1.2.1 Java语言特性 +
  • +
    +
  • + 1.2.2 Java Applet +
  • +
    +
  • + 1.2.3 丰富的类库 +
  • +
    +
  • + 1.2.4 Java的竞争对手 +
  • +
    +
  • + 1.2.5 Java在应用领域的优势 +
  • +
    +
  • + 1.3.1 Java SE 标准版 +
  • +
    +
  • + 1.3.2 Java EE 企业版 +
  • +
    +
  • + 1.3.3 Java ME微型版 +
  • +
    +
  • + 1.4.1 什么是JDK +
  • +
    +
  • + 1.4.2 JDK的安装目录和实用命令工具.. +
  • +
    +
  • + 1.4.3 设置环境变量 +
  • +
    +
  • + 1.4.4 验证配置的正确性 +
  • +
    +
  • + 1.5 MyEclipse 7.1工具开发环境的安.. +
  • +
    +
  • + 1.6 本章练习 +
  • +
    +
    + + + + + + + + + +
    + 第2章 Java程序简介 +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    +
  • + 2.1 什么是程序 +
  • +
    +
  • + 2.2 计算机中的程序 +
  • +
    +
  • + 2.3.1 Java程序中的类型 +
  • +
    +
  • + 2.3.2 Java应用程序开发三步曲 +
  • +
    +
  • + 2.3.3 开发Java第一个程序 +
  • +
    +
  • + 2.3.4 Java代码中的注释 +
  • +
    +
  • + 2.3.5 常见错误解析 +
  • +
    +
  • + 2.4 Java类库组织结构和文档 +
  • +
    +
  • + 2.5 Java虚拟机简介 +
  • +
    +
  • + 2.6 Java技术的两个核心 +
  • +
    +
  • + 2.7 本章练习 +
  • +
    +
    + + +
    + +完整版本阅读地址:点我 + + [1]: /images/2010/11/11-11-1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-12-another-wordpress.md b/source/_posts/2010-11-12-another-wordpress.md new file mode 100644 index 0000000..3564299 --- /dev/null +++ b/source/_posts/2010-11-12-another-wordpress.md @@ -0,0 +1,40 @@ +--- +title: 换一种方式阅读wordpress 博客 +author: wahyd4 +excerpt: > + 今天给大家介绍一款很新颖的插件,这个插件是一位中国ajax + 达人写的,它可以让你的博客变成QQ 阅读 + 那样的界面,让读者可以换一种方式阅读文章, +layout: post +permalink: /2010/11/another-wordpress/ +categories: + - 头条推荐 +tags: + - wordpress + - 插件 +--- +今天给大家介绍一款很新颖的插件,这个插件是一位中国ajax 达人写的,它可以让你的博客变成QQ 阅读 那样的界面,让读者可以换一种方式阅读文章,而且界面的动态效果做得很好,是不是很爽呢。而且这个插件还带有几种不同的皮肤,读者可以根据自己的需要切换皮肤。 + +下面是插件所实现的博客页面: + +[][1]页面的布局,是根据文章自动生成的,几乎每一页的布局都是不一样的。这样就给读者很新鲜的感觉,而且这个页面还没有广告,是不是很爽呢? + +而且这个页面的设置也是相当简单的 + +[][2]你可以设置你不想要显示在这个插件里面的分类,和每次显示的评论条数。 + +这个插件使用也是很简单: + +**如何去使用插件?** + +1. 到小工具页面向边栏添加【尽享阅读】小工具 + +或者 +2. 调用函数``来自定义显示位置,此函数将生成一个a链接节点。 + +插件下载地址:点我 + +作者博客:点我 + + [1]: /images/2010/11/11-12-4_conew1.jpg + [2]: /images/2010/11/11-12-5_conew1.gif \ No newline at end of file diff --git a/source/_posts/2010-11-12-avatar-720p.md b/source/_posts/2010-11-12-avatar-720p.md new file mode 100644 index 0000000..1385abe --- /dev/null +++ b/source/_posts/2010-11-12-avatar-720p.md @@ -0,0 +1,28 @@ +--- +title: 《阿凡达(加长版)》720p 资源下载 +author: wahyd4 +excerpt: > + 加长版本的电影,比前面的版本增加了8分钟的介绍潘多拉新球景色的片段,一定可以让大家一包眼福的,这个这个720p的资源也是很大的哦,有接近8G,网速慢的同学可能会需要下载很久啦。 +layout: post +permalink: /2010/11/avatar-720p/ +categories: + - 头条推荐 + - 我们爱分享 +--- +相信阿凡达大家都看过吧,高清的可能很多人也看过,可是最新的加长版本的高清我相信绝大多数人都没看过吧。 + +加长版本的电影,比前面的版本增加了8分钟的介绍潘多拉新球景色的片段,一定可以让大家一包眼福的,这个这个720p的资源也是很大的哦,有接近8G,网速慢的同学可能会需要下载很久啦。 + +片  长 178分钟 + +分辨率:1280*720 + +其他信息就不用我多介绍了吧。 + +[][1] + +今天笔者在人人影视闲逛的时候,发现了这个资源。 + +电驴,迅雷下载地址:点我获取地址 + + [1]: /images/2010/11/11-12-6_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-12-thanks-support.md b/source/_posts/2010-11-12-thanks-support.md new file mode 100644 index 0000000..a209191 --- /dev/null +++ b/source/_posts/2010-11-12-thanks-support.md @@ -0,0 +1,25 @@ +--- +title: 多谢大家支持 +author: wahyd4 +excerpt: ' 网站建了还是有几个月了,可以一直以来苦于没有宣传,加上其他一些原因吧,网站的浏览量一直很低,一般每天也就10几二十个人访问,' +layout: post +permalink: /2010/11/thanks-support/ +categories: + - 我说 +tags: + - google +--- +网站建了还是有几个月了,可以一直以来苦于没有宣传,加上其他一些原因吧,网站的浏览量一直很低,一般每天也就10几二十个人访问,而且很多人的访问深度也不是很高,平均久只有2个页面左右。看来我还需要在这方面多下功夫啊。 + +昨天在wordpress.org.cn论坛里面推广了一下自己的博客,效果还是不错,还是有很多人访问我的博客啦。在这些再次谢谢大家支持啦。 + +于是今天便看自己的网站排名,很意外,现在网站排名已经升到200万以内啦,但是google PR还是为0哦(搜狗PR已经变成1啦。),看来这个还是需要多多努力啊。 + +[][1] + +我的google adsence  已经申请很多年了,可是这么就一直没人支持我的广告,我还是希望如果大家我的文章够好的话,希望大家支持我。昨天有两位同胞支持我啦,一共赚到了0.15美元,谢谢你们啦。我的全部金额也已经有4美元了。还是值得庆祝一下。哈哈 + +[][2]以后我还是继续努力,写更好的文章给大家,希望大家多多支持我,通过RSS看我文章的朋友,还是希望你们多进我的博客吧。算是支持我,谢谢了。。 + + [1]: /images/2010/11/11-12-1_conew1.gif + [2]: /images/2010/11/11-12-3_conew1.gif \ No newline at end of file diff --git a/source/_posts/2010-11-12-worpdress-share-plugin.md b/source/_posts/2010-11-12-worpdress-share-plugin.md new file mode 100644 index 0000000..5b51caf --- /dev/null +++ b/source/_posts/2010-11-12-worpdress-share-plugin.md @@ -0,0 +1,30 @@ +--- +title: 超炫的wordpress 收藏分享插件 +author: wahyd4 +excerpt: > + 玩wordpress博客的朋友,都希望通过读者的分享,给大家带来更多的流量吧,今天就给大家介绍一款这样的插件,而且效果特炫哦,我的文章后面就是用的这个插件,实际效果,大家在文章末尾就可以看到啦。 +layout: post +permalink: /2010/11/worpdress-share-plugin/ +categories: + - 我们爱分享 +tags: + - wordpress + - 分享 + - 插件 +--- +玩wordpress博客的朋友,都希望通过读者的分享,给大家带来更多的流量吧,今天就给大家介绍一款这样的插件,而且效果特炫哦,我的文章后面就是用的这个插件,实际效果,大家在文章末尾就可以看到啦。 + +其实现的效果是: + +[][1] + +这个插件叫收藏分享插件(wp-share-list)是我们国人开发的,现在版本已经到1.5.2了。使用很方便,几乎是傻瓜式的操作,你可以对各类分享的图标进行排名,也可以选择你想要在页面显示哪些分享的图标。 + +操作很简单,就不多讲啦。 + +插件下载地址:点我进入 + +作者:[明河共影][2] + + [1]: /images/2010/11/11-12-2_conew1.jpg + [2]: http://www.36ria.com/ \ No newline at end of file diff --git a/source/_posts/2010-11-13-personal-web-template.md b/source/_posts/2010-11-13-personal-web-template.md new file mode 100644 index 0000000..72b0242 --- /dev/null +++ b/source/_posts/2010-11-13-personal-web-template.md @@ -0,0 +1,26 @@ +--- +title: 原创:个人博客网页模板分享下载 +author: wahyd4 +excerpt: > + 大概前面一周时间时间,因为某些原因我需要做这样一个个人主页形式的网页模板,我自己就摸索着做了,其实老实讲我的艺术细胞很匮乏,有时候连给网页配个颜色我都会纠结很久。 +layout: post +permalink: /2010/11/personal-web-template/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 免费 + - 模板 + - 网页 +--- +大概前面一周时间时间,因为某些原因我需要做这样一个个人主页形式的网页模板,我自己就摸索着做了,其实老实讲我的艺术细胞很匮乏,有时候连给网页配个颜色我都会纠结很久。 +但是还好,这个网页总算还是成功做出来了。但是确实这个质量肯定在技术大牛们的眼里就很一般了,但是我觉得我第一次做完整的网页能做出这个样子还是不错了。 +现在就把网页放出来,有童鞋想要的话,就尽管拿去吧。我不介意,哈哈。还是希望在页面地步保留那些版权信息哦。 +这个模板由五个页面构成。首页 +日志+相册+关于我+留言 模板以蓝色为主基调。力求达到的是间接清爽的效果。一个很有意思的效果就是,当你的鼠标点到菜单时,会有很漂亮的白云出现哦,是用CSS实现的。 +下面贴出两张界面的图片吧,喜欢的朋友就下载吧。 +[][1] + +[][2]下载网页源代码:点我 + + [1]: /images/2010/11/11-13-1_conew1.jpg + [2]: /images/2010/11/11-13-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-13-sort-node.md b/source/_posts/2010-11-13-sort-node.md new file mode 100644 index 0000000..4f6e34c --- /dev/null +++ b/source/_posts/2010-11-13-sort-node.md @@ -0,0 +1,114 @@ +--- +title: 数据结构作业:顺序表简单应用 +author: wahyd4 +excerpt: > + 今天算是比较用心的在电脑勉强做作业吧,但是毕竟不怎么喜欢写c/c++的代码,已经习惯用java了,觉得java写起来很舒服,所以做这个作业做了很久,至少3个小时吧。 +layout: post +permalink: /2010/11/sort-node/ +categories: + - 我说 +--- +今天算是比较用心的在电脑勉强做作业吧,但是毕竟不怎么喜欢写c/c++的代码,已经习惯用java了,觉得java写起来很舒服,所以做这个作业做了很久,至少3个小时吧。这学期现在还是第一次用心地做数据结构作业,代码经过调试可以完美运行,可是没有考虑运行的效率,和时间复杂度等等,等我有空的时候再来调试吧。可能写的不太符合规范,我本来想分模块话写,可是怎么也实现不了想要的功能,于是我就全部写在main函数里面了,算是完全面向过程吧,技术大牛不要笑哦,想要借鉴的同学完全可以拿去,代码保证正确。 + +#include +using namespace std; + +struct list +{ +int tlist[50]; +int size; +}; +int main() +{ +int temp; +int innum,delnum; +int flag; + +void printList(list l); + +list t; +cout< <”请输入你想要的链表长度:”< cin>>t.size; + +cout< <”请输入链表”< for(int i=0;i cin>>t.tlist[i]; +} + +for(int j=0;j< (t.size-1);j++){ +for(int k=j+1;k if(t.tlist[j]>t.tlist[k]){ +temp=t.tlist[j]; +t.tlist[j]=t.tlist[k]; +t.tlist[k]=temp; +} +} +} +cout< <”排序后的链表为”< printList(t); + +cout<<”情输入你想插入的数:”< cin>>innum; + +if(innum>t.tlist[t.size-1]){ +//要插入的数最大 +t.tlist[t.size]=innum; +}else{ +//要插入的数最小 +if(innum flag=-1; +}else{ +//要插入的数在中间 +for( int m=0;m if(innum>t.tlist[m]&&innum flag=m;//取得要插入数所在位置,flag为比插入数的前一个位置 +break; +} +} +} +for(int k=t.size-1;k>flag;k–){ +t.tlist[k+1]=t.tlist[k]; + +} +t.tlist[flag+1]=innum; +} + +t.size=t.size+1;//将顺序链表长度加1 +printList(t); + +cout< <”请输入你想删除的数”< cin>>delnum; +for(int a=0;a if(delnum==t.tlist[a]){ +cout<<”发现你想要删除的数,正在删除…”< if(delnum==t.tlist[t.size]){ +t.size=t.size-1; +}else { + +for(int b=a;b t.tlist[a]=t.tlist[a+1]; +} +t.size=t.size-1;//删除成功长度减一 +} +} +} +printList(t);//输出最终数据; +system(“pause”); +return 0; + +} + +

    + void printList(list l) +
    + +
    + { +
    + +
    + cout<<”顺序链表为”< + +
    + for(int j=0;j + +
    + cout< + +
    + } +
    + +
    + } +
    \ No newline at end of file diff --git a/source/_posts/2010-11-14-html5-show-movie.md b/source/_posts/2010-11-14-html5-show-movie.md new file mode 100644 index 0000000..ac896b9 --- /dev/null +++ b/source/_posts/2010-11-14-html5-show-movie.md @@ -0,0 +1,40 @@ +--- +title: 用HTML5演绎你自己的电影 +author: wahyd4 +excerpt: > + 你是否曾经是否设想过,自己只要点点鼠标,就可以拍一部自己的电影。也许这个想法在当时不太可能,可是现在在google、html + 5、chrom等的强力支持下,这个愿望就可以实现啦, +layout: post +permalink: /2010/11/html5-show-movie/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - google + - html 5 +--- +你是否曾经是否设想过,自己只要点点鼠标,就可以拍一部自己的电影。也许这个想法在当时不太可能,可是现在在google、html 5、chrom等的强力支持下,这个愿望就可以实现啦,但是我们需要找一个有google实时街景的地方来作为我们股市的发生地点,因此我们这个地方时不能选择我们自己的家乡(如果你只爱中国内地的话,如果你所在的地方有骨骼街景,那么你就可以选择你所在的地方作为故事的发生地点。) + +整个电影由HTML 5技术完成,采用了多个窗口在不同的时间段交错放映或者同时放映,甚至你还可以对电影本身进行暂停哦,是不是很神奇呢?接下来就让我们开始奇妙的旅程吧 + +首先打卡这个网站:点我 + +接下来,在输入框里面,按照我们上面说的填入一个地方,最好填有google 街景的地方为好。 + +[][1]接下来,这个电影就开始在“生成”啦,就让我们耐心等一下吧。 + +这就是电影刚开始的画面 + +[][2]接下来显示联系你选择的城市发生故事了。里面的图片当然是来自google 街景 + +[][3]接下来的电影,我就不再一一细说啦,大家快自己去试试吧。 + +在电影的末尾你还可以利用HTML 5技术画一幅很漂亮的话哦。。哈哈 + +是不是很心动呢,快去试试吧 + +地址: + + [1]: /images/2010/11/11-14-4_conew1.jpg + [2]: /images/2010/11/11-14-5_conew1.jpg + [3]: /images/2010/11/11-14-6_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-14-m9-10-11-14.md b/source/_posts/2010-11-14-m9-10-11-14.md new file mode 100644 index 0000000..b53720d --- /dev/null +++ b/source/_posts/2010-11-14-m9-10-11-14.md @@ -0,0 +1,27 @@ +--- +title: 魅族M9的最新消息10-11-14 +author: wahyd4 +excerpt: > + 由于笔者也是一位魅族M9的fans,因此随时都会上网关注M9的最新消息,根据最新消息,M9如果不出意外应该在12月中旬拿到入网证书,然后不出意外在12月月底可以上市。 +layout: post +permalink: /2010/11/m9-10-11-14/ +categories: + - 我说 +tags: + - M9 +--- +由于笔者也是一位魅族M9的fans,因此随时都会上网关注M9的最新消息,根据最新消息,M9如果不出意外应该在12月中旬拿到入网证书,然后不出意外在12月月底可以上市。但是这只是不出意外。如果出了意外就很难说了。 + +下面是Jwong 自己放出的一些消息。 + +从图片中得出的信息,M9的浏览器性能是特别强悍的。M9支持无限热点,也就说你你可以分享你手机的网络,或者说让你的笔记本用手机的网络上网。 + +我真希望M9可以早点出来啊,这么强的性能,我已经迫不及待想用了。哈哈,2500啊。 + +[][1] + +[][2][][3] + + [1]: /images/2010/11/11-14-1_conew11.jpg + [2]: /images/2010/11/11-14-2_conew1.jpg + [3]: /images/2010/11/11-14-3_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-15-computer-operation-system.md b/source/_posts/2010-11-15-computer-operation-system.md new file mode 100644 index 0000000..954fac3 --- /dev/null +++ b/source/_posts/2010-11-15-computer-operation-system.md @@ -0,0 +1,40 @@ +--- +title: 计算机操作系统教程(第三版)附下载 +author: wahyd4 +excerpt: > + 计算机操作系统教程应该算是计算机专业学生的专业基础课吧,但是这门课程由于自身的特点,老实说的确很枯燥,一般大学安排在大二的时候学习这个课程,恰好笔者现在也正在学习。 +layout: post +permalink: /2010/11/computer-operation-system/ +categories: + - IT书籍 +tags: + - 下载 + - 免费 + - 电子书 +--- +计算机操作系统教程应该算是计算机专业学生的专业基础课吧,但是这门课程由于自身的特点,老实说的确很枯燥,一般大学安排在大二的时候学习这个课程,恰好笔者现在也正在学习。 +平时老师说操作系统这门课多么重要,总是不以为然,但是最近因为自己又在重新学习java的缘故,在多线程又发现了操作系统的相关知识的应该。比如多线程里面就是有线程的几种状态,和线程的同步等等,相关知识。这些在操作系统里面都是很重要的。正如老师所说,当你把操作系统学好了,你才编程的时候就会更加明白程序的运行机制和原理。此外数据结构在编程里面也是用得很多。 +今天给大家推荐的资源是:计算机操作系统教程(第三版) 作者是:张尧学 史美林 清华大学出版社出版。 + +[][1] + +下面附上一些目录: +第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电子书下载点我下载(记得多支持我们的原创作品哦) + + [1]: /images/2010/11/11-15-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-15-display-readers.md b/source/_posts/2010-11-15-display-readers.md new file mode 100644 index 0000000..dca8c2c --- /dev/null +++ b/source/_posts/2010-11-15-display-readers.md @@ -0,0 +1,24 @@ +--- +title: 动态展示网站读者信息 +author: wahyd4 +excerpt: > + 今天给大家介绍一个很不错,很炫的小东西。这个小东西很适合站长用,它是用flash的方式动态展示你网站的访问者的来源。动画做得很炫哦。 +layout: post +permalink: /2010/11/display-readers/ +categories: + - 我们爱分享 +tags: + - 代码 + - 免费 +--- +今天给大家介绍一个很不错,很炫的小东西。这个小东西很适合站长用,它是用flash的方式动态展示你网站的访问者的来源。动画做得很炫哦。它分为几种不同的方式,可以试3D的地球展示,也可以用普通的2D地图展示。当然也有最简单的按钮的形。(我个人不推荐按钮的形式,虽然很简单,可是他不会在按钮上显示你的访问者的来源信息。) + +下面这个是提供小插件网站的现实效果,如果你网站读者很多的话,这个效果很不错哦。算是一种炫耀的东西吧。 + +[][1]所有的网站或者博客所有者们,快去制作一个自己的吧,只要将将html 代码嵌入到网页里面就可以啦,所有的大小都可以根据你自己的需要进行个性化设置哦。 + +具体的实力效果就在我们网站的右边边栏,漂不漂亮自己看吧! + +获得漂亮的访问者信息:点我吧 + + [1]: /images/2010/11/11-15-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-16-shift-14.md b/source/_posts/2010-11-16-shift-14.md new file mode 100644 index 0000000..5b8a8c3 --- /dev/null +++ b/source/_posts/2010-11-16-shift-14.md @@ -0,0 +1,65 @@ +--- +title: '《极品飞车14:热力追踪》[繁中/英文]下载' +author: wahyd4 +excerpt: > + 最近这段时间,很多大游戏都争相上市。给我们的玩家们带来了不少福利啊。笔者最近除了关注《使命召唤7》以外,就是关注这个游戏了。但是在笔者飞进千辛万苦下载完之后, +layout: post +permalink: /2010/11/shift-14/ +categories: + - 头条推荐 + - 游戏下载 +tags: + - 下载 + - 免费 + - 极品飞车 + - 游戏 +--- +注:以下资源部分内容来自3DMgame 游戏论坛。 + +最近这段时间,很多大游戏都争相上市。给我们的玩家们带来了不少福利啊。笔者最近除了关注《使命召唤7》以外,就是关注这个游戏了。但是在笔者飞进千辛万苦下载完之后,使命召唤7却不能我我的小Y上运行,对我带来不小的悲剧气愤。但是我的电脑运行极品飞车14,还是没有问题的。 + +今天这款游戏刚刚上市,我们就为大家带来资源啦。今天这款游戏回归到警匪追缉模式,你可以扮演警察或者坏蛋驾车。今年的游戏撞车时对车的损坏效果更加逼真了。画面更加漂亮,当然这需要你的显卡更加更加给力啊。 + +下面不多说了,上内容吧: + +[][1]**游戏名称:**Need for Speed 14 +**中文名称:**极品飞车14:热力追踪 +**游戏发行:**EA Sports +**游戏制作:**Criterion Games (EA Sports) +**游戏语种:**英文 +**游戏类型:**体育 +**发行日期:**2010年11月16日 + +**游戏介绍** +《极品飞车》系列新作《极品飞车14:热力追踪3》(Need for Speed:Hot PursuitIII),也是新一代的热力追踪系列作品的正式确认,由Criterion Games工作室负责开发。本作将回归到警察通缉模式,允许玩家进行网络对战将再次回归名贵跑车。 +《极品飞车14:热力追踪》的多人模式中允许玩家扮演车手或警察,而且车手和警察都会分别有各自的生涯模式。游戏还会有一个叫作“极品飞车自动日志”的新功能,可以让玩家可以与好友在大量不同的记录方面进行各种比较。 +游戏会扫描你的好友名单,分析有多少人玩过游戏、他们擅长哪些模式、使用何种模式击败过你。这些信息会持续不断地反馈给你,一旦你看见击败过你的人出现了,就可以直接发起挑战而无需任何设定。好友名单信息都是实时更新的,看起来更像是一个社交网络。大家也可以在游戏内外上传自己的照片作为头像,或者发布短消息给其他人看极飞迷们历来不仅喜欢飚车搞破坏,也喜欢代表正义去抓捕飞车党,这一次愿望得到了满足。警察不但和赛车手一样拥有“牛车”,还有自己独特的喷漆。不同的赛车组合会带来不同的挑战,而一队人马很难单单通过赛车的不同而取得优势。 + +**配置要求** +基本配置 +CPU:Intel Core 2 Duo 3.0 GHz 或者 AMD64 X2 2.5 GHz +内存:1.5GB(XP)2GB(Vista) +显卡:512MB 显存的显卡,支持 Pixel Shader 3 (PCI-Ex) +操作系统:Windows XP SP3 或者 Vista SP1 +硬盘:15GB 剩余空间 +光驱:8x DVD 光驱 + +推荐配置 +CPU:Intel i5 2.5GHz或者AMD X4 2.5GHz +内存:2.5GB(XP)4GB(Vista) +显卡:1GB显存的显卡,支持 Pixel Shader 3 (PCI-Ex) +操作系统:Windows XP SP3 或者 Vista SP1 +硬盘:15GB 剩余空间 +光驱:8x DVD 光驱 + +**安装说明:** +1、解压缩 +2、载入镜像 +3、安装游戏 +4、等待破解补丁 +5、运行游戏 + +[][2]下载BT资源种子点我下载 + + [1]: /images/2010/11/11-16-1_conew1.jpg + [2]: /images/2010/11/11-16-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-17-computer-preformance.md b/source/_posts/2010-11-17-computer-preformance.md new file mode 100644 index 0000000..97ac773 --- /dev/null +++ b/source/_posts/2010-11-17-computer-preformance.md @@ -0,0 +1,36 @@ +--- +title: 在线测试电脑的游戏性能 +author: wahyd4 +excerpt: > + 今天说的这个网站就是专门防止这样的情况发生的,它可以在线检测你的电脑对于某一款游戏的性能,简单说就是检测你的电脑是否符合游戏的最低要求(Minimum + requirements)和标准要求(Recommended requirements)。 +layout: post +permalink: /2010/11/computer-preformance/ +categories: + - 游戏下载 +tags: + - 性能 + - 测试 + - 游戏 +--- +亲爱的童鞋们,不知道你们有否有这样的经历,当你满怀欣喜地下载一款酷炫的大型单机游戏,在你费了很久很久的时间通过你那龟速般的网速下载好之后,却发现这个游戏在你电脑上根本不能运行,简直卡的要死。那个时候我想你心中也会有很多的郁闷和悲哀吧。 + +很不幸,这样的事前几天就发生在我身上。当时我下使命召唤7。今天说的这个网站Can you run it就是专门防止这样的情况发生的,它可以在线检测你的电脑对于某一款游戏的性能,简单说就是检测你的电脑是否符合游戏的最低要求(Minimum requirements)和标准要求(Recommended requirements)。 + +这个网站通过在你的电脑上下载java 或者 active 插件来获取你的电脑信息,然后通过将你电脑的信息和游戏所需要的信息进行对比,最后得出结果。 + +需要注意的是:你需要用IE内核的浏览器(360,遨游,世界之窗之类的浏览器都是)或者firefox 即火狐浏览器访问该网站。而google chrome 浏览器 和Opera 浏览器等是不被支持的。 + +下面我将我的个人的电脑作为示范,演示游戏对实况足球2011(PES 2011)的情况: + +[][1][][2]可以看到我的电脑可以完美运行实况足球2011。 + +但是对于使命召唤7就不一样了。下面是测试结果: + +[][3]可以看出我的电脑的CPU还不够强大啊。。。所以只好悲剧了。 + +测试网站:点我进入 + + [1]: /images/2010/11/11-17-1_conew1.jpg + [2]: /images/2010/11/11-17-2_conew1.jpg + [3]: /images/2010/11/11-17-3_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-17-its-long-way-to-go.md b/source/_posts/2010-11-17-its-long-way-to-go.md new file mode 100644 index 0000000..54f4b8f --- /dev/null +++ b/source/_posts/2010-11-17-its-long-way-to-go.md @@ -0,0 +1,19 @@ +--- +title: 路还很长啊 +author: wahyd4 +excerpt: > + 这个网站,也算是博客吧,改版后已经正式运行两个月了。这两个月不可否认进步还是不小,经过我还有前面一段时间同学的努力,这个博客的排名现在已经升到110万左右了, +layout: post +permalink: /2010/11/its-long-way-to-go/ +categories: + - 我说 +--- +这个网站,也算是博客吧,改版后已经正式运行两个月了。这两个月不可否认进步还是不小,经过我还有前面一段时间同学的努力,这个博客的排名现在已经升到110万左右了,现在每天有30多个IP,每个IP平均浏览页面就2个左右。 + +但是其实我对这个成果并不是很满意,网站没有太多的留言,而且只有当我去论坛推荐我的博客的时候,网站的人气才会很大程度的上升,但是一般两天之后又恢复原来的水平了。而且我感觉网站读者的访问深度也不是很够,浏览的PV也不多,而且我发现一个问题,那就是通过搜索引擎来到网站的大概占30%~40%,然而在这其中几乎全部都是来自google 但是我的网站在百度的收录情况也不错啊,现在也有100多个页面了。几乎和google没什么差别。所以我就很犯迷糊啊。 + +看了一些推广博客的文章,但是我觉得最核心的还是坚持原创的有吸引力的内容吧,不然的话即使你从其他地方找来了读者,可是网站没有好的内容,大家一样不会喜欢的。 + +而且也有人说我的博客访问速度有点慢,我不知道访问人数是否和这个也有一些影响。但是在这里还是要特别特别感谢 http://xpn.im 给我提供的一年的免费的主机。 + +最后还是坚持每天更新文章。喜欢会有好结果吧。我还有另外一个网站现在没有用,放在那里都快发霉啦。 http://junv.org \ No newline at end of file diff --git a/source/_posts/2010-11-17-time-back-20-years.md b/source/_posts/2010-11-17-time-back-20-years.md new file mode 100644 index 0000000..e8947fd --- /dev/null +++ b/source/_posts/2010-11-17-time-back-20-years.md @@ -0,0 +1,60 @@ +--- +title: 时光倒流二十年 +author: wahyd4 +excerpt: > + 十二年前,一个冰冷的冬夜,我爸开着一辆面包车带着我,我妈,我二姨在前往某地的路上发生车祸。坐在副驾驶位置的我右脸紧紧地擦着翻车后被打碎的玻璃车窗碎片和冰冷又肮脏的马路以六十码左右的速度足足滑行了不知道多少米, +layout: post +permalink: /2010/11/time-back-20-years/ +categories: + - 《 theLun》 + - 头条推荐 +--- +[][1][][2] + +[][3]                 + +        二十年前,我刚从我妈肚子里蹦出来脖子上就做了个不大不小的手术。  + +        十二年前,一个冰冷的冬夜,我爸开着一辆面包车带着我,我妈,我二姨在前往某地的路上发生车祸。坐在副驾驶位置的我右脸紧紧地擦着翻车后被打碎的玻璃车窗碎片和冰冷又肮脏的马路以六十码左右的速度足足滑行了不知道多少米,并且毫无悬念的被遭遇锁骨骨折。那年我还在念小学低年级,最后一个从车里被拖出来。听见前方的另一起车祸中,一男子大叫“救救我老婆”。后来进了医院,我有了意识才知道,当时因为避让前方的一起车祸不及,由于惯性,车翻了。而前面那起车祸中一名十八岁的女孩儿,膝盖以下部位的肉在车祸中全被“挖”没了。更感戏剧化却又值得庆幸的是,我们刚从侧翻了的车里爬出来,就连着出现三辆二姨朋友的车从旁边开过,唯一没受伤的二姨赶紧把车拦下,我连坐救护车的机会都没有就被火速送进医院。以本人现在伪新闻从业者的眼光来看,当年的这起车祸放今天,估计又是上商报又是上新闻现场的。当然,那年我实在是太小了,至于前面那起车祸中究竟发生了什么其实我了解甚少,唯一深刻而真实的记忆就是我的右脸紧紧擦着马路和车窗玻璃碎片一路滑行的滋味。冰冷。   + +        八年前,非典正横行的那年夏天,我随父母去了广州,去时坐火车走到某一站,上来了一对不知道是情侣还是夫妻的年轻人,睡我下铺,男的留着中长的头发,比较邋遢,一看就有流浪艺术家的范儿,女的挺着个大肚子,看那肚子圆滚滚的程度似乎就快生了。当时我就想,姐姐跟着他不辛苦吗?可能他们是真心相爱吧,就算这样奔波他们也觉得是幸福的。可我当时没想自己过了这么多年还记得这两个人。之后又从广州去了深圳,我拿着傻瓜相机照了很多照片,结果全被曝光了。最后什么也没洗出来。那年我第一次看见了海。妈妈指着海的另一边告诉我那儿就是香港,妈妈还说,明天我们就去香港。可我离开成都很久了,我想吃火锅了,于是我死缠烂打父母终于订了回成都的机票。现在想来,是不是挺傻啊。   + +        六年前,我傻不啦叽地跟至今为止最爱的一个人说再见了。后来我们真的再见了。不过从那以后就再也没见了。那时候他带着语文还能考全年级第一的我逃课,甚至离家,没有出走,一走好几天。到处玩儿。花掉几千块钱然后回来,妈妈亲自把我送到教室门口,看着我走进教室,然后才离开。我走到座位拿了两本书准备离开。同桌那个成绩特别好的女生呆滞又茫然地看着我利索的动作对我说,周末要补课。我应了一声,然后飞速地趁还没打铃跑出校门。最后终于回来上课,班主任问上次没交作业的站起来,我站起来了,她环视其余的同学然后看了我一眼,说,你生病了,没交作业可以原谅,坐下。   + +        之后我开始写博客,那个博客写了三年,最后还是抵不住时间的洪流,很久没有登录,可能已经被注销了吧。我又建了一个以他名字命名的贴吧,在里面留了三年的言,今年终于彻底离开了。去年的这个时候我在一个满是川F的城市的麦当劳里想念在川A的他,EX就坐在我旁边,可他根本不知道我在想什么。我不知道那些留在贴吧里的话他有没有看见。或许根本就不可能被他发现。可是我做过了。我真的,爱,他。这第一次的恋爱,是我目前走过的人生中唯一一次的爱。从十四岁到二十岁。从一个孩子到尚不成熟的成年人。我在他曾经对我的好和之后彻底的决绝中学会了爱。渴望像他一样敢于承受和保护。那时我们荒唐地做过的事,也许有的人这辈子都不可能去做。直到现在,看见那么些二十多岁的男生,我始终认为如今他们都不及当年那个十四岁的他成熟。   + +        过于笃定也许并不是好事,又或许再过六年,我就彻底忘记了自己曾认识他这么一个人。一夜长大。一段深刻的感情总会教给一个人很多很多很多。   + +        我应该算是一个早熟的孩子。初中那三年,结识了最要好的朋友,她那么优秀,优秀得让我觉得我们怎么会是一个世界里的人?可是她就是那个愿意每晚跟我道一声晚安的人。愿意帮我承受更多,同时也让我每一次跟她聊过之后都会反省现在的自己的生活的人。   + +        更早之前,深深影响过我的还有我的爷爷。爷爷是位德高望重的高中数学教师,说来实在不好意思,鄙人高考数学34分。着实很惭愧。自小被爷爷带大,几岁时他老人家便教我做数学题,教我下五子棋,下象棋,教我练毛笔字,教会我很多很多的成语……遇到一些不认识的字,爷爷就带我去找院子里的语文老教师,翻他家的辞海……以至于我念中学的那所学校进校时需要做各种测验,当时一位主任拿着我的智商和心理测验结果,对我爸说,这孩子元认知意识非常好。爷爷直到现在,身为一名数学老师的他,还在每天坚持看各种门类的书,练毛笔字。他老人家八十岁那年,买了台电脑,开始学上网。遇到不懂的问题,我让他打电话给修电脑的,别人自然会上门来帮他处理,可他就是不愿意,他说,自己请教问题,就是学生,别人是老师,学生当然得上门请教老师,哪有老师上学生这来解决问题的。刚开始接触电脑的时候,他报了个培训班,学打字,还有一些基础的知识,培训班里的年轻人都很喜欢他,而爷爷偏偏又喜问问题,那里的年轻人便很乐于帮助他。   + +        小时候,我每天都生活在爷爷奶奶家,奶奶是高中生物教师,话说我真的很惭愧呀,长辈们的良好基因不知道遗传到谁身上去了,我怎么就不是个读书的料呢。爷爷每天早上骑着自行车把我从家里接到他家,然后我就开始做作业,下午练会儿毛笔字,或者跟爷爷下棋,或者跟着爷爷到那时还没有开发出来的河边走走。那会儿河边还正在修建,爷爷推着自行车,跟建筑工人聊,我就站旁边东瞧瞧西瞅瞅,天气很好,有风,我喜欢捡脚下的石头,各种各样的。一边玩儿石头,爷爷就跟我讲将来这里会是什么样子,那时我哪听得懂啊,只是现在想来,那样美好的时光真的再也找不回了。没有烦恼,每天都有爷爷帮我安排好的作息时间,吃奶奶做的饭菜,日子美好得只能用“美好”这个词来形容。可谁曾想到当时那个天真无邪的孩子后来变得那么叛逆。   + +        我还记得,若是遇见早上下雨,爷爷就穿上他那件绿色的雨衣,我坐在后面,躲在雨衣里,偶尔把雨衣掀开,探出头想看看走到哪里了,落下来的雨水打在身上,我又叫着赶紧钻进雨衣里。晚上吃过晚饭,爷爷再骑着自行车把我送回家。我坐在自行车的后座,好奇地打量着这个世界。   + +        后来越长大我的成绩就越差。可爷爷从来不对我灰心。每次见到我,总是鼓励我好好学习。但他也从不说“好好学习”这四个字,他只是对我讲长篇长篇的大道理,上高中那会儿我最害怕听爷爷讲大道理,讲得我都插不上嘴。可现在我发觉爷爷讲得每句话都有理,无论他说什么,我都愿意照着他说的去做。他是我这辈子最最敬佩的人。   + +        一年前的夏天我加入了浩浩荡荡的高考大军,可是根本无心备战。有一段时间,天气还比较冷。我常常一个人一大早起床坐车到世纪城然后再坐115路去成都图书馆。玩儿。在115路上带着耳机单曲循环谢安琪的《十字架》。这首歌现在还保存在我的播放器里。高三刚开始的时候,我就意识到自己应该为这一年找一个声音陪伴。当谢安琪在115路上“唱”到某一句的时候,我就下车,然后走进成图,找一个固定的位置也许看辅导书,也许看杂志,也许看小说,也许就只是睡觉。大部分的时间我用来睡觉或者观察周围的人。因为里面有暖气,很温暖,所以也很适合睡觉。不过在那儿看书的人大多都是来认真学习的,不睡觉的大多数时候我就观察他们。有很多人是来学英语的,带着电子词典,看很久很久的书,做题。有大学生,也有差不多退休了的中老年人。当时看面熟了的有一男一女,他们好像是数学系考研的?整天都在做题,还低声讨论。还有一个男人,看样子是自学英语的?我都不确定。一年多没见了。可这三个陌生人的样子我一直都记得,很清晰地记得。现在若是在大街上遇见他们我一定还能认出来。不过打高考过后,我就再也没去过成图了。也不知道那一男一女考研成功了么?那个自学英语的男人学的如何了?我都无从知晓了。   + +        中午到点吃饭了。我就走很远的路去找馆子吃饭。一个人。尽量避开吃饭高峰期。其实并不饿,就是想走走。完了再一个人慢慢走回成图。下午差不多四点左右就打道回府。成图里总是有四中的学生中午进来做作业。当时我想,这就是四中的学生,别人中午都赶着做作业,我一快高考的人了,还坐这儿蹉跎呢。该我来念这个三流大学。   + +        回程的公交车上会看见很多很多刚放学的小学生。那个时候我就很羡慕他们了。我知道自己还得高考呢。每次走到那个十字路口,看着来来往往的车辆和行人,或许是高三那个特殊时期的情绪作祟,让我开始想一些过去不会想的问题。一想,就想到了现在。   + +        生命之于你我来讲,究竟意义何在呢?十一月,这个充斥了无数个好友生日(包括我自己)以及从一号到今天为止见证了四五条生命的逝去的十一月,让我顿时又感慨了许多。   + +        过去总是认为自己拥有的都是理所应当的,可一次又一次的失去渐渐让我明白了珍惜这个词的分量。虽然还不敢毫不心虚地保证自己珍惜了每一次,每一天,每一个人,可真的很想握紧不松手。   + +        这个夏天最热的时候我在上海肉搏,在苏州逛一个又一个一模一样的园林,在杭州“被参与”泼水节。然后回到成都跟唐包子这一天那一天地拍片儿,在外婆家跟哥哥吃好的玩儿好的。然后就开学了。大二了。我大了,也二了。   + +        夏天太热。热得把小杨送回了北京,把唐叔叔送到了济南,把谁谁谁送到了哪里哪里。也没有把你送回我的身边。冬天来了,临近春节,离开的人该回来了,而有的人却不会回来。可能他又在地球的另一头听着《寂寞的季节》独自在只有他一个人的大街上踩着厚厚的积雪一步一个脚印的去快餐店吃不好吃的快餐,然后又一步一步踩着自己去时留下的脚印走回去。这个寂寞的季节。   + +        我不羡慕那些在学校里恋爱的男男女女,他们在几乎没有灯光的夜幕中搂搂抱抱的身影让我感到匪夷所思。我想青春不应该是这样被浪费掉的。难道他们都没有考虑过二十年后自己回首当初的那些举动会觉得有多傻么?傻的不是他们在大学谈恋爱,而是他们眼前选择的这个男女朋友对自己的影响,或许你会说,能有什么影响,如果真是这样不更加可悲么,投入了那么多时间,最后什么也没留下。只是,有些话我不愿意对父母讲,也不方便对朋友说,虽然希望有一个人能帮帮自己,但内心又更加希望能以自己的能力来解决并因此更加成熟。   + +        前段时间看完了余华的《活着》,这本书深深影响了我。什么是活着?当我们所拥有的一切都已经死亡,而我们还活着,这就是活着。   + +人一定要在年轻的时候经历一些挫折,才会获得巨大的成长。每一次亲身经历都是一次学习的过程,很多事只有自己亲历了才会深刻了解其中的种种。我们不能从长辈们的言传中体会到当初他们的感受。我见过的,体会过的还太少,只是随着年岁一步一步走自己的人生轨迹。不晓得什么时候会遇见那个所谓的转折点,我期待着。 + + [1]: /images/2010/11/dont_let_me_go_tonight_by_multicurious-d2yuyrt2.jpg + [2]: /images/2010/11/MichaelCreagh_KissingCouples.jpg + [3]: /images/2010/11/MichaelCreagh_KissingCouples1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-18-cet-6.md b/source/_posts/2010-11-18-cet-6.md new file mode 100644 index 0000000..af637c3 --- /dev/null +++ b/source/_posts/2010-11-18-cet-6.md @@ -0,0 +1,23 @@ +--- +title: 2010年6月英语六级考试原题下载 +author: wahyd4 +excerpt: > + 话不多说,分享只为需要的同学们准备。希望大家努力备考,考过六级。 +layout: post +permalink: /2010/11/cet-6/ +categories: + - 我们爱分享 +tags: + - CET6 + - 下载 + - 免费 +--- +话不多说,分享只为需要的同学们准备。希望大家努力备考,考过六级。 + +需要的同学就下载吧,保证是原题,附带听力原文供下载。都在压缩包里面。 + +[][1] + +2010/6 CET6英语真题:点我下载 + + [1]: /images/2010/11/bag_13.png \ No newline at end of file diff --git a/source/_posts/2010-11-18-pictomio.md b/source/_posts/2010-11-18-pictomio.md new file mode 100644 index 0000000..76724b2 --- /dev/null +++ b/source/_posts/2010-11-18-pictomio.md @@ -0,0 +1,38 @@ +--- +title: pictomio免费管理图片的好帮手 +author: wahyd4 +excerpt: ' 首先需要说一下的就是这个软件是完全免费的。这个软件也是国外的老兄写的,但是很高兴的是这个软件有中文的版本。在你安装的时候,如果你的电脑用的是中文的windows 是会自动识别的。' +layout: post +permalink: /2010/11/pictomio/ +categories: + - 酷玩软件 +tags: + - 下载 + - 免费 + - 软件 +--- +首先需要说一下的就是这个软件是完全免费的。这个软件也是国外的老兄写的,但是很高兴的是这个软件有中文的版本。在你安装的时候,如果你的电脑用的是中文的windows 是会自动识别的。这个软件叫pictomio. + +其实对于文章的这个标题,说他是一个管理图片吧好帮手,当然他的图片分类,显示,浏览,标记等等做得很不错以外,我比较看重的是这款软件在你浏览图片时有很好的特效可以供你选择,而且你还可以把照片做成很漂亮的幻灯片,同样也有很多很漂亮的效果哦。 + +下面我们就开始说说这款软件: + +[][1] + +左边是选择你想要打开图片的文件夹,正上方是选择你想要浏览图片的方式,右侧是根据你自己的需要对图片进行分类,你可以通过时间,图片颜色,图片大小,等等对图片进行分类,如图显示的是我根据时间对图片的分类。下方是一个颜色选择按钮,你可以选择你想要屏蔽掉的颜色,这样图片中就不会出现你已经屏蔽掉的颜色的图片。 + +我比较喜欢这个软件的幻灯片功能和转盘功能,这两个功能在你浏览图片的时候都可以实现很绚丽的特效,而且当你选择幻灯片的时候你可以在下方选择你想要切换图片时的效果,我推荐选择random效果这样你所有的特效都有啦。 + +[][2]当你选择转盘功能的时候,这时是手动浏览图片的效果,这些效果都很绚丽,还有类3D的效果,以及高斯曲线,列队等等效果,其中高斯曲线所实现的效果就像itunes里面所实现的效果一样很漂亮。 + +[][3]当然另外一个几个其他比较不错的功能,其中一个是你可以在google 或者 microsoft 的地图上标记你的图片所拍摄的地址信息。以前都只是在网上发现这个功能,现在这个功能都集成到本地软件啦。[][4]另外一个就是你可以在picasa 或者 flicrk 下载或者上传图片,都是通过这个软件,但是以flickr为例,你需要根据链接提示,授予软件足够的权限,这些都很简单,只需要你一点链接即可完成。具体操作就不在这里赘述了。 + +[][5]怎么样,这个软件不错吧,如果你也想试试的话,就快去下载吧。 + +官方下载地址:点我下载 + + [1]: /images/2010/11/11-18-1_conew1.jpg + [2]: /images/2010/11/11-18-2_conew1.jpg + [3]: /images/2010/11/11-18-3_conew1.jpg + [4]: /images/2010/11/11-18-4_conew1.jpg + [5]: /images/2010/11/11-18-5_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-18-sogou-theme.md b/source/_posts/2010-11-18-sogou-theme.md new file mode 100644 index 0000000..99e0c90 --- /dev/null +++ b/source/_posts/2010-11-18-sogou-theme.md @@ -0,0 +1,33 @@ +--- +title: 推荐两款搜狗输入法酷炫动画皮肤 +author: wahyd4 +excerpt: > + 不知道各位用搜狗输入法的童鞋们注意没有,自从搜狗输入法进入5. + 0 + 时代以后,连原来安分的搜狗皮肤也开始跳动起来了。开始支持酷炫的动画皮肤了。 +layout: post +permalink: /2010/11/sogou-theme/ +categories: + - 我们爱分享 +tags: + - 下载 + - 免费 + - 搜狗 + - 皮肤 +--- +不知道各位用搜狗输入法的童鞋们注意没有,自从搜狗输入法进入5. 0 时代以后,连原来安分的搜狗皮肤也开始跳动起来了。开始支持酷炫的动画皮肤了。笔者前几天刚刚接触到搜狗的这项新功能,这两个发现两款比较漂亮的皮肤,很安逸,很好耍的动画皮肤,在这里就推荐给大家。(所有权利归作者所有哦!嘿嘿) + +**面瘫的萝卜** + +当你安装皮肤之后,桌面会出现几个一直在摇摆的小娃娃,当你将鼠标放到他们头上时,他们就会举起一个锤子,当你鼠标再次划过时,它就用锤子砸自己的脑袋,然后出现一个+1的效果,而且每个娃娃被砸的表情都是不一样的哦。当你依次划过他们时就出现很漂亮的效果了。 + +**猫咪物语2** + +这个皮肤,当你安装的时候,桌面出现的几个盖上的垃圾桶,但是一样当你的鼠标划过他们时就会出现一个小猫咪露出头来将盖子向空中抛,然后落下。依次划过他们同样有很漂亮,可爱的效果。你不得不惊叹作者制作皮肤的能力好强大啊。 + +PS:当你无聊的时候,现在你又多了一个新的选择了。你可以玩玩你桌面很可爱的搜狗输入法皮肤了。。 + +两个皮肤打包下载:点我下载 + +** +** \ No newline at end of file diff --git a/source/_posts/2010-11-19-meizu-11-19.md b/source/_posts/2010-11-19-meizu-11-19.md new file mode 100644 index 0000000..e48e776 --- /dev/null +++ b/source/_posts/2010-11-19-meizu-11-19.md @@ -0,0 +1,20 @@ +--- +title: 魅族M9真机图片11-19 +author: wahyd4 +excerpt: > + 话说今天魅族 M9今天又露新图了。不过这次露图的不再是Jwong + ,而是另外一名匿名人士。不过从机身来看,这个应该最接近发布的机子了。 +layout: post +permalink: /2010/11/meizu-11-19/ +categories: + - 我说 +tags: + - M9 +--- +话说今天魅族 M9今天又露新图了。不过这次露图的不再是Jwong ,而是另外一名匿名人士。不过从机身来看,这个应该最接近发布的机子了。可是唯独有一点就是那个M9 标志按照Jwong 说的英国换成魅族 logo 才对。这两天网上很多人说魅族M9会在12月25日上市。真的很期待啊。好了话不多说了。直接给大家伙上图吧。 + +[][1] + +可以看出M9的外观还是很华丽的。。值得大家期待哦。。 + + [1]: /images/2010/11/ceJnKbnU8GiY.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-20-free-css-template.md b/source/_posts/2010-11-20-free-css-template.md new file mode 100644 index 0000000..324bfcb --- /dev/null +++ b/source/_posts/2010-11-20-free-css-template.md @@ -0,0 +1,36 @@ +--- +title: 免费的css网页模板下载 +author: wahyd4 +excerpt: > + 今天给大家介绍一个很好的国外网站,这个网站叫http://www.freecsstemplates.org/,它提供很多免费的CSS模板供大家免费下载,到今天为止这个网站已经收录了504个免费的css + 模板, +layout: post +permalink: /2010/11/free-css-template/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - css + - 下载 + - 免费 + - 模板 +--- +今天给大家介绍一个很好的国外网站,这个网站叫,它提供很多免费的CSS模板供大家免费下载,到今天为止这个网站已经收录了504个免费的css 模板,都是这个网站自己原创的模板。你只需要在你使用的时候,在页面地步保留他们的版权信息就可以了,作为对他们的尊重吧。其他什么要求也没有。 + +下面是这个网站的截图: + +[][1] + +希望大家在下载的时候,还是可以帮助他们,可以做的就是可以点一次他们的广告,作为对他们的好东西的回报吧,我们还是要学会感恩。 + +下面贴个模板的图片图片出来: + +[][2][][3][][4][][5]如果你喜欢上面这些模板,就点我下载吧:点我下载 + +进入网站浏览更多模板:点我 + + [1]: /images/2010/11/11-20-1_conew1.jpg + [2]: /images/2010/11/11-20-3.gif + [3]: /images/2010/11/11-20-4.gif + [4]: /images/2010/11/11-20-5.gif + [5]: /images/2010/11/11-20-6.gif \ No newline at end of file diff --git a/source/_posts/2010-11-20-java-jdbc.md b/source/_posts/2010-11-20-java-jdbc.md new file mode 100644 index 0000000..7d742b5 --- /dev/null +++ b/source/_posts/2010-11-20-java-jdbc.md @@ -0,0 +1,63 @@ +--- +title: 一个Java JDBC连接简单实例 +author: wahyd4 +excerpt: > + 今天在学习java JDBC,这里写了一个简单的java 连接Mysql + 数据库的实例供大家参考。此代码代码可以运行。 +layout: post +permalink: /2010/11/java-jdbc/ +categories: + - 我说 +tags: + - java + - JDBC +--- +
    + 今天在学习java JDBC,这里写了一个简单的java 连接Mysql 数据库的实例供大家参考。此代码代码可以运行。 +
    + +
    + 需要注意的是如果你在Eclipse 或者 My Eclipse 里面运行这个代码,你需要下载mysql 数据库的JDBC驱动程序,下载在mysql 官方网站下载即可。并将包里面的mysql-connector-java-5.1.1-bin.jar加入到build path 里面即可(注:这个5.1.1是我下载的connector 版本号,你们的可能不一样。) +
    + +
    + 下面就是代码 +
    + +
    + Java语言: +
    + +
    +

    + import java.sql.*; +

    + +

    + public class TestJDBC {
    public static void main(String[] args) throws Exception {
    String user = “root”;
    String pwd = “root”;
    String conJDBC = “jdbc:mysql://localhost:3306/jdbc”;// 设置连接JDBC地址
    Class.forName(“com.mysql.jdbc.Driver”); // 加载驱动 +

    + +

    + Connection conn = DriverManager.getConnection(conJDBC, user, pwd);// 创建连接 +

    + +

    + Statement stmt = conn.createStatement();// 创建执行语句对象
    ResultSet res = stmt.executeQuery(“SELECT *FROM stdinfo”);// 执行语句,获取结果 +

    + +

    + while (res.next()) { +

    + +

    + System.out.println(res.getInt(“id”)+“,”+res.getString(“name”)+“,”+res.getInt(“age”));// 输出对象
    }
    try {
    if (res != null) {
    res.close(); // 处理异常,关闭 ResultSet 对象
    }
    } catch (Exception e) {
    e.printStackTrace();
    } finally {
    try {
    if (conn != null) {
    conn.close(); // 关闭 Connecton 对象
    }
    } catch (Exception e) {
    e.printStackTrace();
    }
    } +

    + +

    + } +

    + +

    + } +

    +
    \ No newline at end of file diff --git a/source/_posts/2010-11-20-ticket.md b/source/_posts/2010-11-20-ticket.md new file mode 100644 index 0000000..96557c5 --- /dev/null +++ b/source/_posts/2010-11-20-ticket.md @@ -0,0 +1,19 @@ +--- +title: 谈谈彩票 +author: wahyd4 +excerpt: > + 应该说像我这个人对于彩票是没有什么发言权的,因为我从高三到现在间间断断地买彩票也差不多有100左右了,可是呢,我从来没有中过奖,连2块,5块的尾奖也没有中过。 +layout: post +permalink: /2010/11/ticket/ +categories: + - 我说 +--- +应该说像我这个人对于彩票是没有什么发言权的,因为我从高三到现在间间断断地买彩票也差不多有100左右了,可是呢,我从来没有中过奖,连2块,5块的尾奖也没有中过。概率在我身上貌似有点不太对,其实我自己还是很会想的,想我高中时候夏天买康师傅的饮料,当时那个中奖率之高,高到我们一同学买一瓶饮料接连中三瓶,直接喝到他都不想喝了。其他很多同学也是买一瓶就中,而我呢,直到买了10瓶左右才中,在十瓶之后貌似这个概率倒是回复正常了,中得也多了。所以我觉得呢也许我买彩票也和买饮料一样,前面都不怎么可能中奖,后面也许会好一些。 + +再说了,我也应该这样想,买彩票是对我们国家福利事业的支持,也是对老板的支持,要是我们都不买的话,老板都没饭吃了。每每想到这里,心中总算是安慰一些。但是心中中还是免不了对中大奖抱有一些幻想,想我要是中了大奖怎么办。首相我要做的是镇定,不然一说全校的人都知道了,我就成名人了。哈哈……..我想太多了。 + +今天早上起来的时候,又买了10块钱的彩票,8块都是买的福彩。我都买了几次蓝号是13,还是14的号,那个号已经接近90期没有开出来了,好神奇啊。按照概率来讲讲不通啊。 + +其实我还对那些研究彩票的人充满敬意,因为彩票这么多中算法,这么从这些根本没有多少关系,即使有关系也只是概率上大一点的关系孜孜不倦的研究。要是再凭着研究出的彩票买中的人那简直就是神人啊。我佩服得五体投地。因为每次我看到那个走势图,我就觉得没多少用。也许只是自我感觉比机选好一些吧。不过我很多次买机选的彩票,确实一个数字都没有中。而且应该从中将的人书来说,大多数都是不是买的机选吧。 + +哎,我想多了。我只是需要吐槽罢了。 \ No newline at end of file diff --git a/source/_posts/2010-11-21-gae.md b/source/_posts/2010-11-21-gae.md new file mode 100644 index 0000000..ef70507 --- /dev/null +++ b/source/_posts/2010-11-21-gae.md @@ -0,0 +1,45 @@ +--- +title: 使用GAE免费建网站 +author: wahyd4 +excerpt: > + GAE是google app engine + 的缩写,google提供的这个服务,允许用户免费上传10个程序,也就是说你可以建10个网站。现在GAE支持使用java + 和python 语言建站。 +layout: post +permalink: /2010/11/gae/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - GAE + - 免费 +--- +GAE是google app engine 的缩写,google提供的这个服务,允许用户免费上传10个程序,也就是说你可以建10个网站。现在GAE支持使用java 和python 语言建站。但是当然你必须使用google app  engine SDK来搭建网站。利用GAE的好处就是,你可以免费利用google在全球的数据中心,所以你在全球几乎每个地方都可以得到很快的速度。如果只是一般的网站,完全不用担心服务器 cpu 等的资源限制问题,因为google已经为我们分配了很多,我个人认为完全够用了。 + +[][1] + +那我们要如何才可以得到GAE服务呢? + +首先你需要有一个google账号,没有的话道google网站进行注册。 + +然后打开这个网站:GAE 进入注册GAE服务,其实就是登陆google账号就可以了,登陆之后就相当于已经注册服务了。 + +登陆之后你看到的就是如下页面。(如果你是新注册的,没有建立项目当然项目那个区域hi空白的) + +[][2]然后点击create Application 就可以开始创建项目即网站了。 + +你的每一个项目都是对一个一个 XX.appspot.com 二级域名,限制这个网站的好的二级域名已经几乎没有啦。所以想好稍微好些的域名大家要赶紧注册了。 + +[][3]application title 这里是你的应用的名字。可以随便写,。 + +其他的就没有什么好说呢 + +下面是我用GAE搭建的两个网站 博客和相册  程序都是开源 的我们会在稍后的文章长详细介绍。请大家关注 + +点我进入:   博客 相册 + +**最新提示:最近GAE已经开始被抽风了,可能已经被和谐了,但是有时候还是可以访问。面对墙我们可以做些什么呢?** + + [1]: /images/2010/11/c81cdb4bf1b22fa33c1730ce825cd695.png + [2]: /images/2010/11/11-21-7_conew1.jpg + [3]: /images/2010/11/11-21-8_conew1.gif \ No newline at end of file diff --git a/source/_posts/2010-11-21-php-asp.md b/source/_posts/2010-11-21-php-asp.md new file mode 100644 index 0000000..2ac8b59 --- /dev/null +++ b/source/_posts/2010-11-21-php-asp.md @@ -0,0 +1,44 @@ +--- +title: 很好的国内php,asp空间(免费) +author: wahyd4 +excerpt: > + 我这里之所以要将免费用括号框起来,是因为本身提供这个免费空间的主机商不是专门提供免费的,而是一家商业公司,而且免费空间也只是他们的很小一部分,更多的还是商业虚拟主机。 +layout: post +permalink: /2010/11/php-asp/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 主机 + - 免费 +--- +面对备案,国内的免费主机你还用吗? + +我这里之所以要将免费用括号框起来,是因为本身提供这个免费空间的主机商不是专门提供免费的,而是一家商业公司,而且免费空间也只是他们的很小一部分,更多的还是商业虚拟主机。 + +进偶然点击这个IDC主机商的广告进入广告,首先一下子就被漂亮的页面深深吸引了,这应该是我看过的最漂亮的主机商页面了。 + +这个主机商现在提供一款免费的500M空间,每月2G流量的免费的空间供大家选择。 + +[][1] + +这里还有一款我在这里向特别说一下,应该也算是商家的一种促销方式吧,这个主机商提出的让顾客定价的主机,10G空间.价格由你自己定,如图所示:如果你定价1元  ,那么流量在2g以下免费,2-10G, 1元,10-20G 2元,以此类推。他们的话说,他们相信顾客,他们愿意接受顾客的一切定价。我试过,我选了,而且也注册了账号,支付宝也弹出一元的订单了。只差最后一步支付宝付款了。我想这个应该是真的吧,至少第一个月是真的。(注:如果真心想做网站的话,我觉得还是不要给他们的价格太低了,合适的价格就好。我这里的1元只是个演示,请勿模仿。) + +我选择了免费的套餐,系统自动立刻生成了账号,并且已经可以用了。而且他们的后台管理页面做得太好了。,文件管理器是flash 做的华丽的一塌糊涂啊。 + +[][2]上手很方便啊,虽然不是我们在国外主机使用的Cpanel. + +再说说他们的配置吧。虽然是免费的主机,确实付费主机的配置啊。四核的处理器。 + +下面是我的phpinfo()测试的结果。 + +[][3][][4]总之:不管是这家主机商提供的免费主机还是付费主机,在国内现在应该都是很不错的选择把。至少现在很实惠吧。免费和付费的差别就在于流量的限制,而且免费主机是共享多账号IP。 + +喜欢就去试试吧:点我进入 + +测试主机配置速度phpinfo:点我(可能在一个月之后就失效了。) + + [1]: /images/2010/11/11-21-5_conew1.jpg + [2]: /images/2010/11/11-21-1_conew1.jpg + [3]: /images/2010/11/11-21-2_conew1.jpg + [4]: /images/2010/11/11-21-3_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-22-micolog.md b/source/_posts/2010-11-22-micolog.md new file mode 100644 index 0000000..31b54cb --- /dev/null +++ b/source/_posts/2010-11-22-micolog.md @@ -0,0 +1,43 @@ +--- +title: GAE免费博客micolog +author: wahyd4 +excerpt: ' 如果你一直想拥有一个免费的类似wordpress博客而烦恼,如果你还希望你的免费博客有很大空间,又很快的速度。那我觉得现在在我们面前有这样一个很好的选择——使用GAE,' +layout: post +permalink: /2010/11/micolog/ +categories: + - 我们爱分享 +tags: + - GAE + - 免费 +--- +如果你一直想拥有一个免费的类似wordpress博客而烦恼,如果你还希望你的免费博客有很大空间,又很快的速度。那我觉得现在在我们面前有这样一个很好的选择——使用GAE,搭建自己的免费网站,那博客程序哪里找呢?我们可以使用完全免费的,开源,支持类似wordpress的主题和插件扩展的博客程序micolog。这个程序是完全由国人开发的哦,基于python,当然这个程序也只能运行在google app engine 上面。 + +micolog有以下一些特性: + +* wordpress数据导入导出,经过配置,导入后的链接和原链接能够保证一致 +* 支持PermaLink,可以自定义文章URL +* 文章使用 page 和 post* 两种方式 +* 支持目录,Tag,友情链接 +* 完善的系统管理后台 +* 实现了WordPress API,metaWeblog API接口,支持windows live writer书写方式 +* 文章缓存(默认不启用) +* 支持评论,支持新评论邮件提醒 +* 支持多国语言(目前支持中文/英文) +* 支持RSS输出 + +其实很多地方已经和wordpress有些相似了,当然两者还不具有可比性,micolog是由个人开发的。目前这个micolog已经拥有几十个主题和插件了,应该说还是比较不错呵完善了。当然作者也仍然在继续开发。 + +[][1] + +点击进入micolog官方站点:[http://micolog.appspot.com][2] + +由于在AGE环境下安装网站虽然不是太难,但是如果你完全不懂的话,又不是很简单,所以我在这里就 不单独提供安装教程了,所有的安装教程都按照micolog官方的教程就可以了,如果顺利的话,你应该在半个小时以内就可以安装并使用你的博客了。 + +必须要在本地机器安装的当然就是python运行环境  +GAE SDK。 + +如果读者朋友实在有什么不明白的可以在评论里面留言,我会及时给你发邮件帮你解决的。 + +安装教程: + + [1]: /images/2010/11/11-22-1_conew1.jpg + [2]: http://micolog.appspot.com/ \ No newline at end of file diff --git a/source/_posts/2010-11-23-css3-good-parts.md b/source/_posts/2010-11-23-css3-good-parts.md new file mode 100644 index 0000000..d2503a9 --- /dev/null +++ b/source/_posts/2010-11-23-css3-good-parts.md @@ -0,0 +1,49 @@ +--- +title: CSS精粹3免费下载 +author: wahyd4 +excerpt: > + 这本书的英文原名叫CSS + anthology,翻译成中文叫CSS精粹,目前这本书已经出到了第三版了。但是中文翻译的只有第二版,第二版是08年出版的,里面几乎没有提及CSS + 3 的一些应用。 +layout: post +permalink: /2010/11/css3-good-parts/ +categories: + - IT书籍 + - 头条推荐 +tags: + - css + - 下载 + - 免费 + - 电子书 +--- +这本书的英文原名叫CSS anthology,翻译成中文叫CSS精粹,目前这本书已经出到了第三版了。但是中文翻译的只有第二版,第二版是08年出版的,里面几乎没有提及CSS 3 的一些应用。第三版里面就增加了一些CSS 3的东西。 + +前几天我从图书馆里面借到了 第二版,昨天终于看完了,总的来说这本书还是很经典的,而且很易读,一些比较难了解的地方作者都有很详细的解释,而且还有很多很丰富的实例,在我们提供的下载版本中,我们集成了其他版本肯定没有的实例源码一起打包下载。 + +而且我也看了第三版的原版英文版本,里面的单词都比较简单,即使有个别单词稍微难一些,我们在身边准备一个有道词典就足够了。 + +[][1] + +这本书的内容大概分为:(每一章都有很多实例。) + +文本样式和基础知识 + +CSS和图像 + +网站导航 + +表格式数据 + +表单与用户界面 + +跨浏览器支持技术 + +可用性和辅助装置 + +CSS定位和布局(这一章包含了很多非常好的网页实例,而且是综合应用。) + +注:请使用firefox 或者IE 8,chrome等浏览器来阅读本书实例。IE 6过时了。个人认为初学者读此书应先了解CSS基础知识。 + +免费下载:点我下载 + + [1]: /images/2010/11/1255116593056.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-24-shit-my-dad-says.md b/source/_posts/2010-11-24-shit-my-dad-says.md new file mode 100644 index 0000000..111b25b --- /dev/null +++ b/source/_posts/2010-11-24-shit-my-dad-says.md @@ -0,0 +1,30 @@ +--- +title: 疯狂老爸箴言录Shit My Dad Says +author: wahyd4 +excerpt: > + 今天给大家推荐一部美剧疯狂老爸箴言录Shit My Dad + Says,这部美剧是根据一位在twitter上的老者说的话改编的,他说的话总是语出惊人。 +layout: post +permalink: /2010/11/shit-my-dad-says/ +categories: + - 我们爱分享 +tags: + - 美剧 +--- +无论你是在学习还是工作,你总不可能一直学习或者工作吧,所以我们也需要早点乐子来消遣消遣吧。作为一名学生,我觉得在学习之余看看美剧是一件很不错的事,不仅可以快乐一下,还可以顺便提升自己的英语水平,一举两得何乐而不为呢? + +今天给大家推荐一部美剧疯狂老爸箴言录Shit My Dad Says,这部美剧是根据一位在twitter上的老者说的话改编的,他说的话总是语出惊人。 + +[][1] + +在电视里面主要是围绕一家人来展开的,里面的人物有:老爸 ,小儿子,大儿子,和大儿子的老婆。老爸是属于比较固执的类型。小儿子是一个自由写作者,和老爸在一起。   大儿子的老婆是属于辣妹一类型的人吧。大儿子呢比较老实,平时一般听妻子的话。 + +可能我说的很不清楚,请原谅我的表达能力不够啊,总之这部美剧很不错。 + +我基本上每集都看了,到现在为止这部美剧已经出到第九集了,我个人觉得里面的笑点还是很多吧,只是里面的英语说得稍微快一些,如果英语不好的同学可能有些困难,不过有字幕不就什么问题也没有了。 + +本剧的字母和资源都来自人人影视 + +附下载链接:点我进入 + + [1]: /images/2010/11/11-24-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-25-959.md b/source/_posts/2010-11-25-959.md new file mode 100644 index 0000000..23ba032 --- /dev/null +++ b/source/_posts/2010-11-25-959.md @@ -0,0 +1,40 @@ +--- +title: 求20个数里面最大的数 +author: wahyd4 +excerpt: > + 如题这个应该算是一个超级简单的题吧!以前大一上学期的时候老师就讲过了! +layout: post +permalink: /2010/11/959/ +categories: + - 编程之美 +--- +如题这个应该算是一个超级简单的题吧!以前大一上学期的时候老师就讲过了! + +这学期,教我们数据结构与算法的老师是从电子科大调过来的副教授!教的真的不错,但是我学的话也明显可以感觉到压力,老师说我们以后还有期中考试要算入期末成绩!这个倒是第一次在我们学校实行! + +我觉得大家都一样,别人可以做到我也可以做到吧!没什么好怕的。 + +那天,老师在快要下课的时候,叫我们每个人写求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];** + +** +}** \ No newline at end of file diff --git a/source/_posts/2010-11-25-converstions.md b/source/_posts/2010-11-25-converstions.md new file mode 100644 index 0000000..155cb77 --- /dev/null +++ b/source/_posts/2010-11-25-converstions.md @@ -0,0 +1,31 @@ +--- +title: 口语课上即兴编写的关于疾病与建议的对话 +author: wahyd4 +excerpt: | + 下面就是当时在课上临场发挥写的一个对话!其实我觉得写得很简单哈。 + + A:Hey,how are you? +layout: post +permalink: /2010/11/converstions/ +categories: + - 我说 +--- +下面就是当时在课上临场发挥写的一个对话!其实我觉得写得很简单哈。 + +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. \ No newline at end of file diff --git a/source/_posts/2010-11-25-ssd1-student-book.md b/source/_posts/2010-11-25-ssd1-student-book.md new file mode 100644 index 0000000..40f9b53 --- /dev/null +++ b/source/_posts/2010-11-25-ssd1-student-book.md @@ -0,0 +1,18 @@ +--- +title: SSD1教材下载 +author: wahyd4 +excerpt: > + SSD1 的全称叫Introduction to Information + Systems,翻译成中文叫信息系统导论,是美国卡内基梅隆大学的计算机系列教材的第一个。 +layout: post +permalink: /2010/11/ssd1-student-book/ +categories: + - 编程之美 +--- +SSD1 的全称叫Introduction to Information Systems,翻译成中文叫信息系统导论,是美国卡内基梅隆大学的计算机系列教材的第一个。 + +还记得我们当时是在大学一年级上学期学的这个课程,由于没有书,所以所有知识都只能看电子文档了。 + +我前面看到网上很多同学都在找这本书的电子文档,于是今天在这里提供下载版本给大家吧. + +下载地址: 点我下载 \ No newline at end of file diff --git a/source/_posts/2010-11-25-ssd1.md b/source/_posts/2010-11-25-ssd1.md new file mode 100644 index 0000000..5533e5d --- /dev/null +++ b/source/_posts/2010-11-25-ssd1.md @@ -0,0 +1,27 @@ +--- +title: SSD1所有作业答案下载 +author: wahyd4 +excerpt: > + 这份参考答案包括了Multiple-Choice Quiz,Practical + Quiz,Exercise以及EXAM + 的答案,虽然这这里给大家提供答案但是希望学弟学妹们不要完全的抄,希望能够借鉴里面的答案,然后总结出自己更好的,这样才能达到学习的目的, +layout: post +permalink: /2010/11/ssd1/ +categories: + - 头条推荐 + - 编程之美 +tags: + - SSD1 + - 答案 +--- +看到很多学弟学妹在网上找这些东西的答案,今天就在这里分享SSD1所有作业的答案吧,这里面所有的答案都有 + +[][1] + +这份参考答案包括了Multiple-Choice Quiz,Practical Quiz,Exercise以及EXAM 的答案,虽然这这里给大家提供答案但是希望学弟学妹们不要完全的抄,希望能够借鉴里面的答案,然后总结出自己更好的,这样才能达到学习的目的,毕竟这个卡内基梅隆的教材还是很贵的,大家请珍惜。 + +也请下载的朋友支持我们的网站 + +下载地址:点我下载 + + [1]: /images/2010/11/11-25-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-25-ssd3-student-book.md b/source/_posts/2010-11-25-ssd3-student-book.md new file mode 100644 index 0000000..6656155 --- /dev/null +++ b/source/_posts/2010-11-25-ssd3-student-book.md @@ -0,0 +1,17 @@ +--- +title: SSD3教材下载 +author: wahyd4 +excerpt: > + SSD系列教程是美国卡内基梅隆大学的计算机专业学生的系列教程,一共是从SSD1到SSD9。此教程一般在国内比较有名的大学有使用,据我所知,我们附近有四川大学,电子科技大学,西北工业大学在使用此系列教程。 +layout: post +permalink: /2010/11/ssd3-student-book/ +categories: + - 编程之美 +--- +SSD系列教程是美国卡内基梅隆大学的计算机专业学生的系列教程,一共是从SSD1到SSD9。此教程一般在国内比较有名的大学有使用,据我所知,我们附近有四川大学,电子科技大学,西北工业大学在使用此系列教程。 + +很有幸我们学校也在使用此系列教程,但是也有点悲剧的是,由于此教材的传统书版本比较贵,因为很多学校都只有提供了电子文档版本,想必有些同学应该是很需要这些东西吧。 + +今天在这里提供SSD3的教材共大家下载,电子文档版本的CHM + +下载地址:点我下载 \ No newline at end of file diff --git a/source/_posts/2010-11-25-thanks-giving.md b/source/_posts/2010-11-25-thanks-giving.md new file mode 100644 index 0000000..bb1e9df --- /dev/null +++ b/source/_posts/2010-11-25-thanks-giving.md @@ -0,0 +1,15 @@ +--- +title: 感恩节话感恩 +author: wahyd4 +excerpt: > + 今天是美国的感恩节,其实作为彻头彻尾的中国人,其实感恩节和我算是没有多少关系吧,但是呢也许我们还是应该用一种很开放的态度来对待一些事, +layout: post +permalink: /2010/11/thanks-giving/ +categories: + - 我说 +--- +今天是美国的感恩节,其实作为彻头彻尾的中国人,其实感恩节和我算是没有多少关系吧,但是呢也许我们还是应该用一种很开放的态度来对待一些事,借这个节日来抒发一下自己对他们的感恩也是很不错的,再说了,我的网站在美国,这不也有一点关系了。 + +其实我本不知道11月第四个星期四是感恩节,但是通过最近的手机QQ上的图片和昨天晚上和西西说,于是我也便知道了。当然需要感谢很多人,无论是是给予我棒子还是痛苦的人,都得感谢他们,是他们让我成长,让我变得strong,还有瓜西西,当然最最值得感谢还是父母吧,他们这么辛苦养育我20年了。谢谢你们。 + +当然我也忘不了支持我网站的朋友们,是你们给网站带来了人气,是你们坚定了我继续走下去的信念,谢谢你们,我会一直努力下去的,也请你们继续支持我们的网站。我会带给你们更多更好的内容。 \ No newline at end of file diff --git a/source/_posts/2010-11-28-talk-about-these-two-days.md b/source/_posts/2010-11-28-talk-about-these-two-days.md new file mode 100644 index 0000000..9886af3 --- /dev/null +++ b/source/_posts/2010-11-28-talk-about-these-two-days.md @@ -0,0 +1,27 @@ +--- +title: 说说这两天 +author: wahyd4 +excerpt: | + 周末本以为可以和以前一样享受上网,更新我的网站,可是没有想到的是,昨天早上起来,很悲剧的是我们就没网了。 + + 不能上网,当然很多事也做不了,可是也算是一个学习的好机会吧。 +layout: post +permalink: /2010/11/talk-about-these-two-days/ +categories: + - 我说 +--- +周末本以为可以和以前一样享受上网,更新我的网站,可是没有想到的是,昨天早上起来,很悲剧的是我们就没网了。 + +不能上网,当然很多事也做不了,可是也算是一个学习的好机会吧。 + +我重新弄了一下虚拟机,这次使用的是 Oracle 的 Virtual BOX,换了Vmware workstation 我自己觉得还更好用了吧,因为以前装Vmware需要开机的时候就运行一些服务,会减慢开机速度,在我用360优化之后,可是很悲剧的是Vmware又不能正常联网了。今天晚些时候我会出一个很详细的讲解如何用Virtual Box 替代Vmware Station. + +还有大家看到了吗,昨天google首页的李小龙诞辰70周年的纪念日的logo,让对这位伟人表示敬意吧,当然也感谢google带来的logo. + +  + +还有我利用昨天下午和晚上的时间学习了一些J2EE的知识,还有点XML,没有想到的是,XML还可以像CSS一样修饰,打印出漂亮的东西,懂得了XML是很强大的东西。PS:据说迅雷7的界面就是XML架构的哦。以后有机会仔细学学XML吧。 + +恩,当然安装了虚拟机,不能闲着啊,我利用昨天晚上的时间学习了一些lunux 知识和命令操作。感觉学到不少知识啊。 + +下周是第14周啦,转眼就快考试啦,还在读书的童鞋大家加油吧》 \ No newline at end of file diff --git a/source/_posts/2010-11-28-virtual-box.md b/source/_posts/2010-11-28-virtual-box.md new file mode 100644 index 0000000..e3c9dbf --- /dev/null +++ b/source/_posts/2010-11-28-virtual-box.md @@ -0,0 +1,56 @@ +--- +title: Virtual Box 虚拟机 +author: wahyd4 +excerpt: > + 今天要给大家介绍的是virtual box,如果你以前用过Vmware station + 的话,那好说virtual box和Vmware 是一样的软件,只是virtual box + 是免费的,vmware 是商业软件。 +layout: post +permalink: /2010/11/virtual-box/ +categories: + - 头条推荐 + - 我们爱分享 +--- +今天要给大家介绍的是virtual box,如果你以前用过Vmware station 的话,那好说virtual box和Vmware 是一样的软件,只是virtual box 是免费的,vmware 是商业软件。如果你以前没用过的话,就这样说吧,virtual box 可以让你在你的电脑上(一般指在windows 上,当然在linux ,mac 也可以运行虚拟机)同时运行多个系统,比如同时使用windows和linux .而不用你真正在硬盘上装几个系统,就目前来讲,虚拟机一般是我们学习linux的好帮手。 + +[][1] + +就我上面所说,目前目前出名的虚拟机就是virtual box 和Vmware station,今天我们将着重介绍virtual box,如果你只是想安装虚拟机学习linux 系统,而不是专业人员,哪么virtual box 已经强大到绝对够你使用了。 + +好,我们下面从下载安装开始说起。 + +首先登陆这个网站:virtual box下载virtual box 软件。下载好之后安装,(提示:如果你用的是windows系统的电脑请下载windows版本,绝大多数都应该选择这个版本。)这之间应该都不会有问题,因为安装过程非常简单和其他软件一样。 + +安装好之后你将看到如下界面: + +[][2]你看到左边的是我已经安装好的虚拟机,如果你是刚安装好软件,你的这片区域会是空白的。右边的是关于你安装的缪戈虚拟机的相关配置情况。 + +安装好软件之后,我们需要新建虚拟机,这时我们要将你想要安装的系统镜像光碟放入光驱中读取,或者,用虚拟光驱加载你的镜像文件。我这里选择的是虚拟光驱加载镜像。 + +我这里新建一个名叫WWW的系统,是linux ubuntu 的版本,所以我要在系统里面选择 linux 然后是选择ubuntu,之后再到选择内存和硬盘,cpu分配等等,按照软件的提示就可以了不用改了。(建议新手都按照软件提示操作,不用改相关参数) + +建好之后你将在上图左侧看到一个www图标。 + +[][3]然后点击开始进行进一步的相关配置,这时刚才装载的系统镜像就发挥作用了, + +

    + 选择你加载的系统的盘,然后点击下一步即可进入系统安装了。 +

    + +系统安装这一步我就不再详细说明了,和你在真实环境下载安装时一样的。(PS:这一点和Vmware不一样,Vmware有专门针对ubuntu的优化,如果你选择的是ubuntux系统,那么Vmware可以直接帮你安装好系统,你需要做的就仅仅是输入用户名和密码即可。但是这样也少了很多自定义的配置。对于这一点是仁者见仁智者见智吧。) + +安装好之后你就可以享受你的虚拟机生涯啦。 + +下面再讲一些我个人的感悟吧。对于专业人员来说肯定Vmware更加强大,这一点从文件大小就可以看出来,vMware安装好以后有1G多,个人感觉Vmwar会添加很多服务到你的电脑,如果你的电脑禁止了这些服务,很可能你的虚拟机不能正常运行,比如不能正常联网。然后virtual box 则没有,没有强制加入开机自启动的服务,而且运行时的进程也只有两个。 + +对于虚拟机联网的问题,联网请输入NAT,这样你就可以在虚拟机里面使用网络了。 + +综合网上前辈说的,貌似的确virtual box 占用的内存不很多,可是cpu占用则要大一些,相比较于vmware + +请大家有什么不懂的在文章后面留言吧,我会尽量帮你们解决的。 + +virtual box 下载地址:点我官网下载 + + [1]: /images/2010/11/11-28-1_conew1.jpg + [2]: /images/2010/11/11-28-2_conew1.jpg + [3]: /images/2010/11/11-28-3_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-29-linux-video-tutorial.md b/source/_posts/2010-11-29-linux-video-tutorial.md new file mode 100644 index 0000000..ac2900c --- /dev/null +++ b/source/_posts/2010-11-29-linux-video-tutorial.md @@ -0,0 +1,34 @@ +--- +title: Linux 视频教程 +author: wahyd4 +excerpt: '今天给大家分享的是一个linux ubuntu 视频教程,所使用的系统是ubuntu 9.04 还是很新的版本,其实这个版本也不太重要,因为再怎么变,ubuntu的系统内核不会该表多少的,因为操作也不会改变。' +layout: post +permalink: /2010/11/linux-video-tutorial/ +categories: + - 各类教程 + - 头条推荐 +tags: + - linux + - 下载 + - 免费 + - 视频 +--- +今天给大家分享的是一个linux  ubuntu 视频教程,所使用的系统是ubuntu 9.04 还是很新的版本,其实这个版本也不太重要,因为再怎么变,ubuntu的系统内核不会该表多少的,因为操作也不会改变。 + +这个视频教程很容易看懂,学习。不管你有没有linux基础,都可以学习。对于linux的好处我就不多讲了,只是说一点现在网络里面所有的服务器几乎都是linux,当然对于计算机专业的学生更是应该掌握了。 + +这个视频共23讲,是一个叫海明工作室所提供的,每集大概20分钟左右,视频经过压缩后很小,每个只有20M左右,所以很适合下载。 + +[][1] + +这个视频教程主要讲了:linux ubuntu 的安装,在虚拟机上安装和实体机上安装,以及创建live cd.简单使用。 + +还有linux 的一些简单命令,文件 ,目录管理。磁盘管理,用户管理,进程管理,系统管理,网络管理,安装软件在linux上,任务管理,压缩包管理。在学习了这个视频教程之后,差不多你已经是中等水平了。 + +笔者最近也正在学习,稍微会整理出学习linux 笔记。 + +**下载地址为电驴下载:点我下载** + +友情提示,点击复制链接,使用迅雷下载课获得更快速度。 + + [1]: /images/2010/11/linux_tshirt.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-30-jquery-basic-tutorial.md b/source/_posts/2010-11-30-jquery-basic-tutorial.md new file mode 100644 index 0000000..5abe5ff --- /dev/null +++ b/source/_posts/2010-11-30-jquery-basic-tutorial.md @@ -0,0 +1,37 @@ +--- +title: jQuery基础教程 +author: wahyd4 +excerpt: > + jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE + LESS,DO + MORE,写更少的代码,做更多的事情。它是轻量级的js库(压缩后只有21k) + ,这是其它的js库所不及的,它兼容CSS3, +layout: post +permalink: /2010/11/jquery-basic-tutorial/ +categories: + - IT书籍 +tags: + - javascript + - jquery + - 下载 + - 免费 +--- +jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多javascript高手加入其team,包括来自德国的Jörn Zaefferer,罗马尼亚的Stefan Petre等等。jQuery是继prototype之后又一个优秀的Javascrīpt框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。————————————————————摘自百度百科 + +[][1] + +我们在制作网页的时候很多大多都会用到javascript,然而jquery是javascript的一个库,它可以让你用很少的代码实现很酷炫的功能。个人觉得像在网页制作方面有所作为的同学们很需要看看啊。看这个还是需要掌握一些javascript基础的。 + +这本书可以说是jquery的经典著作吧,作者说的是jquery的第一本著作。获得亚马逊的全五星评价。 + +本书的主要内容是: + +以通俗易懂的方式介绍了jQuery的基本概念,主要包括jQuery的选择符、事件、特效、DOM操作、AJAX、表格操作、表单函数、拖曳与旋转和插件等内容,最后几章以实例操作为主,在前面内容的基础上,提出了常见的客户端实际问题并给出了其解决方案。 + +笔者在网上找了很久找到了电子版本的书籍供大家下载,分别有中文和英文版本。大家可以在学习中文版本的时候试着学习英文版本,对英语能力也是有一定提高的。 + +在这里提供下载地址给大家吧          **中文版 英文版** + +如果有能力的同学,也希望可以支持正版事业,附正版购买链接:点我 + + [1]: /images/2010/11/s3103223.jpg \ No newline at end of file diff --git a/source/_posts/2010-11-30-you-are-beautiful.md b/source/_posts/2010-11-30-you-are-beautiful.md new file mode 100644 index 0000000..8917b05 --- /dev/null +++ b/source/_posts/2010-11-30-you-are-beautiful.md @@ -0,0 +1,19 @@ +--- +title: you are beautiful. +author: wahyd4 +layout: post +permalink: /2010/11/you-are-beautiful/ +categories: + - 《 theLun》 +--- +[高清MV.James.Blunt-[You Are Beautiful].mkv][1] + +  + +他叫james blunt,这首《you are beautiful》是一汽大众新宝来的广告曲。有着“上尉诗人”之称的james blunt是英军上尉,这首歌创作于夜晚的坦克下,经历了白天的战火后,他写出了这首直逼你我内心最深处的歌。歌中的you指得就是战前的伊拉克。 + +歌曲的MV也很意蕴深长。 + +可我还是庸俗地想单纯把它视作一首情歌来听。他唱到: i saw you face in a crowded place..and I don’t know what to do..’Cause I’ll never be with you….. + + [1]: /images/2010/11/高清MV.James_.Blunt-You-Are-Beautiful.mkv.flv \ No newline at end of file diff --git a/source/_posts/2010-12-04-javascript.md b/source/_posts/2010-12-04-javascript.md new file mode 100644 index 0000000..38a64d6 --- /dev/null +++ b/source/_posts/2010-12-04-javascript.md @@ -0,0 +1,41 @@ +--- +title: javascript 语言精粹 下载 +author: wahyd4 +excerpt: | + 众所周知要做一个很好,很酷炫的网页 html+css+javascript是必不可少的。前面我们已经分享了一本经典的css书籍css精粹3 + + 和一本jquery基本教程。今天分享的是javascript 精粹。 +layout: post +permalink: /2010/12/javascript/ +categories: + - IT书籍 +tags: + - 下载 + - 免费 +--- +> 由于115网盘不能再公开下载了,所以,如果有需要的同学,请留下邮箱我会发给你的! + +已经凌晨了,算是昨天吧,没有更新自己的博客,这个时候睡不着,给大家分享一本好书吧 + +众所周知要做一个很好,很酷炫的网页 html+css+javascript是必不可少的。前面我们已经分享了一本经典的css书籍**css精粹3** + +和一本jquery基本教程。今天分享的是javascript 精粹。 + +这本书应该也是很经典的一本书,有人说javascript是现在使用最多的语言,确实被人最不重视的语言。也许你看了这本书以后会有一些自己的看法吧。 + +  + +[][1] + +同样和其他编程语言一样这本书主要分为标识符 ,字符串,语句,表达式,函数,对象等等进行讲解。我自己看了一点,个人觉得,这本书写得很详细,也比较简单易懂。这里我说的是中文版本。 + +下面是一段内容简介: + +JavaScript曾是“世界上最被误解的语言”,因为它担负太多的特性,包括糟糕的交互和失败的设计,但随着Ajax的到来,JavaScript“从最受误解的编程语言演变为最流行的语言”,这除了幸运之外,也证明了它其实是一门优秀的语言。Douglas Crockford在本书中剥开了JavaScript沾污的外衣,抽离出一个具有更好可靠性、可读性和可维护性的JavaScript子集,让你看到一门优稚的、轻量级的和非常富有表现力的语言。作者从语法、对象、函数、继承、数组、正则表达式、方法、样式和优美的特性这9个方面来呈现这门语言真正的精华部分,通过它们完全可以构建出优雅高效的代码。作者还通过附录列出了这门语言的糟粕和鸡肋部分,且告诉你如何避免它们。最后还介绍了JSLint,通过它的检验,能有效地保障我们的代码品质。 +这是一本介绍JavaScript语言本质的权威书籍,值得任何正在或准备从事JavaScript开发的人阅读,并且需要反复阅读。学习、理解,实践大师的思想,我们才可能站在巨人的肩上,才有机会超越大师,这本书就是开始。 + +**下载地址: 点我下载** + +如果你有能力请支持正版,附正版购买链接:点我 + + [1]: /images/2010/12/s3651235.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-05-wing.md b/source/_posts/2010-12-05-wing.md new file mode 100644 index 0000000..f2cb88f --- /dev/null +++ b/source/_posts/2010-12-05-wing.md @@ -0,0 +1,29 @@ +--- +title: 新浪微博客户端wing +author: wahyd4 +excerpt: > + 此软件是基于Adobe air 开发,意味着你可以在任何支持adobe + air的客户端运行软件,当然在windows + ,mac,linux下都可以运行软件了,但是你需要做的就是首先确保你的电脑安装有Abobe + air客户端,然后下载wing(官方) +layout: post +permalink: /2010/12/wing/ +categories: + - 酷玩软件 +tags: + - 下载 + - 微博 +--- +老实说虽然我很早就注册了新浪微博课QQ微博,但是我却没有很好的打理它,当然也没有经常关注微博的变化和发展,今天再次登录我的微微博时,发现新浪微博已经变了很多,很多了。比起QQ微博当然要强大很多倍了,从每个方面。 + +于是今天给大家推荐的是一款新浪微博电脑桌面客户端wing,相信很多常用新浪的朋友已经很熟悉了吧,但是还是在这里向大家推荐吧,为了更多不清楚的朋友。 + +此软件是基于Adobe air 开发,意味着你可以在任何支持adobe air的客户端运行软件,当然在windows ,mac,linux下都可以运行软件了,但是你需要做的就是首先确保你的电脑安装有Abobe air客户端,然后下载wing(官方) + +这个软件的界面也是相当的漂亮,整个界面的布局参考了类似QQ的布局,同样加入了换肤等功能,使得界面非常漂亮。 + +[][1]这界面的菜单还是很丰富的,包括主页,微博主页,和关于我的微博,评论,私信和收藏几个类别。而且通过设置你可以实现更多的功能,比如对界面进行调整,对新微博的提示功能,你还可以查看历史记录,甚至备份你的微博信息。是不是很强大呢? + +其实更让人惊讶的是这个程序是一个大二女生开发的,每每想到此,心中的敬意油然而生!此女生的博客大家可以进去看看。 + + [1]: /images/2010/12/12-5-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-06-3d-flash.md b/source/_posts/2010-12-06-3d-flash.md new file mode 100644 index 0000000..54c9e0e --- /dev/null +++ b/source/_posts/2010-12-06-3d-flash.md @@ -0,0 +1,43 @@ +--- +title: 3D flash抽签程序 +author: wahyd4 +excerpt: | + 昨天在中国交互设计大赛上看到这个作品3D抽签程序,我试用了感觉很酷,所以就分享给大家,并提供下载吧。 + + 下面就详细说说这个软件: +layout: post +permalink: /2010/12/3d-flash/ +categories: + - 头条推荐 + - 酷玩软件 +tags: + - flash + - 下载 + - 免费 + - 抽签 +--- +昨天在中国交互设计大赛上看到这个作品3D抽签程序,我试用了感觉很酷,所以就分享给大家,并提供下载吧。 + +下面就详细说说这个软件: + +[][1] + +如图所示是软件运行的样子,点击运行3Drandom.swf 即可。你可以用flash player来使用这个软件,也可以用类似于QQ影音这样的播放器来使用,或者使用浏览器打开这个程序都是可以的。 + +这个程序实现的是一个抽签效果,所有参与抽签的姓名会在球面滚动,当你按下**空格键**是则会选出被抽中的人,然后**再按下空格键取消**,如此往复则可以多次运行程序, + +更有意思的是,作者制作的这个程序还实现了3D版本,在程序运行时你可以点击**鼠标左键**,即可进入3D模式,不过此模式下你需要佩戴红绿(或红蓝)3D眼镜使用,才可以看到效果。如下图所示: + +  + +最重要的一点:如何添加被抽签人名单? + +其实这个已经有作者制作得很简单了,**只要你将想要添加的人的名字添加到一个文本文档里面就可以了(既可以是中文,也可是英文哦)。并命名为 name.txt**就好了。 + +本质来说这个效果有点类似于wordpress 3D标签插件效果,不过这个软件的防锯齿功能做的不是很好,希望以后可以看到更好的版本出现。 + +这个程序由一大一学生设计是不是很牛呢。 + +免费下载地址:点我下载 + + [1]: /images/2010/12/s.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-06-vired.md b/source/_posts/2010-12-06-vired.md new file mode 100644 index 0000000..27ae932 --- /dev/null +++ b/source/_posts/2010-12-06-vired.md @@ -0,0 +1,23 @@ +--- +title: 邪乎,耶乎! +author: wahyd4 +excerpt: | + 话说我前面还写了一篇《谈谈彩票》,里面满是没有中奖的辛酸和无奈。 + + 可是就在这之后,出乎意料的是在这后面连续四期我连续中奖,而且这四次都是蓝号,我感觉好神奇。 +layout: post +permalink: /2010/12/vired/ +categories: + - 我说 +--- +话说我前面还写了一篇《谈谈彩票》,里面满是没有中奖的辛酸和无奈。 + +可是就在这之后,出乎意料的是在这后面连续四期我连续中奖,而且这四次都是蓝号,我感觉好神奇。 + +我自己认为貌似自己看出了蓝号的一些规律,但是也许只是偶然吧。 + +老实说我不是一个很本分的人,我也有点贪心,在连续中了5块之后,我有点不安于现状了,今天早上起来我买了8块钱的双色球,期望于中不止五块的奖,但是我感觉这次中蓝号的概率不是很大,于是我买了两个蓝号 1,16号,16号买了三注。而且我机选了4注彩票的蓝号。 + +如果中不到奖也好,这下可以打消我连续买彩票的念头了,但是我仍然会说到做到每周买一次彩票。算是给自己留下一个希望,也算是支持中国福利事业吧。 + +微博祈祷吧,哈哈! \ No newline at end of file diff --git a/source/_posts/2010-12-07-android-2-3-come.md b/source/_posts/2010-12-07-android-2-3-come.md new file mode 100644 index 0000000..1cc65eb --- /dev/null +++ b/source/_posts/2010-12-07-android-2-3-come.md @@ -0,0 +1,29 @@ +--- +title: Android 2.3 姜饼出炉啦 +author: wahyd4 +excerpt: > + 看过一系列的Gingerbread姜饼和相关传言后,今日有答案了。 + Google正式在网站公布第二部旗下品牌的手机Nexus + S,并同时发布Android 2.3 + Gingerbread,相关开发工具已经公开下载。 +layout: post +permalink: /2010/12/android-2-3-come/ +categories: + - 我说 +--- +转自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的网站已经被墙了,大家需要翻墙才可以看哦。 + +[][1][][2] + +android Nexus s + + [1]: /images/2010/12/12-7-1_conew1.jpg + [2]: /images/2010/12/12-7-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-08-android-2-3.md b/source/_posts/2010-12-08-android-2-3.md new file mode 100644 index 0000000..84a4c92 --- /dev/null +++ b/source/_posts/2010-12-08-android-2-3.md @@ -0,0 +1,30 @@ +--- +title: Android 2.3一瞥 +author: wahyd4 +excerpt: > + 在网上看得再多,如果自己不能真正体会,也没多少意思。所以我从昨天android + 2.3 + 一出来我就开始下载2.3的镜像,可是不知道怎么回事,我打开SDK更新的时候,一直出现这个问题: +layout: post +permalink: /2010/12/android-2-3/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - android +--- +在网上看得再多,如果自己不能真正体会,也没多少意思。所以我从昨天android 2.3 一出来我就开始下载2.3的镜像,可是不知道怎么回事,我打开SDK更新的时候,一直出现这个问题: + +[][1]SDK更新不了,可是如果SDK不能更新到8的话,我就不能下载android 2.3 的ADT,也就不能在电脑上模拟android 2.3了,这个问题一直困扰着我,知道今天,我在群里面看到有人这样解决,重新到官方网站下载最新的SDK ,版本号是8,然后再下载ADT就好了,这个办法果然有效,我这样做了,终于在我电脑上模拟出了android 2.3。从我第一眼看到android 2.3 我觉得的确比以前漂亮多了,难道真的是以为内那个新加入的很牛的人?总之很好看了。 + +下面上图吧: + +[][2]首页,主要是上面的电池,信号栏变漂亮很多了,我个人不是很喜欢以前的灰色。我喜欢现在这个。 + +[][3]更多,更有意思的东东,我正在慢慢试,慢慢体验,大家也来体验一下吧。 + +你只要在你电脑里面安装android SDK,(下载这个需要翻墙哦)然后下载ADT就好了,android 2.3的ADT编号是9哦。 + + [1]: /images/2010/12/12-8-3_conew1.gif + [2]: /images/2010/12/12-8-1.jpg + [3]: /images/2010/12/12-8-2.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-11-linux-2010.md b/source/_posts/2010-12-11-linux-2010.md new file mode 100644 index 0000000..fffb0c2 --- /dev/null +++ b/source/_posts/2010-12-11-linux-2010.md @@ -0,0 +1,35 @@ +--- +title: linux宝典2010 +author: wahyd4 +excerpt: > + 废话,这本书同样是我在图书馆找到的好书,其实我在图书馆找到的是第五版,是图书馆最新到的书,我大概翻看了一下,这本书真的很不错,首先讲得很详细,从linux的起源就讲起,而且适合各种层次的负责阅读, +layout: post +permalink: /2010/12/linux-2010/ +categories: + - IT书籍 +tags: + - linux + - ubuntu + - 下载 + - 免费 +--- +阅读的时候你可能还喜欢我今天发表的:编程珠玑第二版 + +你应该还喜欢:linux视频教程免费下载 + +废话,这本书同样是我在图书馆找到的好书,其实我在图书馆找到的是第五版,是图书馆最新到的书,我大概翻看了一下,这本书真的很不错,首先讲得很详细,从linux的起源就讲起,而且适合各种层次的负责阅读,里面的内容既有图像界面的应用,也有适合程序员学习的shell代码操作的讲解,最后还讲linux下的编程环境以及如何编程。而且分的很细,每章都很恨详细的实例,所以值得大家阅读和学习啦。 + +[][1] + +内容介绍(引用): + +本书详尽地介绍了Linux的方方面面。全书共分为6个部分,从讲述基本的Linux概念、shell基本命令以及图形用户界面开始,一直到最后介绍Linux编程环境,每一部分都提供了主要命令的详细解释和流程说明。本书的一个显著特点是安排了很多章节来介绍各种最新流行的Linux发行版(多达12个)。此外,本书最后提供的大量参考资料可帮助读者获得所需的各种知识。 +本书可作为Linux新手的入门指南,对于Linux专业人员也极具参考价值。 + +可是有点遗憾的是,我没有找到我在图书馆看到的linux宝典第五版,我只找到最新出版的英文版2010版供大家下载! + +下载地址:点我下载 + +请有能力的同学支持正版,购买正版链接,linux宝典第五版:点我 + + [1]: /images/2010/12/thumb.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-11-program-good.md b/source/_posts/2010-12-11-program-good.md new file mode 100644 index 0000000..e248b7a --- /dev/null +++ b/source/_posts/2010-12-11-program-good.md @@ -0,0 +1,32 @@ +--- +title: 编程珠玑第二版 +author: wahyd4 +excerpt: > + 今天给大家介绍的是编程珠玑第二版,包括中文和英文版本已经源代码下载,其实缘由是我在图书馆的新书里面看到了这部经典的图书,但是苦于图书馆的是英文版的,我不喜欢看英文, +layout: post +permalink: /2010/12/program-good/ +categories: + - IT书籍 + - 头条推荐 +tags: + - pdf + - 下载 + - 免费 + - 编程珠玑 +--- +废话:其实这几天我都想个问题,为什么我的网站的浏览量总是维持在每天20-30个人左右,没有变化,而且感觉没有太多固定的读者,很多是从google来的,找到想要的东西就走了,没有进行深入阅读,而且我的网站内容我发现也没有太多深度,于是我希望在达到100篇文章之后,提升文章的深度,和质量,减缓发表文章的频率,因为我不想做单纯的资源型博客,哪有什么意思呢?此外我也是在赌气吧,没有人点我的ad,于是我心里面暗暗想,我要等到有人点了我的广告我再发表文章,看了今天算是吧,而且还有两个很好的童鞋支持我了。谢谢你们哦! + +…………………………………………………我是华丽的分割线………………………… + +[][1] + +今天给大家介绍的是编程珠玑第二版,包括中文和英文版本已经源代码下载,其实缘由是我在图书馆的新书里面看到了这部经典的图书,但是苦于图书馆的是英文版的,我不喜欢看英文,但是以前听到有人说过这本书很经典,而且我通过豆瓣得知: +本书是计算机科学方面的经典名著。书的内容围绕程序设计人员面对的一系列实际问题展开。作者Jon Bentley 以其独有的洞察力和创造力,引导读者理解这些问题并学会解决方法,而这些正是程序员实际编程生涯中至关重要的。本书的特色是通过一些精心设计的有趣而又颇具指导意义的程序,对实用程序设计技巧及基本设计原则进行了透彻而睿智的描述,为复杂的编程问题提供了清晰而完备的解决思路。本书对各个层次的程序员都具有很高的阅读价值。 + +于是我今天特意为各位需要的同学分享这部书,这本书适合各个阶层的编程人员,和各类编程语言的同学们哦!大家还可以中英文对照一起看。 + +下载地址:点我下载 + +有能力的同学,请支持正版,购买正版链接:点我 + + [1]: /images/2010/12/12-11-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-13-one-week-to-learn-flex4.md b/source/_posts/2010-12-13-one-week-to-learn-flex4.md new file mode 100644 index 0000000..7ebf10c --- /dev/null +++ b/source/_posts/2010-12-13-one-week-to-learn-flex4.md @@ -0,0 +1,47 @@ +--- +title: 一周学Flex4视频中文版 +author: wahyd4 +excerpt: > + 有了上面的那些东西,所以才有了这个视频教程,这个教程是Adobe + 开发者中心官方推出的一周学习flex教程,从最基础的学起,应该说只要你是有些许编程经验的对这个教程都可以看懂, +layout: post +permalink: /2010/12/one-week-to-learn-flex4/ +categories: + - 各类教程 + - 头条推荐 + - 我们爱分享 +tags: + - 下载 + - 免费 + - 教程 + - 视频 +--- +**废话:**前几天在论坛里面看到有人讨论程序和网站的图形界面开发,有人很推荐Adobe Flex即是富互联网交互技术,于是我便在网上找了点东西看,顺便学习了下,发现原来用这个做界面真的很简单,你可以在数据处理的时候使用java,asp.net,php等技术都行,只要前台使用flex的mxml标记语言就可以了,而且我还发现原来所有的AIR桌面应该程序也是用这个做的,所以不得不说这个东西真的是太好了。 + +……………………………………..分割线……………………………………………………….. + +[][1] + +有了上面的那些东西,所以才有了这个视频教程,这个教程是Adobe 开发者中心官方推出的一周学习flex教程,从最基础的学起,应该说只要你是有些许编程经验的对这个教程都可以看懂,稍微有一点不好的是这个视频是英文讲解,当然还有万幸的是,里面涉及的词汇都不难,而且还有更好的是riameeting.com(在这里感谢他们了。)为我们翻译的中文字幕供大家学习,这样学这个就没有任何困难了。 + +你需要做的是下载所有的文件,使用电驴,迅雷都可以。安装压缩包里面的RIAPlayer.air首先你需要下载air的安装环境,前面我将wing微博的时候已经提到过,不知道的也可以google一下,安装好这个之后,点击运行注册就好了,这个是必须要注册的,内容可以随便写,然后就可以开始你的视频学习之旅了。 + +如图所示为改视频播放器的界面。 + +全套视频下载地址:点我下载 + +练习文件下载: + +第一天:FLEX基础 + +第二天:事件和数据基础 + +第三天:数据捕获和管理基础 + +第四天:页面布局和动画 + +第五天:添加视觉上的吸引力 + +注:其他不会的可以看下载视频文件包里面的的readerme.txt,观看视频请一定使用下载包里面的RIAplayer不要使用自己的什么QQ影音播放器,否则你的字幕是不能打开的。或者给我留言,我会尽快帮你解决的! + + [1]: /images/2010/12/12-13-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-14-some-actions-about-keniu.md b/source/_posts/2010-12-14-some-actions-about-keniu.md new file mode 100644 index 0000000..5be215f --- /dev/null +++ b/source/_posts/2010-12-14-some-actions-about-keniu.md @@ -0,0 +1,39 @@ +--- +title: 你可能不知道的可牛影像的几个小功能 +author: wahyd4 +excerpt: > + 老实说,我平时处理图像用的最多的不是Photoshop,也不是picasa,而是可牛影像,因为绝大多数的日常图片处理都可以用它完成,而且还几乎是傻瓜式的操作,所以当然photoshop就被抛到一边了。 +layout: post +permalink: /2010/12/some-actions-about-keniu/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 可牛 + - 软件 +--- +废话:这篇文章绝对不是枪文! + +[][1] + +老实说,我平时处理图像用的最多的不是Photoshop,也不是picasa,而是可牛影像,因为绝大多数的日常图片处理都可以用它完成,而且还几乎是傻瓜式的操作,所以当然photoshop就被抛到一边了。 + +下面就说说可牛的影像的妙之处吧。 + +一、随时都可以很方便地处理图片 + +在你安装了可牛影像之后,当你选中图片,然后右键是,你会发现你的右键选项里面多了一项——**使用可牛影像进行编辑和美化,**老实说我很喜欢这个功能,它可以让你很方便的直接处理你想要处理的图片,而不用再先把图像处理处理软件,而且还不用绑定软件。(注:我试过,美图秀秀,picasa都没有这个功能,虽然我一直抖喜欢用google的东东。) + +二、傻瓜式地创建并制作圆角图片 + +以前你使用photoshop的话,需要自己选择几步才可以制作出圆角图片,然而可牛影像可以让我们傻瓜式的创建圆角图片,在可牛影像的菜单中,点击**裁剪**选项,然后勾上圆角裁剪选项,并在后门下拉菜单中选择你需要的圆角有10,20,30,50像素可供选择。如下图所示。[][2]注意:如果你想要显示的效果更好,更明显,请在最后选择保存圆角图片的时候,采用png,或者gif格式,因为他们可以实现透明,而jpg格式不能实现透明,但是如果你要在白色 背景显示圆角图片,那么这三种格式够可以选择。 + +三、图像格式互换和图像文件大小压缩 + +很多时候,为了让网页显示图像更快,通常我会选择压缩图片文件的大小,这时候就可以使用可牛影像的这个功能,**点击保存时即可出现下图所示框,**可以让你改变文件的质量比,质量越低当然文件越小,对应图像也会越不清晰,所以一般我会选择控制在60%左右就好了,几乎都可以兼得了,而且一般如果原来是png或者gif比较大的图片,我会选择转换成jpg一控制文件大小。 + +[][3] + + [1]: /images/2010/12/12-14-3.jpg + [2]: /images/2010/12/12-14-1_conew1.jpg + [3]: /images/2010/12/12-14-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-17-some-websites.md b/source/_posts/2010-12-17-some-websites.md new file mode 100644 index 0000000..6eff80d --- /dev/null +++ b/source/_posts/2010-12-17-some-websites.md @@ -0,0 +1,51 @@ +--- +title: 几个网络调查赚钱赚钱的网站 +author: wahyd4 +excerpt: > + 话说 + 本童鞋两三年前就开始参加一些调查网站,做一些调查来赚钱,但是以前是时间不够,现在是不想再写调查了,感觉那个东西有点浪费时间,也许我是因为我自己做什么事都是三分钟热情吧, +layout: post +permalink: /2010/12/some-websites/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 调查 + - 赚钱 +--- +前言:话说 本童鞋两三年前就开始参加一些调查网站,做一些调查来赚钱,但是以前是时间不够,现在是不想再写调查了,感觉那个东西有点浪费时间,也许我是因为我自己做什么事都是三分钟热情吧,不过今天还是在这里面推荐2个我自己都参加过的调查网站,其中我在一个网站还有40¥没有拿到呢,现在我也不想再去管他了。 + +第一个是:点众(Valued Opinions) + +

    + +

    + +这个网站我是真的认真做过一些调查的,而且每个调查的奖励也还很不错吧 ,我就是在这个网站还有几十块钱,而且这个点众的母公司是英国的一家调查公司,所以他的调查特别多,有时候还会发给你他转接的其他调查机构提供的调查问卷,不过都是有钱的,你就放心吧,截自官网:当您的账户达到等值人民币50元时,您将可以兑取我们为您提供的等值的**卓越-亚马逊礼品卡**。从2009年元旦起,当你帐户最少累积到人民币200元或金额是50的倍数时,您就可以直接兑换**现金**,我很推荐大家去注册这个网站。 + +[][1][][2][][3] + +注册点众:点我 + +第二个:GlobalTestMarket + +

    + +

    + +这个是我较晚参加的调查网站,这个网站倒是真的名符其实的全球性调查站点,当你注册时需要选择你所在的国家,你注册的时候都需要适当填一些关于你自己相关信息的调查,以便网站能够为你投递相关的调查,这个网站的调查应该是很严谨的,它会严格筛选资格,因此可能你得到的调查不是很多,你得到的奖励也是以积分来计算的。你的账户必须要有1000积分才能够转换,最低积分是1000积分,我不太清楚这个换成人民币是多少,但是应该不得太少吧,因为你没进行一个调查时30-80积分左右。 + +[][4] + +

    + +

    + +注册地址:点我 + +今天就为大家推荐这个两个网站吧,认真写这个东西真的很花时间,希望大家能够支持我啊。 + + [1]: /images/2010/12/12-17-1.jpg + [2]: /images/2010/12/12-17-2.jpg + [3]: /images/2010/12/12-17-11.jpg + [4]: /images/2010/12/12-17-5.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-18-dll-download.md b/source/_posts/2010-12-18-dll-download.md new file mode 100644 index 0000000..4d3375b --- /dev/null +++ b/source/_posts/2010-12-18-dll-download.md @@ -0,0 +1,29 @@ +--- +title: 雨林木风dll库文件下载 +author: wahyd4 +excerpt: > + 相信很多童鞋有和我一样的经历吧,当我们安装游戏或者软件的时候(绝大多数是游戏),电脑弹出一个框说我们的系统缺少某个.dll的类库文件,不能动态连接什么什么的信息, +layout: post +permalink: /2010/12/dll-download/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - dll + - 下载 + - 类库 +--- +相信很多童鞋有和我一样的经历吧,当我们安装游戏或者软件的时候(绝大多数是游戏),电脑弹出一个框说我们的系统缺少某个.dll的类库文件,不能动态连接什么什么的信息,这个时候可以解决的办法无非两种,一种是重新安装软件,另一种则是到网上下载相应的dll类库文件。当然很多时候第一种方法并不管用。可是有时候又很难找到一个很好的dll类库下载网站。 + +

    + +

    + +最近一个很不错的公司网站,雨林木风为我们提供了这样一个dll库文件下载网站。里面包含的dll还想相当齐全的,以后大家遇到什么找不到的dll库文件就到雨林木风dll下载网站下载吧。如果在网站没有找到的,还可以告诉他们。让他们帮你找。 + +比如说很多热门的dll文件: + +usp10.dll d3dx9_32.dll id3lib.dll comres.dll +shimgvw.dll scrrun.dll comres.dll shdocvw.dll shell32.dll storm.dll kailleraclient.dl lmfc42d.dll binkw32.dll d3dx9_25.dll + +dll下载网站地址: \ No newline at end of file diff --git a/source/_posts/2010-12-18-survey.md b/source/_posts/2010-12-18-survey.md new file mode 100644 index 0000000..9512bf3 --- /dev/null +++ b/source/_posts/2010-12-18-survey.md @@ -0,0 +1,37 @@ +--- +title: 我做调查赚钱之“偷奸耍滑” +author: wahyd4 +layout: post +permalink: /2010/12/survey/ +categories: + - 我说 +tags: + - 调查 +--- +敬告:希望大家尽量不要模仿或者学习这种做法,它是很不好的行为。 + + 这是我 以前做哪些调查问卷所有的办法,因为我发现如果我不用哪些方法的话90%的条件都不满足,自然会被剔除掉。所以我为了能够抓住尽可能多的机会,于是……哈哈哈,你知道的。 + +

    + +

    + + 大概说一下吧,首先呢,在你开始调查之前,发布调查方都会先叫你填一些问题,以确保你满足调查的条件。我想如果我们大家都完全正确地填写,恐怕没有多少人是满足那个条件的。 + + 比如说,通常首先是问你所在地,如果你是在西部或者中部的一些小县城的话,这个真实填的话,恐怕没什么机会了吧。 + + 再者如果你是20岁以下的童鞋,想参加调查,如果你直接写真实年龄,恐怕绝大多数的调查你又不满足了。 + + 下面就说说做调查的“技巧“也就是如何做到满足调查所需条件。 + + 如果网站给你发的调查邮件里面包含了调查信息,比如说“我们这次调查时配合某某什么公司所做的调查”,那么你就需要分析以下这个公司的性质,和可能生产的产品信息和资料,和使用对象,你在后面填写就需要向那些信息靠近。 + + 如果邮件里面没有涉及相关信息,那么你在填写的时候,如果需要你填入居住的城市,那么请尽量选择大城市,以获得更多的机会。如果给你一个列表问你是否有家属在以下公司工作,这个一般都需要填没有。否则你的机会可能就少一些了。 + + 一般调查公司调查的问卷会把自己的产品和其他公司的同类产品作比较,所以你在比较的时候就需要分析,思考,大概猜出这是什么为什么公司做得调查,什么类型的产品。 + + 如果你做到以上几点,应该选择你的概率至少会增加一倍吧。 + + + + \ No newline at end of file diff --git a/source/_posts/2010-12-20-wordpress-christmas.md b/source/_posts/2010-12-20-wordpress-christmas.md new file mode 100644 index 0000000..13d2d78 --- /dev/null +++ b/source/_posts/2010-12-20-wordpress-christmas.md @@ -0,0 +1,42 @@ +--- +title: 让你的wordpress圣诞也飘雪吧 +author: wahyd4 +excerpt: | + | + 虽然可能中国的童鞋不怎么过圣诞节吧,但是笔者还是看到很多网站,在圣诞到来之际,挂出了越来越多的和圣诞节相关的小挂件。 + + 所以我也想在圣诞节附近在自己的博客上让他飘一点小雪花吧。 +layout: post +permalink: /2010/12/wordpress-christmas/ +categories: + - 头条推荐 + - 编程之美 +tags: + - wordpress + - 插件 +--- +虽然可能中国的童鞋不怎么过圣诞节吧,但是笔者还是看到很多网站,在圣诞到来之际,挂出了越来越多的和圣诞节相关的小挂件。 + +所以我也想在圣诞节附近在自己的博客上让他飘一点小雪花吧。 + +要实现 这个小小的功能,我们需要的是就是安装一个Snow, balloons and more 的wordpress插件,就可以实现所有的功能。 + +插件名称:Snow and more    插件官方下载地址:点我吧 + +这个插件功能相当强大,当然这需要你自己设置一些东西,当然也可以傻瓜式的,只稍选择一点东西就可以啦。 + +

    + +

    + +安装插件后,在如图插件的的界面,设置你想要在网页显示的图片。有GIF何PNG设置,但是PNG图片在IE6下面是不能正常显示的,需要注意,更高级的是你还可以设置自定义图片,作为在网页的显示。 + +其他的高级选项你可以根据适当修改。 + +**Stop snow after how many seconds?     这个如果你不设置默认是20秒后关闭,可以自己设置。** + +** ** + +**Hide the “Powered by” message in the footer?(隐藏页底的插件相关信息)  这个默认是NO,请注意,这个需要改为YES,这样页底就没有插件的相关信息了。** + +更多的功能,大家就自己试着调试吧。 \ No newline at end of file diff --git a/source/_posts/2010-12-23-c-plus-link.md b/source/_posts/2010-12-23-c-plus-link.md new file mode 100644 index 0000000..fd2eba1 --- /dev/null +++ b/source/_posts/2010-12-23-c-plus-link.md @@ -0,0 +1,28 @@ +--- +title: C++实现顺序链表所有操作代码 +author: wahyd4 +excerpt: | + 今天从早上到现在的时候,我终于把顺序单链表的所有操作搞熟悉了,建立,插入,删除,排序,查找,打印,遍历。 + + 现在就附上代码吧,如果觉得有用就拿去吧,代码却对正确,已经在visual studio 2010 调试通过。 +layout: post +permalink: /2010/12/c-plus-link/ +categories: + - 编程之美 +tags: + - c++ + - 代码 +--- +今天才开始复习数据结构,而且这本书复习起来很慢啊。但是还是不得不复习。 + +今天从早上到现在的时候,我终于把顺序单链表的所有操作搞熟悉了,建立,插入,删除,排序,查找,打印,遍历。 + +现在就附上代码吧,如果觉得有用就拿去吧,代码却对正确,已经在visual studio 2010 调试通过。 + +
    + C++语言: 临时自用代码 +
    + +
    + 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 } +
    \ No newline at end of file diff --git a/source/_posts/2010-12-23-youdao-dict.md b/source/_posts/2010-12-23-youdao-dict.md new file mode 100644 index 0000000..525f890 --- /dev/null +++ b/source/_posts/2010-12-23-youdao-dict.md @@ -0,0 +1,38 @@ +--- +title: 有道词典4.0 +author: wahyd4 +excerpt: | + 最近国外著名大学的开放课程很受很欢迎,谁都想和这些占一点边,这不网易前面做了一个视频公开课免费在线观看,很受大家的欢迎,最近有道词典推出4.0的beta版本,里面也增加了国外大学开放课程的视频的音视频原句例句功能。这些那些例句从此变得就不那么枯燥无味了。 + + 有道官方说: 全新视频例句功能,收录国际名校公开课以及欧美经典影视作品的视频例句,体验纯正英语。 + + 来自英语广播原音重现的音频例句,地道权威。 +layout: post +permalink: /2010/12/youdao-dict/ +categories: + - 酷玩软件 +tags: + - 有道 +--- +最近国外著名大学的开放课程很受很欢迎,谁都想和这些占一点边,这不网易前面做了一个视频公开课免费在线观看,很受大家的欢迎,最近有道词典推出4.0的beta版本,里面也增加了国外大学开放课程的视频的音视频原句例句功能。这些那些例句从此变得就不那么枯燥无味了。 + +有道官方说: 全新视频例句功能,收录国际名校公开课以及欧美经典影视作品的视频例句,体验纯正英语。 + +来自英语广播原音重现的音频例句,地道权威。 + +60万专业词汇标注,词条覆盖200个学科领域。 + +当我们输入**human**的时候,我们在例句那一栏里面就可以看多多了这样的原声例句的功能。 + +

    +

    + 而且我们点击视频,就可以直接播放,不用再打开浏览器了。 +

    + +

    +
    更多的的新的功能,就请大家自己试用吧。 +

    + +

    + 下载地址:点我下载 +

    \ No newline at end of file diff --git a/source/_posts/2010-12-27-google-public-dns.md b/source/_posts/2010-12-27-google-public-dns.md new file mode 100644 index 0000000..63040f1 --- /dev/null +++ b/source/_posts/2010-12-27-google-public-dns.md @@ -0,0 +1,68 @@ +--- +title: 使用Google public DNS加速网站访问 +author: wahyd4 +excerpt: > + 如果你也出现了一下问题:本来一些网站的域名存在,可是你缺被莫名其妙的引导到电信的114页面或者联通的什么页面。或者你访问一些网站时 + 他告诉你 网站不能打开,或者显示的不是正常的网页。 +layout: post +permalink: /2010/12/google-public-dns/ +categories: + - 我说 +tags: + - DNS +--- +如果你也出现了一下问题:本来一些网站的域名存在,可是你缺被莫名其妙的引导到电信的114页面或者联通的什么页面。或者你访问一些网站时 他告诉你 网站不能打开,或者显示的不是正常的网页。 + +那么这些都可能是DNS 的问题。如果我们自己不做修改的话,你联网的时候是默认使用电信运营商的DNS解析。比如电信,或者联通他们自己的。这些dns 平时可能看不出来有什么问题,也许一到关键时刻就出篓子。 + +这两天我自己是真正遇到了这些问题。一个学院的网站域名我一直打不开。只有偶尔有时候才可以打开。让我一直觉得是网站服务器的问题,可是经过老师解答之后才发现时DNS解析的问题。 + +今天就给大家推荐使用google public DNS解析。比起其他的DNS解析来说google更加权威。给你带来更快的网站访问速度。还可以提高安全性。因为众所周知google在全球都有自己服务器。 + +google public dns + +那好下面就让我们在动手设置DNS。因为我的电脑是windows 7环境 所以就设置win 7吧。 + +首先**打开 网络和共享中心(就在右下角的网络菜单栏)** + +**然后选择你现在说很使用的网络。 点击连接后面的。** + +

    + 点击进入之后,你将看到如下界面 +

    + +

    + 然后点击属性,进行设置 +

    + +

    + 找到internet 协议版本4 tcp/IP.然后点击属性进入设置 +

    + +

    + 选择使用下面的DNS服务器地址。 +

    + +

    + 在DNS 服务器里面按照图片所示填入:  8.8.8.8 +

    + +

    + 备用里面填入:8.8.4.4 +

    + +

    + 然后点击确定,就可以啦。 +

    + +

    + 现在断开网络,重新连接,试试。 +

    + +

    + 是不是以前不能打开的域名地址,现在可以打开了。(当然这里所指的域名是因为DNS关系不能打开) +

    + +**[ ][1] ** + + [1]: /images/2010/12/12-27-1.jpg \ No newline at end of file diff --git a/source/_posts/2010-12-29-leave-me.md b/source/_posts/2010-12-29-leave-me.md new file mode 100644 index 0000000..14e41d6 --- /dev/null +++ b/source/_posts/2010-12-29-leave-me.md @@ -0,0 +1,27 @@ +--- +title: 超感人短片 :让我留下 Leave me +author: wahyd4 +excerpt: | + > + 一切都是爱的伟大,不管是父爱还是爱情。我们一直在体验着 +layout: post +permalink: /2010/12/leave-me/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - 下载 + - 免费 + - 视频 + - 高清 +--- +最新说明:视频不能在线看了,被和谐了,真悲剧,这个也会被和谐!大家下载吧 + +**完整下载: RMVB下载 高清下载 迅雷,电驴皆可** + +> 一切都是爱的伟大,不管是父爱还是爱情。我们一直在体验着 + +**中文片名: 让我留下 英文片名: Leave Me 国家地区: 美国 影片类型: 剧情片 资源格式: HR-HDTV,RMVB 上影时间: 2009 导 演: Dustin Ballard 主 演: Ryan Dunlap Mark Gullickson Sarah Van Eman Christopher Akers ** **对白语言: 英语 字幕语种: [中英][1]介绍:** [][2] 以下内容来自豆瓣网 ** ** 我相信它不是一个佳能的广告,它也没得过广告奖。 他在手心写下LEAVE ME。那是他自后一张照片。 他在相机的内存里狂奔大叫,告诉端着相机的父亲“请前进!往前!!”当他发觉自己可以选择呆在那一张相片的时间和地点里的时候,其实一切都确定了。他带着自己的身体踩着相片的时间一路向着她跑过去,向着已经和时间没有关系的他的爱人。 在她死去之后,他不知道可以用它拍什么。他端着相机好像揣着自己无所是从的心情。于是他让父亲拍了自己,他竟然神奇的到了相片的时间里。 起初只是风景,我可以感受到当这个镜头为一项对准聚焦的那个笑容被带走之后,镜头后的那双眼睛有多空旷绝望,连景色都跟着一起单色调。广场,树林,水坝。 因为父亲不小心的操作,他发现自己可以乘着相片的时间回去。于是就如开始所说,他大叫着向着时间深处跑去。在河边停了下来。那时候的她有健康的肤色和眼神。问他,亲爱的你在干什么?他害怕让现实打扰到这个世界,定格,却又那么真实的流淌着。他回过头去,透出钢笔飞快地写。他的父亲对着显示频开始流泪。 LEAVE ME。 他把两个世界的人都留下了。 Leave me 。留下我,离开我。 在小王子要离开飞行员而死去,或是“回去”的时候,他也是这么对飞行员表达,用超越孩子的安定。 对留下的人是离开,对离开的人是挽留。 介绍来自: + + [1]: http://yyets.net/?mod=2&ac=search_result&op=normal&class=subtitle&keyword=Leave%20Me + [2]: /images/2010/12/12-29-61.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-06-generate-favicon-ico.md b/source/_posts/2011-01-06-generate-favicon-ico.md new file mode 100644 index 0000000..bd9fac5 --- /dev/null +++ b/source/_posts/2011-01-06-generate-favicon-ico.md @@ -0,0 +1,49 @@ +--- +title: 在线生成favicon.ico网站图标 +author: wahyd4 +excerpt: | + 所谓favicon.ico就是我们平时所说的网站图标,即是你在浏览器里面看到关于网站的样子即图片里面所示,其实这个图片一般是不好生成的,因为她不是传统的.jpg 或者.png/.gif格式的图片。 + + 一般网站的favicon的图片分辨率是16*16 或者32*32或者更高的48*48,在这里我们比较推荐采用32*32的格式。 + + 今天要给大家分享和推荐的是一个在线生成favicon.ico的wang网站,你可以自己在网站里面使用类似于windows 画图板的工具进行创作,就可以了。你当然也可以使用普通照片少做修改就可以做成favicon.ico了。 +layout: post +permalink: /2011/01/generate-favicon-ico/ +categories: + - 我们爱分享 +tags: + - favicon + - 免费 +--- +所谓favicon.ico就是我们平时所说的网站图标,即是你在浏览器里面看到关于网站的样子[][1]即图片里面所示,其实这个图片一般是不好生成的,因为她不是传统的.jpg 或者.png/.gif格式的图片。 + +一般网站的favicon的图片分辨率是16*16 或者32\*32或者更高的48\*48,在这里我们比较推荐采用32*32的格式。 + +今天要给大家分享和推荐的是一个在线生成favicon.ico的wang网站,你可以自己在网站里面使用类似于windows 画图板的工具进行创作,就可以了。你当然也可以使用普通照片少做修改就可以做成favicon.ico了。 + +下面我们就稍微详细介绍一下吧: + +首先进入X-icon网站,这个网站可能需要IE6以上的浏览器,在这里推荐使用chrome或者firefox等浏览器吧。 + +1.使用照片进行创作:进入网站后选择**Import**,然后上传你想要的图片文件,然后进行裁剪或者缩放等等。实际操作如下图 + +[][2]点击OK之后,你还可以通过类似画图板的工具,自己进行创作。 + +2.自己创作:你可以使用刷子、铅笔、文字、橡皮擦、椭圆和矩形等工具,进行创作,操作其实很简单的,具体的就不再细说,给一张我作的favicon.ico图吧。 + +[][3]个人感觉还不错的,这个工具,通过它,制作favicon就很简单了。 + +没有设置博客favicon的童鞋试试吧。 + +设置favicon: + +> 在网页****标签里插入这两句话就好了,如果是wordpress,就在head.php里面插入这两句哈,当然请注意文件的相对地址或者绝对地址。 +> +> +> +> +> X-icon地址: + + [1]: /images/2011/01/1-6-5.jpg + [2]: /images/2011/01/1-6-6_conew1.jpg + [3]: /images/2011/01/1-6-4_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-06-online-print-photos.md b/source/_posts/2011-01-06-online-print-photos.md new file mode 100644 index 0000000..5aa4d5e --- /dev/null +++ b/source/_posts/2011-01-06-online-print-photos.md @@ -0,0 +1,63 @@ +--- +title: 在线冲印照片,相册,创意冲印 +author: wahyd4 +excerpt: | + 笔者很早以前就看到有人推荐说网上冲印很便宜,而且效果还不错。可是我自己却没有亲身经历试过。 + + 前不久,我自己终于如愿以偿在网易印象派在线冲印了照片。 + + 我冲印的是6寸的照片,他有几种尺寸大小可以供大家选择,关于相纸有富士的和柯达的相纸,柯达的较贵,具体的如下图所示。 +layout: post +permalink: /2011/01/online-print-photos/ +categories: + - 我们爱分享 +tags: + - 冲印 + - 打折 + - 网易 +--- +[][1] + +笔者很早以前就看到有人推荐说网上冲印很便宜,而且效果还不错。可是我自己却没有亲身经历试过。 + +前不久,我自己终于如愿以偿在网易印象派在线冲印了照片。 + +我冲印的是6寸的照片,他有几种尺寸大小可以供大家选择,关于相纸有富士的和柯达的相纸,柯达的较贵,具体的如下图所示。 + +

    + +

    + +

    + 我自己冲印了100张照片,从效果来看,0.45的富士纸张上,的确质感要粗糙一些,不过相片的颜色真的没话说,特别真实,艳丽,我个人感觉比在电脑上看到的感觉还好。 +

    + +

    + 不过需要抱怨的是,最近正值年关,快递也变慢递了,那个申通快递从杭州到成都整整花了7天的时间,不过是免邮费的哦,不知道可不可以换其他快递呢。 +

    + +

    + 除了,在线冲印照片以外,网易印象派,还有台历和挂历的制作,照片书,纯实木照片墙、画册、杯子、lomo相片、木版画、创意集等等。 +

    + +

    + 这里网易印象派有一个折扣码YXP7,所有的个性洗印均7折,截止日期是1月10日,需要的赶紧拉。 +

    + +

    + 我这里还有一个打折卡,SCTY10所有的都可以抵消10块钱哦,截止日期是4月30日,需要的童鞋快来吧,只能使用一次哦。 +

    + +

    + +

    + +

    + 个人感觉网易印象派还是很给力的。 +

    + +

    + 地址:网易印象派 +

    + + [1]: /images/2011/01/11-1-6-3.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-07-the-city-in-the-future.md b/source/_posts/2011-01-07-the-city-in-the-future.md new file mode 100644 index 0000000..07ff487 --- /dev/null +++ b/source/_posts/2011-01-07-the-city-in-the-future.md @@ -0,0 +1,41 @@ +--- +title: wordpress 主题:未来之城v4.0 +author: wahyd4 +layout: post +permalink: /2011/01/the-city-in-the-future/ +categories: + - 我们爱分享 +tags: + - wordpress + - 下载 + - 主题 + - 免费 +--- +这是一款非常漂亮的wordpress免费主题,适合于CMS类型的博客,集成了首页的幻灯展示。笔者以前曾用过该作者的3.0的主题,很好用。很大气,整体浅绿色,很醒目的感觉。 + +刚才去作者的网站,又发现他新出的主题 未来之城 4.0,首页集成了幻灯展示和自动截断。自动生成缩略图插件 + +注意:实现首页幻灯需要:hello flash + +自动截断插件 + +easy digg插件 + +thumbnail 插件 + +所幸的是所有的这些插件都在下载包里面集成了,大家使用的时候分别上传就好了。 + +不要直接将压缩包上传,因为里面不只是主题,还有插件。 + +网站效果,看图: + +

    + 分类列表页: +

    + +

    + 下载: +

    + +点我下载 +主题所有权利归未来之城所有,点击进入原主题发布页面 \ No newline at end of file diff --git a/source/_posts/2011-01-08-linux-tutorial.md b/source/_posts/2011-01-08-linux-tutorial.md new file mode 100644 index 0000000..5f31b9d --- /dev/null +++ b/source/_posts/2011-01-08-linux-tutorial.md @@ -0,0 +1,39 @@ +--- +title: 马士兵Linux视频教程 +author: wahyd4 +layout: post +permalink: /2011/01/linux-tutorial/ +categories: + - 各类教程 + - 头条推荐 +tags: + - linux + - 下载 + - 教程 +--- +> 不知道各位童鞋是否知道马士兵老师,不知道的可以百度或者google一下。去年这个时候我刚学java的时候,那时没有买相关的书,就是一点一点,一天一天地看马士兵老师的java视频教程学习的。虽然他的J2SE的教程是06年录的,不过一点也不影响什么,毋庸置疑地说,马士兵讲的真不错,而且时常还表现出很幽默的的特点。 + +[][1] +今天给大家分享的就是马士兵老师的java系列视频教程里面的,轻松学习Linux视频教程,我这几天正在看这个教程,他里面使用的linux版本是redhat,但是如果你现在使用的ubuntu版本也完全没有关系。绝大多数linux命令行都是一样的,而且ubuntu现在使用范围也很广。 + +整个视频教程共25讲,里面布置囊括linux的知识,还大概讲了计算机操作系统的知识,比如说磁盘管理和windows比较啊。几乎全都是从零开始讲的,没有学过的童鞋可以好好学习学习了! + +**内容:** + +linux安装 + +linux文件系统    硬盘分区 + +linux文件目录      bin    etc   boot  dev + +linux基本,常用命令   创建/删除目录, 创建删除文件   复制/移动文件目录  vi文本编辑器   cat、 more、find、where + +Linux 管道、重定向 + +linux软件安装    vsftp安装及配置 、tomcat、java  jdk安装 + +你还可以看看我们曾经分享过的Linux视频教程(ubuntu版本的,适合初学者,大牛跳过。) + +**视频下载:点我下载(该链接为电驴下载地址,你可以使用电驴或者迅雷进行下载。文件为压缩包。)** + + [1]: /images/2011/01/1-8-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-08-wang-zhen-fei.md b/source/_posts/2011-01-08-wang-zhen-fei.md new file mode 100644 index 0000000..9a633b9 --- /dev/null +++ b/source/_posts/2011-01-08-wang-zhen-fei.md @@ -0,0 +1,23 @@ +--- +title: 王振飞:用程序写出来的建筑 +author: wahyd4 +layout: post +permalink: /2011/01/wang-zhen-fei/ +categories: + - 视频/音乐分享 +--- +[][1] + +这个视频是在优米网里面的创新中国看到的,这个建筑师将计算机领域里面的一些知识运用到了建筑学,通过计算机生成一个“工具箱”,而工程师只要将一些限制条件和设计需求等等输入计算机,我们就可以让计算机为我们产生很多种不同的方案,而我们只需要从其中挑选出比较好的,而我们人类在面对一个问题时,往往只会有较少的一种或者几种想法,如果我们的想法都不好呢?那不就只有重新来了吗。 + +正如设计师在视频里面讲的:**咱们说说这创新的概念,我个人的理解,创新这个事它不是说您非得做一个前无古人,后无来者的一个研究,其实一个思维方式的转变、一个知识的整合都可以是创新,实际上我们所做的事无非是把其他的学科看起来根本就完全不起眼的知识,把它挪到建筑学科来,然后做一个转化,让它帮助建筑师来产生一个不一样的设计,如果没有这个其他知识的转化的话,建筑师本人不会这样思考,在做创新的时候把这个脑子稍微放开一点,看看其他人在干什么,看看其他学科的发展,其他学科的某一个进步可能会对你自身的一个学科,产生一个根本性的革命。** + +**[][2] +** + +其实我们老师也曾这样讲过,大学和研究生阶段其实完全可以选择不一样的学科。将来将两者一起运用到其中的某一个方面,往往都会有很好的效果,比如大学读计算机系,研究生读建筑学相关的。那你不就成了学计算机里面搞建筑设计是比较好的,学建筑设计里面,计算机又是比较好的,无形之中就比其他人多了许多机会。 + +工作也一样,就像视频里设计师讲的,将计算机学里面也许不起眼的知识运用到建筑学里面,也许就会产生质的飞跃。 + + [1]: /images/2011/01/1-8-3_conew1.jpg + [2]: /images/2011/01/1-8-4.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-09-cbox.md b/source/_posts/2011-01-09-cbox.md new file mode 100644 index 0000000..591c0a0 --- /dev/null +++ b/source/_posts/2011-01-09-cbox.md @@ -0,0 +1,30 @@ +--- +title: Cbox:2011亚洲杯在线观看 +author: wahyd4 +layout: post +permalink: /2011/01/cbox/ +categories: + - 头条推荐 + - 酷玩软件 +tags: + - 电视 + - 软件 +--- +> 现在的P2P视频播放软件比比皆是,然而我推荐Cbox并不是因为他的电影多么丰富,还有很多高清电影,而是把它作为一个互联网电视的客户端,我们可以在线免费看到众多电视台的标清和高清直播,还有电视节目电视剧点播服务,而最新的服务这是节目回放功能,帮你看你最近漏过的节目。 + +[][1]如图所示,为Cbox的软件截图。 + +做过中国监管电视的官方机构,开发的软件的确有很多优势,首先看直播它拥有其他客户端无可比拟的权限,因此几乎所有国内的卫视电视台你都可以在这里找到,此外你还可以找到很多省会城市的城市电视台,真实一些比较小的城市电视台也有比如**延边卫视**。而且任何电视台的直播都有两种视频讯号输出,分别是**标清**和**高清**。标清适合1M一下宽带播放,高清适合1M及以上宽带播放。高清真的播放效果很棒。不好的是直播里面没有**凤凰卫视**的节目,而在点播里面有凤凰卫视的部分节目。 + +作为最近正在上演的**2011亚洲杯**,当然作为中国球迷的我们当然不能错过这个机会,使用Cbox来看视频在方便不过了。只要选择CCTV5,CNTV体育台就可以啦。 + +其次就是点播节目了,个人感觉点播节目里面对于地方卫视的节目收录不是很全,但是对于央视的每个节目几乎都收录了,所以如果你想看CCTV2**商道**、CCTV10**百家讲坛**,那就再好不过了,作为一个童鞋,寝室不可能有电视,对于我很喜欢的商道,我只有在这上面看了,在其他地方也找不到。 + +最后就是Cbox最新推出的功能,电视回放功能,可以帮你回放最近的节目,比如昨天的什么比赛。你只要在直播的频道里面选择昨天,在你错过的节目下方就会出现一个**点击观看回放**的链接,点击就可以欣赏啦。具体如下图所示: + +[][2]在文末需要说明的是,当然Cbox里面还可以看很多电视剧,这些都是正版的,但是可能最新的电视剧没有。还有使用直播功能还是会有一个缺点,因为是P2P软件,**必定会有2分钟左右的延迟**,这点事看电视说没有的,大家只能克服了。 + +**软件下载:官方下载地址 (如果不能下载,请进入官方网站下载最新版本)** + + [1]: /images/2011/01/1-9-1_conew1.jpg + [2]: /images/2011/01/1-9-2.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-10-filezilla.md b/source/_posts/2011-01-10-filezilla.md new file mode 100644 index 0000000..26c4596 --- /dev/null +++ b/source/_posts/2011-01-10-filezilla.md @@ -0,0 +1,48 @@ +--- +title: Filezilla:全平台开源免费ftp客户端 +author: wahyd4 +layout: post +permalink: /2011/01/filezilla/ +categories: + - 酷玩软件 +tags: + - ftp + - 下载 + - 免费 + - 开源 +--- +> 也许你还在使用破解的老版本cuteftp、flashfxp。如果你想找一款在Mac、linux下也能使用的,也许你还在抱怨你的ftp客户端不支持sftp://链接,亦或是你没用用到好用的免费的ftp客户端软件。那么今天我推荐大家使用这ftp软件:Filezilla. + +[][1] + +Filezilla使用著名开源软件基金会Mozilla提供的开源的ftp客户端,支持所有平台,包括windows 、Mac、Linux平台。现在全世界很多人都在使用这款软件,也许我们国内的童鞋可能还在使用前几年比较流行的cuteftp或者flashfxp但是我们都是使用的老版本,而且还是破解不完全的,像笔者以前曾经使用的cuteftp版本,就经常被识别是盗版,于是我不得不重新启动该软件,甚是麻烦。软件截图如下: + +

    + 该软件有如下几大优点: +

    + +

    + 1.完全免费,而且是著名开源企业的产品,你不用担心产品的性能很不好,或者存在很多bug,经笔者长期使用,个人感觉上传、下载、响应速度都是相当快的,特别是当你尝试后不使用ftp,ftp已经掉线的时候,你再次使用它,它的响应几乎和没有掉线差不多,这是我以前使用其他ftp所没有感觉到的。 +

    + +

    + 2.当然在上传或者下载时候也支持拖拽功能,比如你想上传某个文件,你不必再ftp里面打开那个文件夹,而只用在windows资源管理器里面找到文件,直接拖拽到你想上传到的服务器相应文件夹即可,下载的时候操作类似。 +

    + +

    + 3.支持sftp://链接,现在有些公司或者机构为了安全已经只能使用stp://链接登陆ftp服务器了,一般传统的ftp不支持或者支持的不是很好,这个时候你在Filezilla里面只用在链接前面添加 sftp://或者在端口后面输入22即可。 +

    + +

    + 更多好功能,请各位自己慢慢体会吧。 +

    + +

    + 下载地址: windows Mac Linux (如下载链接失效,请留言告知,或者进入官网下载) +

    + +

    + 注:在Linux命令行下 还可以使用  apt-get install filezilla  进行自动下载。 +

    + + [1]: /images/2011/01/1-100H61202480-L_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-10-use-your-eos-take-video.md b/source/_posts/2011-01-10-use-your-eos-take-video.md new file mode 100644 index 0000000..48e5e56 --- /dev/null +++ b/source/_posts/2011-01-10-use-your-eos-take-video.md @@ -0,0 +1,51 @@ +--- +title: 用你的佳能EOS相机拍摄视频吧 +author: wahyd4 +layout: post +permalink: /2011/01/use-your-eos-take-video/ +categories: + - 我们爱分享 +tags: + - canon + - 视频 +--- +不知道你是否曾想过:如果一种东西既能照相也能拍视频,而且效果还很好,这不就节约很多钱了吗。也许你和我之前都一样,不知道佳能(Canon)EOS系列单反相机的高清视频拍摄效果也很好。那请您今天和我一起来了解了解吧。 + +注:本篇文章,大量文字及图片来自Canon官方网站 + +为了拍摄视频这里我们假设你已经拥有佳能EOS以下相机(EOS 1D MARK、EOS 5D MARK、EOS 550D、EOS 500D、EOS 7D、EOS 60D)中的一部。 + +当然拍摄视频最简单最简单的装备哦就是相机、镜头、存储卡,好了你只有拥有这几样就可以开始最简单的拍摄了,官方推荐的必备配置是: + +[][1] 拥有上面官方推荐的设备你可以拍出更好的效果。 + +好了下面就开始拍摄吧,你需要以下操作: + +如图所示图片的依次操作分别是: + +旋转拍摄模式转盘,将其对准短片拍摄模式。 + +1. **按下MENU(菜单)按钮,调出短片功能菜单1,如果不进行特殊设置,保持原有设置即可。** +2. **通过十字键或主拨盘来显示短片功能菜单,将短片曝光设置为手动。** +3. **短片拍摄方式的对焦方式基本采用手动对焦。因此将镜头的对焦方式设置为手动对焦模式。** +4. **按下ISO感光设置按钮,将感光度设置为自动,这样即可不必为ISO感光度的设置而困扰了,十分方便。** +5. **一边通过曝光量指示标尺确认曝光,一边设置光圈值和快门值和快门速度,建议将快门速度设置为1/50-1/100秒。** +6. **进行精确对焦时可按下放大按钮,这样即可使用5倍或者10倍放大显示的影响进行确认,十分便利。** +7. **按下短片拍摄按钮,即可开始短片拍摄。** +8. **当然拍完之后你要再次按下拍摄按钮,关闭拍摄。** + +持机拍摄的时候,应当尽量保持持机的稳定性,这样才能防止拍摄的时候过度抖动,具体的做法是拍摄的时候不要过度用力握住相机,包保持轻松,水平拍摄时,要保持相机和地面水平。转动拍摄的时候,要注意尽量使转动的速度一致,以保持视频的连贯性,而且转动的同时还是始终要让主角停留在画面的中心位置。如果只是手持机,可以在部分支持的相机上开启防抖功能,有一定的帮助。 + +光说是不行了,还给大家高人讲的视频,可能是Canon官方付钱做的吧,不过真的很不错,讲的很生动的。会让各位童鞋增加很多对使用佳能相机拍摄视频的欲望。(老实说,笔者已经很想买佳能550D了,只是苦于没钱啊,那东西还是比较贵的,有愿意赞助的吗?有的话就谢谢了。哈哈!) + +视频拍摄好之后就建议大家使用 Adobe Premiere 视频剪辑软件进行剪辑,不懂的同学可以在网上找找相关的视频。 + +下面是EOS MOVIE 系列讲座的视频,是在优酷上的,大家看看吧,下面提供第一集的视频,其他的给链接,大家猛击吧。第一集是大概讲解。 + + + +第二集 第三集 第四集 + +点击这里观看更多EOS MOVIE拍摄的高清视频 + + [1]: /images/2011/01/1-10-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-13-google-chrome-app-extensions.md b/source/_posts/2011-01-13-google-chrome-app-extensions.md new file mode 100644 index 0000000..7a12b0d --- /dev/null +++ b/source/_posts/2011-01-13-google-chrome-app-extensions.md @@ -0,0 +1,69 @@ +--- +title: 又两个Google Chrome app浏览器扩展 +author: wahyd4 +layout: post +permalink: /2011/01/google-chrome-app-extensions/ +categories: + - 酷玩软件 +tags: + - chrome + - 下载 +--- +> 两个月以前吧我曾经写过一篇几款google chrome浏览器扩展程序(app),在网上看到大家的点击还很多,看来大家对这方面的需求是挺多的,一方面很欣慰google 浏览器在中国发展得很快,另外一方面也可以看出大家对浏览器的需求已经不仅仅是可以上网这一说了。那么今天就继续为大家推荐几款很不错的google  chrome app浏览器扩展程序。 + +[][1] + +1.豆瓣电台扩展。 + +相信大多数同学用过网页版本的豆瓣电台吧,在这里还是简单介绍一下吧,豆瓣电台说白了就是一个类似于收音机的东西,你可以用它听音乐,可以对音乐进行上、下一首选择,它播放的音乐是系统产生的,当然它有几种类别的电台供你选择可以分华语、粤语、英语、民谣,以及按照年代分的70、80、90年代,还是你的私人电台(需要你用豆瓣账号) + +[][2] + +

    + 如图所示为豆瓣电台扩展图片 +

    + +

    + 当你安装此插件之后,在google chrome 浏览器的地址栏后面会出现这样一个图标,点击它即可弹出豆瓣电台的窗口,从此听豆瓣电台就是如此easy.点击心形图标即可收藏,点击播放区域即可暂停歌曲。无聊的时候就打开豆瓣电台听听音乐吧。 +

    + +

    + 下载地址: 官方下载 +

    + +

    + 2.新浪微博扩展程序 +

    + +

    + 还记得我们以前曾经推荐过的新浪微博客户端wing吗?那个那个是基于adobe air开发的应用,于是你需要安装air的运行环境,而现在这个微博插件就不需要了,需要的只是你有google chrome 浏览器。 +

    + +

    + 如图所示为插件安装完毕后点击展开微博的图片 +

    + +

    + 通过这个微博插件图片我们可以看到,这个微博的功能还是很强大的,支持微博转发、评论、收藏、新消息、还可以写新微博。新微博里面你可以分享任意当前页面,即使这个页面没有新浪微博的分享按钮。这个功能是不是很爽呢? +

    + +

    + 如图所示为写新微博的界面。只要勾上分享浏览器当前页面即可。 +

    + +

    + 此外你还可以通过选中扩展右键选择选项菜单即可设置更多功能,可以对字体进行设置,还可以选择刷新频率,还可以设置桌面提醒功能,选择这个功能,那么有微博来的是会,桌面底部会弹出一个小窗口告诉你,不过不好的是这个小窗口不会自动关闭。 +

    + +

    + 下载地址:官方下载 +

    + +

    + 注意:所有的google chrome只能在google的浏览器里面下载安装,才可以运行!如果下载地址失效请留言告诉我们。 +

    + +

    + + [1]: /images/2011/01/1-13-6.jpeg + [2]: /images/2011/01/1-13-1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-15-anngry-birds.md b/source/_posts/2011-01-15-anngry-birds.md new file mode 100644 index 0000000..2f8be6d --- /dev/null +++ b/source/_posts/2011-01-15-anngry-birds.md @@ -0,0 +1,31 @@ +--- +title: 愤怒的小鸟PC版下载 +author: wahyd4 +layout: post +permalink: /2011/01/anngry-birds/ +categories: + - 游戏下载 +tags: + - 下载 + - 免费 + - 游戏 +--- +> 也许你已经玩过这款游戏,或许你还没有听说过这款游戏,不过都没有关系。愤怒的小鸟(Angry Birds)这款游戏最早是android平台上的一款免费的游戏,受到大家的热捧,后来又移植到IOS上,再后来又被移植到了PC上,可以说这是植物大战僵尸之后的又一款令全世界疯狂的游戏。 + +[][1] + +这款游戏主要是利用些许的物理原理吧,我们用弹弓去打那些猪头,而猪头可能是藏在冰块或者木头里面的,就需要我们去用弹弓破坏他们,然后打掉猪头,然而子弹就是小鸟,有几种不同的小鸟可供选择,随着你玩游戏的深入。而我们需要做的就只是,调整弹弓的角度和力度即可,十分有趣的游戏。 + +在android 手机平台上我们用的是手来操作小鸟和力度,而在电脑PC上我们就只能用鼠标来操作了,虽然可能没有触屏手机上那么切身的感受,不够还是很不错的游戏,相信你玩了之后一定会喜欢的。 + +不同的小鸟有不同的特性,和不同的操作方式哦,几种小鸟加起来一定可以让你乐翻天 的!! + +将下载下来的游戏,安装即可运行。 + +这款游戏Alt+Enter窗口游戏模式,如果运行游戏的时候提示分辨率出错,请下载最新的驱动即可。 + +**游戏下载:  点我进入网盘下载** + +注意:你还可以进入360软件管家 ,在里面搜索愤怒的小鸟即可下载,笨软件只有50M。 + + [1]: /images/2011/01/1-15-1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-15-chrome-support-xunlei.md b/source/_posts/2011-01-15-chrome-support-xunlei.md new file mode 100644 index 0000000..88a1be5 --- /dev/null +++ b/source/_posts/2011-01-15-chrome-support-xunlei.md @@ -0,0 +1,49 @@ +--- +title: 让你的chrome也能支持迅雷、电驴、QQ旋风 +author: wahyd4 +layout: post +permalink: /2011/01/chrome-support-xunlei/ +categories: + - 我们爱分享 +tags: + - chrome + - 下载 + - 插件 +--- +> 俗话说得好,当上帝为你打开一扇窗的时候,也许就在另外一个地方为了关上了一道门(貌似是这样说的,嘿)。不过现在上帝可能还为你留下了一道门缝,门也并没有关死。 + +[][1] + +用过chrome(谷歌)浏览器的童鞋都知道,那速度真叫一个快啊,为什么这么多出来google有很好的网页编码核心以外,它还减去了IE浏览器带有的一些东西,这也许也是原因之一,因此我们使用迅雷的时候才会碰到,在chrome里面不能使用迅雷连接,我们只能复制迅雷链接,然后到迅雷里面打开。 + +不过最近情况已经又所改观,迅雷官方已经开发出了一款插件,让chrome浏览器已经右键支持迅雷链接了,这个chrome插件可以在最新版本的迅雷7里面包含。(注:笔者下载的是优先体验版,好像这个版本还没有对公众开放),不过我们还有更好的办法,同样是通过插件,让你的chrome不仅支持迅雷,还支持快车、电驴、QQ旋风等等众多P2P下载软件。这款插件的名字叫做DM-Bridge + +

    + 如图所示为插件设置页面,点击查看大图 +

    + +

    + 依次选择默认下载管理器,这里选择你使用最多的管理器,默认是迅雷,如果你下载一般文档的时候不需要就不用在这里选了。我建议这里可以不用选择,不然你平时不论下载什么都会使用某P2P软件下载,然而有时候有些东西是不支持P2P的多线程的,所以会导致下载失败。因此平时可以将这个插件禁用,待到使用的时候再打开也可以。 +

    + +

    + 启用左键点击下载:这个可以启用,可以直接下载。 +

    + +

    + +

    + +

    + 然后保存就可以了。 +

    + +

    + 现在打开你的chrome浏览器右键观察是不是多了一个外部下载管理器支持。如果有的话,就大功告成啦! +

    + +

    + 下载地址:点我进入官方下载 如果连接失效请告诉我们,下载时请使用chrome浏览器下载。 +

    + + [1]: /images/2011/01/1-15-3.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-19-173vpn.md b/source/_posts/2011-01-19-173vpn.md new file mode 100644 index 0000000..d56050b --- /dev/null +++ b/source/_posts/2011-01-19-173vpn.md @@ -0,0 +1,42 @@ +--- +title: 免费VPN推荐:173VPN +author: wahyd4 +layout: post +permalink: /2011/01/173vpn/ +categories: + - 我们爱分享 + - 酷玩软件 +tags: + - vpn + - 下载 + - 免费 +--- +> 前面我们推荐一款服务免费VPN(Tenacy),我今天偶然发现大家对于这个vpn的需求还是挺大的,于是决定再给大家推荐一款可以使用的免费的VPN—173VPN,当然和我们以前的一样,本身173vpn也不是完全免费,只是可以使用免费的服务,如果我们只是浏览facebook,twitter这些还是足够了,但是如果看youtube这种大流量的访问还是不太好。 + +

    + 如图所示为软件界面 +

    + +这款VPN在国内还是比较好的VPN提供商,因为它有很多的服务器,不管是国内,还是国外。首先你在登录的时候你可以选择联通或者电信的服务器登录到173VPN的服务器端,一获得更快的连接。然后就是输入账号和密码,如果你买了付费的账号当然是用付费的,但是我们这里使用免费的服务。账号和密码都可以在173vpn查到。这里就提供给大家。 + +> **账号:173vpncom** +> +> **密码:173vpncom** + +登录成功之后,你将看到如下界面,这里就可以选择你需要的VPN服务器啦,如果你是浏览facebook,twitter,等美国网站,最好的就是选择美国西部海岸的服务器一获得最快速度,如果你是想到台服或者玩韩国的游戏,那么你就分别选择台湾和韩国的服务器。在你选择服务器之后,点击测速即可测试连接的速度,如果速度在200-300多之间,即为比较好的。 + +[][1]点击连接,成功之后即可最小化该软件,开始你的免费VPN之旅了。 + +你还需要注意以下几点: + +1. 当你使用VPN访问的网站流量很大的,它会提示你超过了最大的限制,如果继续超过300秒程序会中断你的VPN连接。 +2. 使用免费的VPN连接,达到20分钟,程序会自动断开,这时候需要你手动再次连接。(毕竟是免费的,大概也不要期望太高) +3. 本软件不需要安装,下载后将包内的两个文件解压到一个文件夹,点击.exe文件即可运行。 + +当然你也可以购买173VPN的付费账号。 + +总的来说,这款VPN还是挺不错的,我使用了很久!只是有时候可以会出现免费账号用户数饱和的情况,这时候就只能等啦! + +软件下载:官方下载 + + [1]: /images/2011/01/1-19-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-20-update-windows7-to-sp1.md b/source/_posts/2011-01-20-update-windows7-to-sp1.md new file mode 100644 index 0000000..84ce579 --- /dev/null +++ b/source/_posts/2011-01-20-update-windows7-to-sp1.md @@ -0,0 +1,45 @@ +--- +title: 快将你的windows 7升级到SP1吧 +author: wahyd4 +excerpt: ' 作为一个还是比较爱折腾的童鞋,笔者曾在windows 7 RTM版本刚在网上泄露的时候就下载了,系统进行安装,先尝试了一番。最近windows 7 sp1 的最终版本又在网上泄露了,笔者前天晚上已经等不及下载下来进行安装了,经过一天多的使用,确认没有任何和我的windows 7旗舰版 不兼容或者bug,现在和大家分享一下。' +layout: post +permalink: /2011/01/update-windows7-to-sp1/ +categories: + - 我们爱分享 +tags: + - sp1 + - windows + - 下载 + - 升级 +--- +> 作为一个还是比较爱折腾的童鞋,笔者曾在windows 7 RTM版本刚在网上泄露的时候就下载了,系统进行安装,先尝试了一番。最近windows 7 sp1 的最终版本又在网上泄露了,笔者前天晚上已经等不及下载下来进行安装了,经过一天多的使用,确认没有任何和我的windows 7旗舰版 不兼容或者bug,现在和大家分享一下。 + +[][1] + +既然是微软的官方系统升级,当然在升级之前确认的是你的系统是完整的不是网上那些经过修改的系统而且还得是正版的系统(当然通过非正常方式激活为正版的系统也算正版。其他系统笔者没有尝试过可行性。) + +:如何查看你的电脑系统是否为正版:在桌面右键选中计算机点击属性选项,如果在页面下方看到windows 已激活和正版授权的图标即可。 + +然后则是下载升级文件,此次升级分32位(X86)和64位(X64)两种版本,请分别选中适合自己的版本下载升级文件。文件大小为500多M,保内已经包含所有版本的语言文件。 + +> **32位 64位 下载** + +下载好之后就是安装了,因为升级sp1还需要下载官方的一个更新程序(KB976902)才能升级,所以你升级的时候不能断开网络,你需要做的就是点击运行下载好的升级程序就好了,其他的事系统会自动完成,大概一个小时候升级就完成了。如果你看到以下图片说明你的升级已经完成了。 + +[][2]现在我们再次右键选中计算机点击属性,将看到如下信息: + +[][3]没错,你的windows 7已经升级到sp1正式版本了。 + +下面是在百度贴吧看到微软的工程人员说的关于sp1具体更新内容: + +> * 新的远程桌面服务:该功能需要借助Server 2008 R2相关改进(RemoteFX); +> * 更好地支持第三方联合服务高效通信:通过这次更新,Windows 7将支持WS-Federation被动配置协议; +> * 改进HDMI音频设备性能:Windows 7 PC在系统重启后,经常会出现与HDMI音频设备间的连接消失的问题。Windows 7 SP1对此做出了改进,确保二者的连接不再中断; +> * 纠正打印混合方向XPS文档时的行为:部分用户反映,使用XPS Viewer打印同时包含横向、竖向的XPS文档时存在困难,导致整个页面变成了要么全部横向、要么全部竖向的单一模式。SP1已经解决了这一问题。 +> * 热修复和其他漏洞修复:Windows 7 SP1还包括了此前发布的和新的修复补丁。 + +提示:安装sp1后:可在“命令提示符”中键入:”dism /online /cleanup-image /spsuperseded”(不含双引号),即可删除安装SP1期间创建的备份文件。 + + [1]: /images/2011/01/1-20-1_conew1.jpg + [2]: /images/2011/01/1-18-1_conew1.jpg + [3]: /images/2011/01/1-20-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-21-oneiro.md b/source/_posts/2011-01-21-oneiro.md new file mode 100644 index 0000000..242fd2b --- /dev/null +++ b/source/_posts/2011-01-21-oneiro.md @@ -0,0 +1,45 @@ +--- +title: 华丽支持ajax评论、jquery特效、首页幻灯的wordpress主题:Oneiro +author: wahyd4 +layout: post +permalink: /2011/01/oneiro/ +categories: + - 我们爱分享 +tags: + - ajax + - jquery + - wordpress + - 下载 + - 主题 + - 免费 +--- +> 想我两个月前为了找一款支持ajax评论的主题是多么的辛苦,搜遍了网络都没找到好用的。本着分享的精神,也算是推广设计这款Oneiro主题的童鞋,今天就来说说这款优秀的,当然也是免费的,扩展性也是很强的wordpress主题给大家。 + +[][1] + +首先这款主题是一个大学在读的童鞋设计的,(每每想到其他人,再想想自己,总是感觉很惭愧。)我自己在我的另外一个小站junv也已经使用了一段时间了。(当然我自己把它自带的幻灯展示改掉了。)总的来说这款主题真是妙不可言。那位童鞋花了很大的功夫,为这款添加了很多很前卫的功能。不比任何其他付费主题差。 + +下面着重讲这款主题的特性: + +* 自动生成缩略图。 +* 图片的jquery特效展示 +* 支持wordpress的菜单展示 +* 自带评论图标,ajax评论及回复 +* 可特效关闭侧边栏 +* 已经使用引用是漂亮的展示区域。 +* 自带华丽的分页效果 + +其他需要注意的是: + +* 这款主题开发的童鞋在边栏放了一个google 广告,请使用的时候在sidebar.php里面自行去掉。 +* 主题的首页幻灯展示也需要自行添加链接等,或者你可以将自带的幻灯换成我们以前提到过的插件 +* 这款主题日志不支持自动截断, +* 建议大家讲文章的字体换成微软雅黑,已获得更好的阅读体验。 + +最后想说的是:这款主题真的很不错,希望大家不会觉得我很啰嗦。预览,下载请看下面吧。 + +> 主题预览:官方 junv.org +> +> 下载:官方 本站下载 + + [1]: /images/2011/01/1-21-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-22-photoshop-cs4.md b/source/_posts/2011-01-22-photoshop-cs4.md new file mode 100644 index 0000000..452e69b --- /dev/null +++ b/source/_posts/2011-01-22-photoshop-cs4.md @@ -0,0 +1,67 @@ +--- +title: photoshop CS4入门到精通视频教程(完整版) +author: wahyd4 +layout: post +permalink: /2011/01/photoshop-cs4/ +categories: + - 各类教程 +tags: + - photoshop + - 下载 + - 视频教程 +--- +> 也许大家都对PS这东西懂一些,不过要说精通的童鞋可能还是不多吧,趁着有时间的时候,大家还是可以好好学学photoshop的视频教程,无论是处理照片还是画图或者是做网站的设计都会用到。现在随便在google上一搜,photoshop 的视频教程其实很多很多,不过真正质量很高的视频不好找,今天给大家分享的是我自己正在学习的,而且我认为这是我看过的最好的photoshop视频。 + +[][1]这个教程是从最基础的安装软件开始讲起,当然就不存在任何门槛了。本视频教程一共21讲,对应21章,每一章里面一般包括3-4个视频。每一章大概的视频教程时间在1个小时左右。 + +视频的讲解的主要内容有:photoshop 入门、基础操作、图像的选取以及修饰、图像的图层和通道以及滤镜的使用、网页以及平面广告和商业插画的设计。可以试相当全面了。通过视频来看我个人决定这个视频应该是通过图书附赠的教程,不过我在网上没有找到具体是哪本书,如果知道童鞋知道的可以给我说一下。 + +需要说明的是:下载的只包含视频教程,没有包含视频教程里面所附带的素材,大家可以到网上随便找一些素材对照教处理即可,这里推荐网易相册,毕竟我们学习的是技术不是照着老师讲的来。 + +**注:请使用迅雷下载视频,已获得最大速度,直接下载链接可能源地址已经失效。** + +**下载视频:** + +> Photoshop CS4_01.Photoshop CS4快速入门 +> +> Photoshop CS4_02.图像处理的相关知识 +> +> Photoshop CS4_03.Photoshop CS4的基本操作 +> +> Photoshop CS4_04.图像的选取 +> +> Photoshop CS4_05.图像的创作 +> +> Photoshop CS4_06.图像的修饰 +> +> Photoshop CS4_07.使用路径 +> +> Photoshop CS4_08.使用文字对象 +> +> Photoshop CS4_09.使用图层 +> +> Photoshop CS4_10.使用通道 +> +> Photoshop CS4_11.图像色彩处理 +> +> Photoshop CS4_12.使用滤镜完成艺术化效果 +> +> Photoshop CS4_13.3D图像处理 +> +> Photoshop CS4_14.提高工作效率 +> +> Photoshop CS4_15.网页输出 +> +> Photoshop CS4_16.数码照片修饰 +> +> Photoshop CS4_17.平面广告设计 +> +> Photoshop CS4_18.商品包装设计 +> +> Photoshop CS4_19.商业插画手绘创意 +> +> Photoshop CS4_20.建筑效果图后期制作 +> +> Photoshop CS4_21.网页设计 + + [1]: /images/2011/01/1-22-2_conew2.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-22-sparkdaks.md b/source/_posts/2011-01-22-sparkdaks.md new file mode 100644 index 0000000..6f1dcdc --- /dev/null +++ b/source/_posts/2011-01-22-sparkdaks.md @@ -0,0 +1,42 @@ +--- +title: > + 《斯巴达克斯:诸神竞技场》美剧下载(独家提供中英字幕)更新 +author: wahyd4 +layout: post +permalink: /2011/01/sparkdaks/ +categories: + - 视频/音乐分享 +tags: + - 下载 + - 斯巴达克斯 + - 美剧 +--- +> 等等等,等了这么久终于等到了斯巴达克斯的前传–诸神竞技场。今天晚上在人人影视看到了播出的消息,兴奋地立即下载了,虽然第一时间还没有字幕,因为这部美剧实在是太好看了,希望主角的该表没有改变什么。 + +[][1] + +不知道各位童鞋是否看过斯巴达克斯第一季—-《斯巴达克斯:血与沙》,这部美剧实在是太好看了,还是给没看过的童鞋大概说一些吧,这个美剧是以古罗马的奴隶和奴隶主为人物发生的一些故事,通过奴隶竞技,展示了当时的一些东西吧。(恕我笔拙,写不出来很真实的语句来修饰。)但是不得不说斯巴达克斯是一部很成功的史诗性的美剧,和大家以前看到的那些美剧都完全不一样,也从侧面展示了当时社会的蛮荒以及奴隶地方的地下吧。因此电视中有很多很暴力以及本性的镜头,虽然没讲过这样的,不过也从侧面体现了制片方想要达到的真实性。 + +第一季播出后,引起了很大轰动,笔者也是对这部美剧甚是喜欢,不过由于第一季中男主角身患癌症了,于是这一季斯巴达克斯:诸神竞技场就迟迟没有出来。可喜的是,终于在寒假出来了,让喜欢这部美剧的童鞋可以一饱眼福了。 + +附上图片: + +> [][2]**影片下载(请使用迅雷等下载):** +> +> **第一集:点我 内嵌中文字幕** +> +> **第二集:点我** +> +> ** +> ** +> +>
    +> +> **完整下载:请进人人影视** +> +> **附:斯巴达克斯:血与沙 (完整13集,普清,蓝光高清下载) ** + +**这个寒假不在寒冷!大家快去看看吧。** + + [1]: /images/2011/01/1-22-9_conew1.jpg + [2]: /images/2011/01/1-22-10.jpg \ No newline at end of file diff --git a/source/_posts/2011-01-27-good-movie.md b/source/_posts/2011-01-27-good-movie.md new file mode 100644 index 0000000..65130fb --- /dev/null +++ b/source/_posts/2011-01-27-good-movie.md @@ -0,0 +1,58 @@ +--- +title: 好电影推荐一 +author: wahyd4 +layout: post +permalink: /2011/01/good-movie/ +categories: + - 视频/音乐分享 +tags: + - 下载 + - 电影 +--- +> 不知道各位同学有没有这样的感觉,一个假期要是太长了,你会觉得很无聊,感觉没有多少事可以做。其实我们本来是有很多事可以做,需要我们做,但是也许我们惰性远远大于了我们的勤奋。今天我想在这个也许有一点无聊的假期给大家推荐几部很好看的电影,让各位的假期也多一点趣味。顺便提前预祝大家讯新年快乐。当然会给大家附上下载链接啦。 + +## **搏击俱乐部(fight club)** + +导演: 大卫·芬奇
    编剧: 恰克·帕拉尼克 / Jim Uhls
    主演: 爱德华·诺顿 / 布拉德·皮特 / 海伦娜·邦汉·卡特
    类型: 剧情 / 悬疑 / 惊悚
    制片国家/地区: 美国 / 德国
    语言: 英语
    上映日期: 1999-10-15
    + +> 这部电影真的很好看,在看的过程中我甚至都觉得有些纠结,也不知道纠结的什么东西,很多东西有感触却说不清楚,其实这部电影就是讲一个精神有问题的人的故事,总之全部情节都是由它的精神问题引出来的,也许可能你看了一半还不清楚电影讲的是什么,不过一定请你将电影看完。 + +推荐使用迅雷下载:点我 + +## **老无所依**(No Country for Old Men) + +导演: 伊桑·科恩 / 乔尔·科恩
    编剧: 乔尔·科恩 / 伊桑·科恩 / 考麦克·麦卡锡
    主演: 汤米·李·琼斯 / 哈维尔·巴登 / 乔什·布洛林 / 凯莉·麦克唐纳 / 伍迪·哈里森 / 加瑞特·迪拉胡特 / 泰丝·哈珀 / 巴里·柯宾 / 斯蒂芬·鲁特 / Rodger Boyce / 贝丝·格兰特 / Kit Gwin
    类型: 犯罪 / 剧情 / 惊悚
    片长: 122 分钟
    上映日期: 2008-02-21
    + +> 个电影也很比搏击俱乐部还复杂,应该说有几条主线吧,而且每个人看完了应该都会有自己的观点,这部电影还获得了奥斯卡奖。本来我看这个电影最初觉得最主角还是那个牛仔,不过看到后来觉得那个丧心病狂的用高压气枪杀人的杀人犯也许才是主角。而且关于电影的情节和结尾在网上大家都展开了很激烈的讨论,大家可以去网上搜搜。 + +推荐使用迅雷下载:点我 + +## 社交网络(The Social Network) + + + +导演: 大卫·芬奇 +编剧: 阿伦·索尔金 / 本·麦兹里奇 +主演: 杰西·艾森伯格 / 安德鲁·加菲尔德 / 贾斯汀·丁伯莱克 / 鲁妮·玛拉 / 约瑟夫·梅泽罗 / 艾米·汉莫 / Bryan Barter / Dustin Fitzsimons / Patrick Mapel +类型: 传记 / 剧情 / 历史 +片长: 120 分钟 / USA: 121 分钟 + +> 这是一部2010年才出来的电影哦,这个电影主要是国外著名社交网站facebook 的创始人马克·扎克伯格和他创建facebook公司的故事,个人决定这部电影很不错,感受上拍得挺生活,挺真实的,我觉得还带有一些励志的味道在里面吧,当然也让作为一个计算机专业学生的我很受鼓舞。这部电影特别推荐小伙子们看看。 + +推荐使用迅雷下载:点我 + +下面还有两部很不错的电影就不细说了,但是还是给出下载地址吧: + +## 和莎莫的500天 + +很好看的爱情片。 + +**下载地址:点我** + +## [三傻大闹宝莱坞 /三个白痴 /三人帮] + +这部电影是印度拍的,但是我倒觉得比起我们拍的都好看太多了,很有意思的,大家看看吧。 + +
    + +下载地址:CD1 CD2 \ No newline at end of file diff --git a/source/_posts/2011-02-01-happy-new-year-2.md b/source/_posts/2011-02-01-happy-new-year-2.md new file mode 100644 index 0000000..78b6c33 --- /dev/null +++ b/source/_posts/2011-02-01-happy-new-year-2.md @@ -0,0 +1,19 @@ +--- +title: 新年快乐 +author: wahyd4 +layout: post +permalink: /2011/02/happy-new-year-2/ +categories: + - 我说 +--- +后天就是大年初一啦,大家应该都回家过年了吧。 + +在这里祝大家新年快啦,万事如意,感谢大家几个月来对大染志的支持,我会继续努力,做得更好,分享更多好东西给大家,还希望大家继续支持哦。 + +各位过年的时候,吃高兴,玩高兴,喝高兴哦。 + +我在这里也没有什么好送的,就送大家几张好看的壁纸吧。 + +[][1]下载地址:点我下载 + + [1]: /images/2011/02/xuancai-2_conew2.jpg \ No newline at end of file diff --git a/source/_posts/2011-02-01-php-mysql-pdf-download.md b/source/_posts/2011-02-01-php-mysql-pdf-download.md new file mode 100644 index 0000000..5c2e7c1 --- /dev/null +++ b/source/_posts/2011-02-01-php-mysql-pdf-download.md @@ -0,0 +1,41 @@ +--- +title: PHP与MySQL程序设计(第3版) PDF下载 +author: wahyd4 +layout: post +permalink: /2011/02/php-mysql-pdf-download/ +categories: + - IT书籍 +tags: + - mysql + - php + - 下载 +--- +> 在寒假里我自己也终于坚定了学习PHP的想法,以前也曾经有过这样的想法,都是跟着视频在学习,感觉比较被动。然而这次我选择了更加主动的办法,自己看书来学习。当然有一本好书就是很关键的了。我选择的是PHP与MySQL程序设计(第3版),今天就在这里推荐给大家。 + +[][1]这本书在PHP学习里面还是很著名的,很经典的。本书讲得很详细,不光讲了PHP还讲了mysql以及一些实际应用的例子。但是和中国出版的书不一样,他在前面基础语法知识部分讲的不太多,但是PHP和C,java等语言都极其相似。建议各位同学在学习php之前还是先学习一下C语言。更好。 + +全书一共15章,目录分别为: + +第1章 PHP概述 +第2章 环境配置 +第3章 PHP基础 +第4章 函数 +第5章 数组 +第6章 面向对象的PHP +第7章 高级OOP特性 +第8章 错误和异常处理 +第9章 字符串和正则表达式 +第10章 处理文件和操作系统 +第11章 PEAR +第12章 日期和时间 +第13章 表单 +第14章 身份验证 +第15章 处理文件上传 + +在这里提供下载链接给大家,请各位使用迅雷下载,已获得更快速度, 还请有能力的同学支持正版。 + +注明:本书为PHP扫描版. + +下载地址:点我下载(请使用迅雷下载) + + [1]: /images/2011/02/22-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-02-07-php2011-manual.md b/source/_posts/2011-02-07-php2011-manual.md new file mode 100644 index 0000000..7fa7162 --- /dev/null +++ b/source/_posts/2011-02-07-php2011-manual.md @@ -0,0 +1,40 @@ +--- +title: php2011最新官方中文帮助手册 +author: wahyd4 +excerpt: | + 学过java的同学应该对API帮助文档都不陌生吧,这个PHP手册也是差不多这个样子的,不过我感觉里面的所讲的东西比java API文档里面更加丰富。 + + 上一次PHP官方发布的中文手册是在2007年的时候,从2007年到现在PHP已经增加了很多新的东西,当然各位同学还是看最新的PHP手册比较好! +layout: post +permalink: /2011/02/php2011-manual/ +categories: + - IT书籍 +tags: + - chm + - php + - 下载 + - 中文手册 +--- +> 最近自己在学php,所以我也是花了一些功夫在网上找了一些好的学习资料,其中碰巧找到了2011一月刚发布的PHP中文手册或者说是中文帮助文档吧。里面的东西真的很详细,可以说是从最初级开始的,今天就分享给大家。 + +[][1] + +学过java的同学应该对API帮助文档都不陌生吧,这个PHP手册也是差不多这个样子的,不过我感觉里面的所讲的东西比java API文档里面更加丰富。 + +上一次PHP官方发布的中文手册是在2007年的时候,从2007年到现在PHP已经增加了很多新的东西,当然各位同学还是看最新的PHP手册比较好! + +该手册主要包括以下内容: + +* 入门指引 +* php安装与配置 +* php语言参考 +* 安全 +* php特点 +* php函数参考 +* php核心 + +其他废话就不多说了,大家认真学习吧! + +> 下载地址:网盘下载 官方下载 + + [1]: /images/2011/02/2-7-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-02-08-free-to-read-newspaper.md b/source/_posts/2011-02-08-free-to-read-newspaper.md new file mode 100644 index 0000000..4151726 --- /dev/null +++ b/source/_posts/2011-02-08-free-to-read-newspaper.md @@ -0,0 +1,29 @@ +--- +title: AB报——全国报纸在线免费看 +author: wahyd4 +excerpt: > + 给位喜欢看报纸的同学有福啦,我在网上找到这样一个好东西,可以免费看全国报纸的网站,里面包含的报纸真的很多哦,想我喜欢的南方周末,华西都市报、环球时报、南方都市报、篮球报等等。总之这里面包含的报纸很多,不需要下载,不需要插件直接打开网页就可以免费看了。 +layout: post +permalink: /2011/02/free-to-read-newspaper/ +categories: + - 我们爱分享 +tags: + - 免费 + - 在线 + - 报纸 +--- +> 给位喜欢看报纸的同学有福啦,我在网上找到这样一个好东西,可以免费看全国报纸的网站,里面包含的报纸真的很多哦,想我喜欢的南方周末,华西都市报、环球时报、南方都市报、篮球报等等。总之这里面包含的报纸很多,不需要下载,不需要插件直接打开网页就可以免费看了。 + +[][1] + +曾经为了能够足不出户就可以了解新闻,看传统媒体的报纸,在网上专门找过可以免费看报纸的软件,不过没有找到。可是现在我找到了AB报,他就可以让你免费在网上看报纸。 + +我觉得AB报做的很好的就是,他是原版的报纸扫描下来给大家看,完全的彩色还原,扫描的效果特别清晰,很好。我很喜欢这样了,既保持的报纸的原汁原味,还是免费提供本来是收费的商业报纸。 + +其他的就不多说了,大家自己去看看吧! + +>

    +> 点我进入免费在线看报纸! +>

    + + [1]: /images/2011/02/2-8-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-02-10-five-chrome-theme.md b/source/_posts/2011-02-10-five-chrome-theme.md new file mode 100644 index 0000000..b7738bc --- /dev/null +++ b/source/_posts/2011-02-10-five-chrome-theme.md @@ -0,0 +1,53 @@ +--- +title: 五款精选chrome谷歌浏览器主题 +author: wahyd4 +excerpt: > + 现在全球的chrome浏览器占有率是节节攀升,有的调查显示chrome浏览器的全球占有率已经达到10%,各种谷歌浏览器扩展程序也很丰富,之前我们也曾经两次介绍过类似的文章。几款google + chrome浏览器扩展程序(app),又两个Google Chrome + app浏览器扩展今天就给大家推荐五款chrome谷歌浏览器的主题, +layout: post +permalink: /2011/02/five-chrome-theme/ +categories: + - 我们爱分享 +tags: + - chrome + - 下载 + - 主题 +--- +> 现在全球的chrome浏览器占有率是节节攀升,有的调查显示chrome浏览器的全球占有率已经达到10%,各种谷歌浏览器扩展程序也很丰富,之前我们也曾经两次介绍过类似的文章。几款google chrome浏览器扩展程序(app),又两个Google Chrome app浏览器扩展今天就给大家推荐五款chrome谷歌浏览器的主题,希望大家可以下载下来试试,很漂亮的。都是免费的哦! + +蜂巢(Honeycomb) + +[][1]这款主题是以android最新3.0系统作为设计来源而设计的。这个主题和Honeycomb一样采用深色基调,给人深邃的感觉,个人认为对眼睛也是特别好的。这款主题简洁而漂亮,很不多,笔者在这里鼎力推荐。 + +下载地址:点我 + +Android机器人主题(Robot Theme) + +[][2]这款主题和上面一款一样,都是以android被设计来源设计的,与上一款主题不同的是这款主题采用白色为主要颜色,浏览器顶部为对眼睛很柔和的绿色,和有金属质感的深灰色。简洁而明快。喜欢android的朋友支持一下吧。 + +下载地址:点我 + +谷歌2010I/O大会(Google I/O 2010 Theme) + +[][3]这款漂亮的主题来自google官方发布的主题,相比较前面的主题而言,这款主题颜色很鲜艳,我个人是很喜欢这种类似于彩虹的颜色搭配的,很漂亮,而且给人很明朗很轻松的感觉,注意:图片上所示的胃MAC下的版本在windows下面滑动条和最大最小化按钮有区别。不过丝毫不影响windows下面的绚丽程度。 + +下载地址:点我 + +绚丽星空(Colorful Space) + +[][4]如果你看厌了很简洁明快的主题,那么这款极致华丽,绚烂色彩艳丽的星空想必各位一定会喜欢的,整体颜色还是偏深色对于眼睛的刺激不大。背景为星空则给人很深邃的感觉。由于高清的星空背景也造就了主题的文件大小较大,大概有6M。 + +下载地址:点我 + +鲜活(Fresh Theme) + +[][5]也许有些女同学会抱怨前面的主题都没有适合他们的,那么这一款很卡哇伊的主题就再适合不过了,主题才用很温馨的手绘卡通的图片,整体给人很舒服的感觉。在chrome应该商店里面,该主题的使用者也很多。 + +下载地址:点我 + + [1]: /images/2011/02/2-10-1_conew1.jpg + [2]: /images/2011/02/2-10-2_conew1.jpg + [3]: /images/2011/02/2-10-3_conew1.jpg + [4]: /images/2011/02/2-10-4_conew1.jpg + [5]: /images/2011/02/2-10-5_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-02-15-good-photos.md b/source/_posts/2011-02-15-good-photos.md new file mode 100644 index 0000000..0429177 --- /dev/null +++ b/source/_posts/2011-02-15-good-photos.md @@ -0,0 +1,39 @@ +--- +title: 高清壁纸免费下 +author: wahyd4 +excerpt: | + 不知道各位同学以前是在哪里找壁纸,反正我一般是在论坛里面找壁纸,或者在某个博客里面翻看博主分享的好看的壁纸。 + + 在国内也有一些专门的壁纸分享网站,但是我个人认为他们都不够专业,很多几乎都没有适合各种分辨率的壁纸。而且壁纸数量都不太多。 + + 今天分享的这个网站是一个国外的壁纸分享网站 Wallpapers Wide ,里面提供很丰富的壁纸至少超过10000张, +layout: post +permalink: /2011/02/good-photos/ +categories: + - 我们爱分享 +tags: + - 下载 + - 免费 + - 壁纸 +--- +> 还记得哪个很流行的广告语:步步高英语学习机——爸爸妈妈再也不用担心我的学习。今天给大家推荐的是一个免费下载壁纸的网站,我这里套用过来就是。Wallpapers WIDE——各位同学再也不用担心桌面没有漂亮壁纸。 + +[][1] + +不知道各位同学以前是在哪里找壁纸,反正我一般是在论坛里面找壁纸,或者在某个博客里面翻看博主分享的好看的壁纸。 + +在国内也有一些专门的壁纸分享网站,但是我个人认为他们都不够专业,很多几乎都没有适合各种分辨率的壁纸。而且壁纸数量都不太多。 + +今天分享的这个网站是一个国外的壁纸分享网站 Wallpapers Wide ,里面提供很丰富的壁纸至少超过10000张,而且每张壁纸都对应提供960×600,1280×800,1440×900,1366×768(很多笔记本都是这个分辨率,笔者的也是),1920×1200 + +所以我觉得这个网站还是挺专业的。 + +当然你自己也可以分享自己设计的壁纸。 + +需要高清的同学请到网站自己去下载把。真的很不错哦! + +>

    +> 壁纸下载:点我进入 +>

    + + [1]: /images/2011/02/cloud_heart-960x600_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-02-17-make-your-own-theme.md b/source/_posts/2011-02-17-make-your-own-theme.md new file mode 100644 index 0000000..7c46d5d --- /dev/null +++ b/source/_posts/2011-02-17-make-your-own-theme.md @@ -0,0 +1,82 @@ +--- +title: 快速高效制作一款属于你的chrome主题(在线/本地) +author: wahyd4 +excerpt: | + 打开http://www.chrometheme.net/,在页面底部点击create chrome theme online 这个按钮即可进入制作主题。 + + 主题制作分为几个部分: + + start是填写主题的名字和主题的相关介绍。 + + /images,/images 2主要是设置主题相关的图片。 + + colors:设置主题的重要位置的颜色,不如一些按钮和文字的颜色 +layout: post +permalink: /2011/02/make-your-own-theme/ +categories: + - 头条推荐 + - 我们爱分享 +tags: + - chrome + - 主题 +--- +> 笔者作为google的忠实追随者已经使用google浏览器一年多了,chrome一直是我的默认浏览器,可以说也算见证了它的成长。我也在博客里面多次分享了和chrome相关的东西,大家可以在文末的相关文章里面看到。今天给大家分享的是如果快速制作一款谷歌浏览器 chrome主题,而且还需要几乎是傻瓜式的。当然你可以可以精雕细琢做出一款艺术品。 + +## [][1] + +## 在线制作 + +打开,在页面底部点击create chrome theme online 这个按钮即可进入制作主题。 + +主题制作分为几个部分: + +start是填写主题的名字和主题的相关介绍。 + +/images,/images 2主要是设置主题相关的图片。 + +colors:设置主题的重要位置的颜色,不如一些按钮和文字的颜色 + +tints:这里是设置主题相关模块的布局。 + +pack:制作并生产主题crx文件,可以直接下载文件,也可以下载zip源文件。 + +**下面是制作主题的截图:** + +**设置界面图片:** + +**[][2](1)frame:** + +**(2)toolbar:** + +** ** + +
    +

    + 本地制作 +

    + +

    + 和在线制作差不多,离线制作是一个windows程序,和在线制作缺少的就只是没有对照图片,不过你有了我们的博客也还是可以轻而易举了。 +

    + +
    +

    + 这里提供离线制作主题的程序: +

    + +

    + crxtheme-v1.0.rar +

    + +

    + 另附上一个我自己简单做的主题,这里提供下载:junv +

    +
    + +

    + 大家快去试试吧! +

    +
    + + [1]: /images/2011/02/1-13-6_conew1.jpg + [2]: /images/2011/02/2-17-1.png \ No newline at end of file diff --git a/source/_posts/2011-02-23-tv-radios.md b/source/_posts/2011-02-23-tv-radios.md new file mode 100644 index 0000000..fe783ce --- /dev/null +++ b/source/_posts/2011-02-23-tv-radios.md @@ -0,0 +1,32 @@ +--- +title: 全球电视、广播电台免费在线收看、收听(免下载、安装) +author: wahyd4 +layout: post +permalink: /2011/02/tv-radios/ +categories: + - 我们爱分享 +tags: + - 免费 + - 在线 + - 电视 +--- +> 话说大染志已经有一周没有更新了,这几天心情不是很好,因为生活中的一些琐事,但是看到大家的支持给了我动力,今天就给大家分享这样一个好东西,免费在线看电视,收听广播,不只是中国,而是全球的哦,但是可能有部分电视会出现打不开的情况。 + +[][1] + +最爱试听网站为我们提供的服务,里面提供全球多个国家的免费在线电视收看,以及几乎所有国内的地方电视台的收看。还有很多广播的收听地址。主要提供的国家和地区有香港、台湾、韩国、日本、英国、美国、加拿大、意大利、埃及、泰国。几乎你听过的国家在这里都可以找到电视的收看地址。 + +朝日电视台、英国BBC新闻台、英国太空电视台、法国24小时新闻频道、C-PAN有线频道、凤凰卫视中文台、东风37台、星空卫视、亚视美洲台、中视无线台。 + +[][2]如图所示为台湾中视无线台视频直播截图。 + +在线收看中视无线地址:点我进入 + +需要注意的是:可能有部分电视台或者广播电台的播放地址已经失效。大家只有忽略了,不过这里面还是有很多国外的电视台很不错,就只有大家慢慢去发掘了,大家发现好的电视台也可以留言告诉我们哦。 + +>

    +> 进入免费看电视、听广播 +>

    + + [1]: /images/2011/02/2-23-3.jpg + [2]: /images/2011/02/2-23-4_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-02-28-background-image.md b/source/_posts/2011-02-28-background-image.md new file mode 100644 index 0000000..27d0395 --- /dev/null +++ b/source/_posts/2011-02-28-background-image.md @@ -0,0 +1,21 @@ +--- +title: 送上自己拍的图片三张,高清壁纸 +author: wahyd4 +layout: post +permalink: /2011/02/background-image/ +categories: + - 我说 +tags: + - 单反 +--- +> 这几天鄙人心情有些烦躁,所以博客也没有怎么更新,但是还是谢谢支持我的人了! + +几天前买了佳能的500D 单反,虽然是入门级别的单反,但是与卡片机的效果是好太多了。有些功能还没有弄明白,而且即使弄明白也不一定可以拍出的好的照片。 + +好了废话就不多说了,我等下再给大家详细介绍一些买佳能500D的事情吧。上图咯。 + +>

    +> 高清壁纸下载:点我 +>

    + +当然还希望各位多提意见啊。。。 \ No newline at end of file diff --git a/source/_posts/2011-02-28-fixed-toolbar.md b/source/_posts/2011-02-28-fixed-toolbar.md new file mode 100644 index 0000000..4e57dd8 --- /dev/null +++ b/source/_posts/2011-02-28-fixed-toolbar.md @@ -0,0 +1,107 @@ +--- +title: 在页面底部添加固定信息栏,类似于本博客所示效果 +author: wahyd4 +excerpt: | + | + 下面就稍微详细给大家说一下如何实现吧,其实原理很简单。将底部这个小长条固定在页面的底部涉及到的核心CSS代码就是 + + #footer{ + position:fixed; + bottom:0; + } + position:fixed是将小条固定,bottom:0 是小条距离底部是0,就是一直贴在页面底部。 +layout: post +permalink: /2011/02/fixed-toolbar/ +categories: + - 我说 + - 编程之美 +--- +> 以前我也不知道我的博客浏览器页面底部的这个灰色固定的信息条是怎么实现的,今天没事就在网上查了一下,结果发现原来这个东西真的很容易。我本以为会用到javascript或者jquery之类的东西,结果没有想到只要简单的CSS即可。 + +

    + +

    + +下面就稍微详细给大家说一下如何实现吧,其实原理很简单。将底部这个小长条固定在页面的底部涉及到的核心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写的。 +
    +
    +
    +
    \ No newline at end of file diff --git a/source/_posts/2011-03-04-360.md b/source/_posts/2011-03-04-360.md new file mode 100644 index 0000000..61ec3ac --- /dev/null +++ b/source/_posts/2011-03-04-360.md @@ -0,0 +1,42 @@ +--- +title: 360抢占桌面又一力作——360安全桌面 +author: wahyd4 +excerpt: | + 在其桌面上集成了大家可能是最感兴趣,最喜欢用的一些应用,当然也包括奇虎公司自己的应用比如说360浏览器、360安全卫士。 + 将互联网几个大家使用最多的类别的网站地址或者软件集成在了桌面上。这样大家就不用再一个一个得输入地址去进入网站,而是直接可以通过360桌面直接进入,而且可以很轻松同时进入几个不同的网站。而不用输入几个地址。 +layout: post +permalink: /2011/03/360/ +categories: + - 酷玩软件 +tags: + - 360 + - 下载 + - 免费 + - 桌面软件 +--- +> 话说笔者已经没有没有介绍关于软件相关的东西了,今天恰好在转某网站的时候发现这样一款软件——360安全桌面。我一下子就变得很精神了,想到了360的安全卫士。我想着也许就是360占领各位同学的桌面的又一法宝吧。我试用了,还不错哦,下面请听我慢慢道来。 + +[][1] + +经过试用我觉得360安全桌面的定位或者说是总体的功能就是整合我们平时生活中最爱使用的各种东西或者网站、软件,让各位同学可以更加方便、快捷得做我们喜欢的事。360安全桌面还允许大家在其桌面上开发自己的应用,可以这样说吧,360安全桌面最终想达到的效果就是成为操作系统之上的操作系统。 + +

    + 如图为360安全管家运行界面。 +

    + +它的主要功能有 + +* 在其桌面上集成了大家可能是最感兴趣,最喜欢用的一些应用,当然也包括奇虎公司自己的应用比如说360浏览器、360安全卫士。 +* 将互联网几个大家使用最多的类别的网站地址或者软件集成在了桌面上。这样大家就不用再一个一个得输入地址去进入网站,而是直接可以通过360桌面直接进入,而且可以很轻松同时进入几个不同的网站。而不用输入几个地址。 +* 有一个可以随时随地截图的小功能,只有你的360安全桌面是运行的就可以轻松截图。 +* 360安全桌面可以停靠在电脑屏幕的上下左右四个不同地方的任何一个位置,很方便。 +* 可以直接在360安全桌面里面关闭你想要关闭的软件,而不用再去打开任务管理器。 +* 可以将你电脑上安装的软件加入到常用的某个类别里面去,方便使用。 +* 当然也还可以切换壁纸。 +* 支持开机自启动。 + +总之,这个360安全桌面还是给人耳目一新的感觉,但是毕竟这个桌面软件还是预览版本,还有很多不足和完善的地方,里面的应用也不是很多。希望不久之后360安全桌面里面可以有更多的开发者开发的实用的、有趣的、好玩的应用吧。 + +> 下载地址:官方下载 【离线安装包】 网盘下载 + + [1]: /images/2011/03/20110304-截图-1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-03-05-background-images.md b/source/_posts/2011-03-05-background-images.md new file mode 100644 index 0000000..7a3a957 --- /dev/null +++ b/source/_posts/2011-03-05-background-images.md @@ -0,0 +1,27 @@ +--- +title: 一些适合做网站背景的五彩壁纸下载 +author: wahyd4 +excerpt: | + 包内所含的图片的分辨率都是2000*2000的,应该是设计原稿吧,是jpg格式的,各位如果想要用作壁纸的需要自己再加工一下。毕竟文件太大了,每张图片几乎都是2M左右。 + 包含如此多的颜色,应该够各位下载使用了吧。 +layout: post +permalink: /2011/03/background-/images/ +categories: + - 我们爱分享 +tags: + - 下载 + - 壁纸 +--- +> 如果各位也和我一样对网站的颜色搭配特别不敏感,如果各位也希望可以找到很漂亮的比较没有太多杂乱图案的壁纸用作网站的背景,那么今天给各位分享的一定就适合你啦。 + +  + +包内所含的图片的分辨率都是2000*2000的,应该是设计原稿吧,是jpg格式的,各位如果想要用作壁纸的需要自己再加工一下。毕竟文件太大了,每张图片几乎都是2M左右。 + +包含如此多的颜色,应该够各位下载使用了吧。 + +如果喜欢就支持我们把! + +其他废话就 不多说了。 + +> 下载地址:网盘下载 \ No newline at end of file diff --git a/source/_posts/2011-03-06-wibiya.md b/source/_posts/2011-03-06-wibiya.md new file mode 100644 index 0000000..6d84ce7 --- /dev/null +++ b/source/_posts/2011-03-06-wibiya.md @@ -0,0 +1,49 @@ +--- +title: > + 一款超级酷炫的页面底部工具栏插件——wibiya(完美支持wordpress) +author: wahyd4 +excerpt: | + 下面就来详细的给大家介绍一下如何得到这个工具栏: + 打开http://www.wibiya.com/,点击get it now 开始获取插件。 + 在接下来的页面里面输入你的邮箱,密码、网址、网站名称等等。以方便个性化,这点和无觅差不多需要个性定制。 +layout: post +permalink: /2011/03/wibiya/ +categories: + - 我们爱分享 +tags: + - wordpress + - 工具栏 + - 插件 +--- +> 早上起来人还不是很新鲜,因为前面踢了球,全身酸痛,精神也不太好。最近我自己有介绍用css做一个简单的一直黏在页面底部的工具栏**在页面底部添加固定信息栏,类似于本博客所示效果。**也有同学在介绍说万戈做的工具栏,我也试用了,感觉兼容性不太好,用不来。今天给大家推荐非常好用的页面底部的工具栏wibiya,我这里只介绍免费版本的,已经很强大了。更强大的需要付费了。 + +[][1] + +下面就来详细的给大家介绍一下如何得到这个工具栏: + +* 打开,点击get it now 开始获取插件。 +* 在接下来的页面里面输入你的邮箱,密码、网址、网站名称等等。以方便个性化,这点和无觅差不多需要个性定制。 +* 接着是select theme页面,这里面免费已经有很多主题可以选择,而且你还可以上传你网站个性的icon以供显示。 +* [][2] + +* 然后这个页面是选择应用,即是在你的页面底部工具栏显示的应用。几个很好的是real time users(显示网站实时的访客情况)、itranslation(实时翻译网页内容)、photo gallery(支持flickr和picasa的相册)、facebook、twitter、已经实时聊天插件、feed订阅插件、已经获取最新文章插件。 +* 最后就是选择你的博客网站的版本了,这里面当然有wordpress、blogger、typepad、drupal、joomla、以及一般的网页。 + +[][3] + + + +> 比如是wordpress博客的话: +> +> 首先将下载的插件上传到网站相应的目录,然后激活该插件,打开插件设置页面,在里面设置启用wibiya,然下面一行输入你创建好插件的页面提供的一个javascript 资源地址(每个人的都不一样哦),比如我的是:http://cdn.wibiya.com/Toolbars/dir\_0740/Toolbar\_740040/Loader_740040.js。好了就大功告成了。 + +> 开始进入获取工具栏:[http://www.wibiya.com][4] +> +> demo: + +注意:安装好插件只有,它还可以统计你的博客相关的一些信息,比如有多少人使用了这个插件,你的微博有多少喜欢等等,更多功能大家自己去发掘吧。 + + [1]: /images/2011/03/212_conew1.jpg + [2]: /images/2011/03/3-143_conew1.jpg + [3]: /images/2011/03/3-14-5_conew1.jpg + [4]: http://www.wibiya.com/ \ No newline at end of file diff --git a/source/_posts/2011-03-09-css3html5google20-things-i-learned-about-browsers-and-the-web.md b/source/_posts/2011-03-09-css3html5google20-things-i-learned-about-browsers-and-the-web.md new file mode 100644 index 0000000..4ea9796 --- /dev/null +++ b/source/_posts/2011-03-09-css3html5google20-things-i-learned-about-browsers-and-the-web.md @@ -0,0 +1,32 @@ +--- +title: CSS3+HTML5+Google=20 things i learned about browsers and the web +author: wahyd4 +excerpt: > + 就是google chrome + 浏览器团队用CSS3+HTML5开发出的一本在线图书叫做20 things i + learned about browsers and the + web,首先我们就单从界面和用户体验讲,这个网站或者说这本书真的很绚丽。(前提是请使用支持CSS3+HTML5的浏览器访问,最好使用chrome)总之让我很惊讶, +layout: post +permalink: /2011/03/css3html5google20-things-i-learned-about-browsers-and-the-web/ +categories: + - IT书籍 +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 \ No newline at end of file diff --git a/source/_posts/2011-03-13-chrome-reader.md b/source/_posts/2011-03-13-chrome-reader.md new file mode 100644 index 0000000..055a287 --- /dev/null +++ b/source/_posts/2011-03-13-chrome-reader.md @@ -0,0 +1,48 @@ +--- +title: chrome 阅读文章app——ireader:给你更好的阅读体验 +author: wahyd4 +excerpt: > + 又有几天笔者没有认真更新博客了,自己有些事需要处理吧,老实说看着自己博客的这个样子有时候性质很高,但是有时候又感觉没有动力。不过我还是会继续更新的。今天给大家分享的还是关于google + chrome浏览器的东西,一款阅读app ——ireader. +layout: post +permalink: /2011/03/chrome-reader/ +categories: + - 酷玩软件 +tags: + - app + - chrome + - google +--- +> 又有几天笔者没有认真更新博客了,自己有些事需要处理吧,老实说看着自己博客的这个样子有时候性质很高,但是有时候又感觉没有动力。不过我还是会继续更新的。今天给大家分享的还是关于google chrome浏览器的东西,一款阅读app ——ireader. +> +> [][1] + +如果你厌恶有些网页满篇都是广告,如果你厌恶某些网站的文章的字体让你看起来很不舒服,如果你只想很纯粹的阅读文章,而且看文章的时候网页的背景让眼睛很舒服。那么我推荐各位同学使用这样一款google app ——ireader + +[][2] + +

    + 如图是打开某网页进入阅读模式的图片 +

    + +如果你安装了这款插件,当你进入有文章的网页时,该插件会自动识别网页,并在浏览器网址栏里面出现ireader app的图标,现在你只需要点击那个图标即可以进入阅读模式。 + +阅读模式完全屏蔽网页的广告,自动将文章的字体转换到让你的眼睛很舒服的状态,而且你还可以在该 app 的设置状态设置浏览时选择的字体和是否显示图片。 + +

    +

    + 注意:可能有些有文章的网页不能够被该插件识别,我个人觉得原因是可能是该网页文章内所含图片的个数太多或者文章的内容过于少了!不过大多数情况是可以识别的! +

    + +
    +

    + 下载插件:点我进入google app store 下载 +

    +
    + +

    +
    +

    + + [1]: /images/2011/03/22_conew1.jpg + [2]: /images/2011/03/3-14-2_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-03-13-content-lost.md b/source/_posts/2011-03-13-content-lost.md new file mode 100644 index 0000000..d6e36ef --- /dev/null +++ b/source/_posts/2011-03-13-content-lost.md @@ -0,0 +1,21 @@ +--- +title: 不好意思!博客被黑了,内容丢失了。 +author: wahyd4 +layout: post +permalink: /2011/03/content-lost/ +categories: + - 我说 +--- +RT,也许今天下午太黑暗了,我的博客被黑了,而且数据全被删了,虽然我还原了单身3月一号以后的文章的图片还是丢失了,我现在也不想在我的电脑上去找。 + +下午踢足球脚光荣负伤了,很痛,今天晚上特别痛。不知道今天晚上会不会因为这个而失眠。 + +如果明天早上还是很痛,就只有不去上课了, + +可是还要想一个很重要的东西,或者说要做出一个原型! + +大家也多注意点安全, + +这几天都知道地球活动有点剧烈。 + +希望各位同学都平平安安的,春天来了,一定要多去耍耍! \ No newline at end of file diff --git a/source/_posts/2011-03-15-css3-for-web-designers-pdf.md b/source/_posts/2011-03-15-css3-for-web-designers-pdf.md new file mode 100644 index 0000000..3b68048 --- /dev/null +++ b/source/_posts/2011-03-15-css3-for-web-designers-pdf.md @@ -0,0 +1,39 @@ +--- +title: 'CSS3 for web designers [PDF]下载' +author: wahyd4 +excerpt: > + 最近在看css和javascript方面的书籍,不过最新的CSS3几乎找不到什么参考书,只能在网上找到零星的资料。中文资料就更是少了,笔者最近在网上找到一本比较好的CSS书籍——CSS3 + for web designers(不过是英文版本的,希望各位将就看吧!) +layout: post +permalink: /2011/03/css3-for-web-designers-pdf/ +categories: + - IT书籍 +tags: + - css3 + - 下载 + - 免费 + - 电子书 +--- +> 最近在看css和javascript方面的书籍,不过最新的CSS3几乎找不到什么参考书,只能在网上找到零星的资料。中文资料就更是少了,笔者最近在网上找到一本比较好的CSS书籍——CSS3 for web designers(不过是英文版本的,希望各位将就看吧!) + +[][1] + +本书电子档为高清原文版本,而不是所谓的高清扫描版本。清晰度是没有任何挑剔的。 + +不过具体内容笔者还没读完,不好评价整本书,但是在网上看到有些国外的博客推荐,想必应该是不错吧。 + +全书分为7个章节 + +* using CSS 3 today +* understanding css transitions +* hover-crafting with css3 +* transforming the message +* multiple backgrounds +* enriching forms +* conclusion + +大家感兴趣的就下载吧,文档不到10M,很小。 + +> ## 下载地址:网盘下载 + + [1]: /images/2011/03/css3_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-03-21-1561.md b/source/_posts/2011-03-21-1561.md new file mode 100644 index 0000000..055017b --- /dev/null +++ b/source/_posts/2011-03-21-1561.md @@ -0,0 +1,46 @@ +--- +title: web 开发者必备的几款google chrome app +author: wahyd4 +excerpt: > + 博客还是要继续的,只是鄙人有点懒惰,还有点懈怠,而且有时候也是真的不晓得该写些什么好。今天还是分享好东西,google + chrome 浏览器的app应用,不过这次是针对web + 开发人员或者相关童鞋的,很不错的哦! +layout: post +permalink: /2011/03/1561/ +categories: + - 酷玩软件 +tags: + - app + - chrome + - google + - 插件 +--- +> 博客还是要继续的,只是鄙人有点懒惰,还有点懈怠,而且有时候也是真的不晓得该写些什么好。今天还是分享好东西,google chrome 浏览器的app应用,不过这次是针对web 开发人员或者相关童鞋的,很不错的哦! + +[][1] + +## Firebug Lite for Google Chrome + +这个插件大家应该很熟悉吧,最初是在firefox上的,也是因为这个可能不少童鞋选择使用firefox吧,不过现在firebug 也出chrome版本的了,在浏览器里面调试网页和web应用的童鞋有福了,其实我个人倒也觉得google自己自带的开发者工具也已经很强大了。不过还是萝卜白菜各有所爱吧。 起功能就不用我具体说明了吧! + +## Eye Dropper + +这是一个很小巧的网页拾色工具,使用它你就可以获得任何网页任何图片任何区域的颜色,我个人觉得这个很方便吧。值得一用。 + +## Web Developer + +这样一个插件不知道各位哦有没有使用过啊,我还是稍微详细得说一下吧(天哪,这个功能太多太多了,我觉得比神马付费的开发工具都强太多了,功能都多到我都说不清了。) + +> * 可以控制和分析CSS,你可以选择编辑或者查看css,以及屏蔽掉所有的CSS 属性。 +> * 关于表单form详细的应用,你可以将表单的提交方法在GET和POST间切换,总之关于表单的还有很多功能,各位自己试用吧。 +> * 关于图像,太强大了,可以查到网页所有图片的路径(在网页不允许你下载图片的界面是不是很爽呢?哈哈),可以屏蔽背景图片,显示图片的属性,隐藏所有的图片等等。 +> * 信息功能,你可以查看网页的很多信息,比如所有链接去详情,以及各个元素所处的选择器内,查看网页所有的javascript +> * 同样可以实现网页拾色功能,已经为图片或者某个页面曲面测量大小。 +> * 可以随意设置网页显示的大小,这个功能可以模拟某些固定的页面显示,以适应不同分辨率的显示器 +> * 还可以Validate html 、css、feed等等,功能 + +本同学现在越来越觉得它太强大了。强烈严重推荐各位同学去使用一下。 + +
    + + [1]: /images/2011/03/chrome-new-logo_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-03-26-omegle-talk-to-strangers.md b/source/_posts/2011-03-26-omegle-talk-to-strangers.md new file mode 100644 index 0000000..3876c94 --- /dev/null +++ b/source/_posts/2011-03-26-omegle-talk-to-strangers.md @@ -0,0 +1,36 @@ +--- +title: Omegle——Talk to strangers!和全世界的陌生人聊天 +author: wahyd4 +layout: post +permalink: /2011/03/omegle-talk-to-strangers/ +categories: + - 我们爱分享 +tags: + - omegle + - 在线 + - 聊天 +--- +> 各位同学平时一般都是和QQ好友之类的聊天吧(就是需要首先添加为好友才可以聊天),大家也都是和中国人聊天吧?各位有没有想过和全世界的陌生人一起聊天,可以不用留下任何信息,如果你愿意你还可以喝外国朋友视频聊天。 + +[][1] + +和你上面看到的一样,今天给大家分享的就是这样一个网站——omegle,你可以直接进入网站和上面在线的外国朋友一起聊天,当然里面也可能碰到中国的朋友,因为和你聊天的人都是网站服务器随机匹配的。 + +* 当然为了更加国际化,那么大家几乎都是使用英语交流,至少在你们没有发现对方也是使用中文之前吧。 +* 当然面对对方所问的问题,你都可以随意说,因为大家谁都不认识谁,而且你也没有留下任何可以找到你的信息,如果你愿意。 +* 还可以在线使用视频和外国朋友聊天。 +* 如果你不喜欢和你聊天的朋友,你可以直接将他PASS掉,给你主动权,当然别人也可以将你PASS掉。 +* 最后你可以保存你们聊天的内容,遇到聊得来的朋友,可以留下自己的联系方式多为MSN,或者E-mail. + +以下是笔者通过在这个网站和外国朋友聊天得到的一些感触吧: + +* 很多人喜欢一来就问你ASL,A代表age年龄,S代表sex性别,L代表location代表所在地即国家城市。 +* 如果遇到台。湾的朋友,不用过于纠结在政。治问题上,否则会很扫兴的,上面的台湾朋友不少,我就在上面认识了几个。 +* 有些国家的人有些瞧不起中国人,如果听到你是中国人而且你还是个男生,可能会立刻PASS掉。 +* 视频的话,可能会遇到露阴狂,我曾经遇到过,希望大家注意吧。 + +>

    +> 点击进入:omegle +>

    + + [1]: /images/2011/03/stock-connect_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-03-27-bbc-the-chinese-are-coming.md b/source/_posts/2011-03-27-bbc-the-chinese-are-coming.md new file mode 100644 index 0000000..53b14f7 --- /dev/null +++ b/source/_posts/2011-03-27-bbc-the-chinese-are-coming.md @@ -0,0 +1,32 @@ +--- +title: 《BBC 中国人要来了》(BBC The Chinese Are Coming) +author: wahyd4 +layout: post +permalink: /2011/03/bbc-the-chinese-are-coming/ +categories: + - 视频/音乐分享 +tags: + - BBC + - 中国 +--- +> 很久没有分享关于电影或者影视之类的东西了,今天给大家分享一个纪录片,是英国BBC做的关于中国的。 + +[][1] + +这个纪录片是BBC做的主要内容是讲关于中国崛起和中国改变世界的格局,里面的记者穿越非洲,南美洲和北美洲通过一些例子去说明这个问题。 + +这个纪录片一共两集,每集约60分钟。 + +> 我个人看了这个纪录片有以下一些想法: +> +> * 这个纪录片是外国人拍的,一个世界上的大国英国,我个人觉得这个纪录片最终拍出来还是不是很客观的说明一些东西。 +> * 这个纪录片反映了中国的强大,和中国的商品和商人正遍布非洲和南美洲这些新兴市场。 +> * 里面讲的有一个观点就是,中国的商品正以廉价占领市场和对当地的商品造成打击。 + +个人看了这个电影还是感触很多的,只是有一些想法不方便分享出来。有些愤青。大家自己看看吧。不管怎么样,还是挺不错的这个纪录片。 + +> 下载地址:打包下载(请使用迅雷,电驴复制链接) +> +> 下载资源来自: + + [1]: /images/2011/03/11022510472e32b046e54ce959_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-04-04-a-good-gift.md b/source/_posts/2011-04-04-a-good-gift.md new file mode 100644 index 0000000..caa43fe --- /dev/null +++ b/source/_posts/2011-04-04-a-good-gift.md @@ -0,0 +1,21 @@ +--- +title: 一个好的礼物——希望对你有所触动 +author: wahyd4 +layout: post +permalink: /2011/04/a-good-gift/ +categories: + - 视频/音乐分享 +tags: + - ted +--- +> 搞IT的同学,平时还是多多休息一下吧,其实身边还有很多东西值得我们去看,去学。 + +

    + +

    + +希望大家看后有所感触吧。不要等到我们不健康的那一天才去找回那些失去的美好。珍惜身边的一切。 +这个视频来自TED + + +> 视频下载:点我下载(请使用电驴或者迅雷复制链接下载) \ No newline at end of file diff --git a/source/_posts/2011-04-12-html5-css3-javascript-coverflow.md b/source/_posts/2011-04-12-html5-css3-javascript-coverflow.md new file mode 100644 index 0000000..be3d1a2 --- /dev/null +++ b/source/_posts/2011-04-12-html5-css3-javascript-coverflow.md @@ -0,0 +1,212 @@ +--- +title: Html5+CSS 3实现Cover Flow 动画特效(支持chrome、safari浏览器) +author: wahyd4 +layout: post +permalink: /2011/04/html5-css3-javascript-coverflow/ +categories: + - 编程之美 +tags: + - cover flow + - css3 + - html5 + - 动画 +--- +> **更新:已经加入了javascript,现支持图片之间进行动态切换,大家enjoy吧!** +> +> 下面将要给大家演示的这个东西,算是这几天的一个小小的成果吧,不过目前仅仅是静态的实现,还没有对其加上javascript 等控制。但是这个动画相比传统动画有一个很大的优点就是,动画的内容组成是可以是DIV,因此里面包含的内容可以是canvas 或者图片,甚至可能视频,等等,目前我还没有测试。理论上可以放进DIV 的东西都可以放到动画里面去。 + +[][1] + +这个动画其实最关键的部分就是使用了一个最新的CSS  3 属性 animation,目前仅有webkit核心的浏览器支持这个特效。 + +而在本动画中涉及的有:(动画的声明) + +>
    +> -webkit-animation-name:junv;                    //动画名称 +>
    +> +>
    +> -webkit-animation-duration:4s;                 //动画循环时间,单位为秒 +>
    +> +>
    +> -webkit-animation-iteration-count:infinite;              //动画播放次数,infinite 表示 无线循环   也可以饿确定的数字 +>
    + +
    + 注意:这里的” // ” 并不是CSS 的注释,这里这样写,只是为了方便。下面一样,不再重复说明。 +
    + +
    +
    + +>
    +> @-webkit-keyframes’junv’{ +>
    +> +>
    +> from{ +>
    +> +>
    +> } +>
    +> +>
    +> +>
    +> +>
    +> to{ +>
    +> +>
    +> } +>
    +> +>
    +> } +>
    + +
    + 上面的是动画的默认形式, +
    + +
    +
    +
    + @-webkit-keyframes’junv’{ +
    + +
    + from{           //设置动画起始状态的CSS +
    + +
    +
    + +
    + top:15px; +
    + +
    + left:-160px; +
    + +
    + -webkit-transform:   rotate(7deg) scale(0.4,0.75) skew(12deg,8deg); +
    + +
    +
    + +
    +
    + +
    +
    + +
    + } +
    + +
    + 40%{ +
    + +
    + //这是动画过程中 CSS ,  百分之多少,大家可以可以根据自己需要任意设置,数量也不限,设置得越多,对动画的人为控制也越多。 +
    + +
    + top:62px; +
    + +
    + left:230px; +
    + +
    + -webkit-transform:  rotate(0deg) scale(1,1) skew(0deg,0deg);         //设置设置对象的形态, rotate 是旋转,跟的 单位度数,可为负数 +
    + +
    + //scale 是放缩,分别对 x,y方向放缩倍数 +
    + +
    + //skew 是旋转,即x轴方向旋转多少,y轴旋转多少 ,单位为度 +
    + +
    + } +
    + +
    + 70%{ +
    + +
    + top:62px; +
    + +
    + left:230px; +
    + +
    + -webkit-transform:  rotate(0deg) scale(1,1) skew(0deg,0deg); +
    + +
    + } +
    + +
    + 100%{ +
    + +
    + top:12px; +
    + +
    + left:580px; +
    + +
    + -webkit-transform:  rotate(-7deg) scale(0.4,0.75) skew(-12deg,-8deg); +
    + +
    + } +
    + +
    + } +
    +
    + +
    + 这是具体在这个页面里面的代码。 +
    + +
    +
    + +
    + 下面稍微解释一下,我之所以设置40%,和70%状态一样,为为了,让整个动画,可以在中间位置停留更长的时间。 +
    + +
    + 其他的东西先不多说了,我要回寝室睡觉了,大家有什么不懂的,或者想讨论的留言吧。! +
    + +
    +

    + 示例(demo):点我进入 +

    +
    +
    + + [1]: /images/2011/04/s_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-04-12-javascript-dom-pdf.md b/source/_posts/2011-04-12-javascript-dom-pdf.md new file mode 100644 index 0000000..798b445 --- /dev/null +++ b/source/_posts/2011-04-12-javascript-dom-pdf.md @@ -0,0 +1,67 @@ +--- +title: Javascript DOM编程艺术 中文PDF下载 +author: wahyd4 +layout: post +permalink: /2011/04/javascript-dom-pdf/ +categories: + - IT书籍 +tags: + - javascript + - pdf + - 下载 +--- +> 由于115网盘关闭公开下载了,所以不能再提供网盘了。如果有需要的同学请留邮箱吧,我会把电子书发给你的。! +> +> 最近一直在学习CSS3和HTML5 做前台的东西,大概做了一个类似于动画的东西,我可能会稍后给大家分享一下吧。 + +[][1] + +还是稍微介绍一下这本书吧,这本书,好像是07年出版的,虽然年代已经有几年了,不过内容倒是挺经典的。这本书我个人认为更加适合没有javascript 惊出或者对javascript有一些,但是不太多认识的人。 + +> 全书一共分为12个章节: +> +> 第1章 JavaScript简史 +> +> 第2章 JavaScript语法 +> +> 第3章 DOM +> +> 第4章 案例研究:JavaScript美术馆 +> +> 第5章 JavaScript编程原则和良好习惯 +> +> 第6章 案例研究:JavaScript美术馆改进版 +> +> 第7章 动态创建HTML内容 +> +> 第8章 充实文档的内容 +> +> 第9章 CSS-DOM +> +> 第10章 用JavaScript实现动画效果 +> +> 第11章 学以致用:JavaScript网站设计实战 +> +> 第12章 展望DOM脚本编程技术 + +看完这本书,你就会觉得,作者真正做到了,使用最简单的语言来描述其他人可能会用很复杂的语言来描述的东西,我相信大家看了一定会喜欢这本书的。 + +>

    +> 注:如果你可以,请购买正版,附当当网购买链接:点我 +>

    +> +>   +> +>

    +

    +> 下载地址:网盘下载 +>

    + +> +> +

    +>   +>

    + + + [1]: /images/2011/04/s1958902.jpg \ No newline at end of file diff --git a/source/_posts/2011-05-27-announce.md b/source/_posts/2011-05-27-announce.md new file mode 100644 index 0000000..f23e46a --- /dev/null +++ b/source/_posts/2011-05-27-announce.md @@ -0,0 +1,23 @@ +--- +title: 算是声明吧 +author: wahyd4 +excerpt: > + 反反复复,总是觉得没有激情再把日志写下去了。但是想到自己付出快一年的心血又觉得不忍心啊!原本打算利用写博客指望赚到每一年域名和空间的费用,可是这一年下来我证明我错了,大多数人喜欢来了看一眼博客然后就走掉。 +layout: post +permalink: /2011/05/announce/ +categories: + - 我说 +--- +> 反反复复,总是觉得没有激情再把日志写下去了。但是想到自己付出快一年的心血又觉得不忍心啊!原本打算利用写博客指望赚到每一年域名和空间的费用,可是这一年下来我证明我错了,大多数人喜欢来了看一眼博客然后就走掉。 + +写博客这一年google adsense 大概也就赚到了5美元! + +以前大多写的是分享的东西,没有多少真正属于自己的东西,但是我想从以后应该不一样了吧。我还是决定把博客走技术路线了。不在乎太多,而且现在现在这个博客和域名到底是买国外的,还是使用学校的我有的一个二级域名,我也没有想好! + +毕竟使用学校的不需要钱,但是又要受到和。谐啊! + +我想给大家看一个最近做的东西,基于地图的小小伪原创的东西: + +> 希望大家支持吧:[http://wxmedia.cdu.edu.cn][1] + + [1]: http://wxmedia.cdu.edu.cn/ \ No newline at end of file diff --git a/source/_posts/2011-06-02-balsamiq-mockups.md b/source/_posts/2011-06-02-balsamiq-mockups.md new file mode 100644 index 0000000..bba6cd6 --- /dev/null +++ b/source/_posts/2011-06-02-balsamiq-mockups.md @@ -0,0 +1,50 @@ +--- +title: 专业的项目UI原型设计软件——Balsamiq Mockups +author: wahyd4 +excerpt: > + 前面我介绍了一款项目UI原型设计软件pencil,之前我以为那个工具已经足够使用,足够方便了,足够强大了。不过上午时候在网上偶然发现原来设计界还有这样一款更加棒的UI原型设计软件——Balsamiq + Mockups。 +layout: post +permalink: /2011/06/balsamiq-mockups/ +categories: + - 酷玩软件 +tags: + - 设计 + - 软件 +--- +> 前面我介绍了一款项目UI原型设计软件pencil,之前我以为那个工具已经足够使用,足够方便了,足够强大了。不过上午时候在网上偶然发现原来设计界还有这样一款更加棒的UI原型设计软件——[Balsamiq Mockups][1]。 + +下面着重介绍一些它的优点: + +* 支持的平台更多,windows,linux、Mac均支持。 +* 软件包含的设计元素更加丰富,包含10个类别,而且支持将所有元素都变为速写设计的样式,看起来更加像用笔画的(我个人这样粗俗地认为) +* 对于每个元素可以细节调节的操作和修改更加丰富。 +* 支持多窗口设计 +* 支持想设计导出为PNG、PDF +* 针对移动设备做了很多很好的工作。 +* 支持将设计导出为html、css、flex文件等 +* 让设计人员使用起来效率更高吧。 + +下面是我刚才花大概15分钟设计的一款一个简单的界面: + +[][2]因此大家可以知道,这款软件的设计效率的确不是吹的,虽然这个界面很简单,不过我个人觉得还是很不错啦。 + +当然既然有这么多优点,所有它也就理所当然是一款商业软件。目前[购买这个软件][3]需要$79美元,才可以获得完整的功能,当然还可以团队购买,会稍微便宜一些。 + +> 不过对于中国的同学来说,这么贵的软件购买还是比较不太现实。因此还好它有这样一个比较可行的免费获得软件的方式:如果你是技术/软件博客作者或者记者,那么你写一篇博客来进行推广和宣传他们的这款软件也是可以的。因此我便选择了这种方式。 +> +> 最新消息:昨天这个软件商发给我一封邮件,说他们已经不再提供给博客作者的免费的授权了。看来这种方法是得不到了,大家还是去用免费的软件吧。。 + +当然它还有免费的在线版本供大家使用,或者下载试用版本! + +希望各位都去试试吧! + +> Mockups官方网站:http://balsamiq.com/ +> +> Mockups下载:http://balsamiq.com/download +> +> 网盘下载:http://u.115.com/file/e6cw57q3(未注册版本,可试用7天,导出等功能受限) + + [1]: http://balsamiq.com + [2]: /images/2011/06/newMockup.png + [3]: http://balsamiq.com/buy \ No newline at end of file diff --git a/source/_posts/2011-06-02-pencil.md b/source/_posts/2011-06-02-pencil.md new file mode 100644 index 0000000..b544b31 --- /dev/null +++ b/source/_posts/2011-06-02-pencil.md @@ -0,0 +1,28 @@ +--- +title: 快速设计界面原型软件pencil +author: wahyd4 +excerpt: ' 也许你以前还用photoshop设计软件或者网站的UI界面吧,当然photoshop 的华丽和真实性其他软件所无法比拟的,但是photoshop 也有一个很大的缺点,那就是使用photoshop设计一个很完善的UI很费时间,很多时候,也许我们只想快速把脑袋里面的创意和想法初步地画出来。不需要太精确,而只需要一个大概的东西,亦或是想很快速的做出一个效果,和大家讨论。这个时候我们就可以使用这个软件了PENCIL' +layout: post +permalink: /2011/06/pencil/ +categories: + - 酷玩软件 +tags: + - 免费 + - 开源 + - 设计 +--- +> 也许你以前还用photoshop设计软件或者网站的UI界面吧,当然photoshop 的华丽和真实性其他软件所无法比拟的,但是photoshop 也有一个很大的缺点,那就是使用photoshop设计一个很完善的UI很费时间,很多时候,也许我们只想快速把脑袋里面的创意和想法初步地画出来。不需要太精确,而只需要一个大概的东西,亦或是想很快速的做出一个效果,和大家讨论。这个时候我们就可以使用这个软件了PENCIL + +1. 首先pencil是一个开源软件,可以免费下载,其次它可以在firefox浏览器下运行或者 你可以选择在linux 和windows下面独立运行 +2. 可以设计windows,linux 桌面应用程序的UI,也可以设计WEB网站的UI。还有比较卡通的风格,我个人比较推荐这个。 +3. 我个人还是比较推荐在windows下面独立运行,我觉得在笔记本上面firefox 的启动速度还是比较慢的,而且寄宿于浏览器应该没有独立程序运行速度快吧。 +4. 这个软件虽然是全英文的,不过操作还是会问简单的,即使是英文也是比较简单浅显易懂的英文,然而界面的设计也只需要拖动模块即可! + +其他的就不再赘述了,下面是软件的截图和下载地址。 +[][1] + +> 下载地址:[官方下载][2] [网盘下载][3] + + [1]: /images/2011/06/xcsd.jpg + [2]: http://pencil.evolus.vn/en-US/Downloads/Application.aspx + [3]: http://u.115.com/file/aqptf45o \ No newline at end of file diff --git a/source/_posts/2011-06-03-tortoise-svn-checkout-google-code.md b/source/_posts/2011-06-03-tortoise-svn-checkout-google-code.md new file mode 100644 index 0000000..7bc019e --- /dev/null +++ b/source/_posts/2011-06-03-tortoise-svn-checkout-google-code.md @@ -0,0 +1,37 @@ +--- +title: 解决tortoise svn不能checkout Google code +author: wahyd4 +excerpt: > + 不知道各位同学使用svn吗?简单说SVN是一个代码版本管理软件,可以让不同的人更新和同步代码,并对代码进行版本管理。现在google + code 里面这么多开源项目,都是可以去用SVN checkout + 下载下来源代码的,不知道各位有没有尝试呢? +layout: post +permalink: /2011/06/tortoise-svn-checkout-google-code/ +categories: + - 我说 +tags: + - CODE + - google + - SVN +--- +不知道各位同学使用svn吗?简单说SVN是一个代码版本管理软件,可以让不同的人更新和同步代码,并对代码进行版本管理。现在google code 里面这么多开源项目,都是可以去用SVN checkout 下载下来源代码的,不知道各位有没有尝试呢? + +最近在做一个小小的项目的时候用到了SVN,但是当时也发现一个问题,就是tortoise SVN 不能checkout google code 里面的代码。当时用谷歌找了找,可是没发现解决的办法,今天又看到我比较喜欢的google制作的一本电子书——[20thingsilearned][1],里面包含了很多HTML 5和CSS 3特性,而且他还说一个开源项目,说明我们免费的去下载源代码来研究它里面很酷炫的东西。当然也面对了同样的问题,不能checkout. + +
    +
    +
    + # Non-members may check out a read-only working copy anonymously over HTTP.
    svn checkout http://20thingsilearned.googlecode.com/svn/trunk/ 20thingsilearned-read-only +
    +
    +
    + +这是谷歌官方的代码,大概的意思是所有的匿名用户都可以使用下面这个地址进行匿名checkout ,即是不用登陆。不过我试着新建一个文件件,右键,选中tortoise SVN的checkout 选项,还是不行,最终在[国外一个网站][2]找到了解决的办法,即是正确的地址是***http***://20thingsilearned.googlecode.com/svn/trunk/ 去掉后面的那些东西,因为那些东西是为CLI 用户使用的(什么是CLI用户我也不太清楚).总之你使用去掉后面那一块的地址就可以checkout啦。 + +[][3] + +还有如果你是项目发布者checkout不能弹出提示框要求你输入密码的话,请先这样做,请先选中tortoiseSVN里面的import选项,在里面弹出你的SVN地址,比如我的项目的地址是https://moland.googlecode.com/svn/trunk/ moland –username wahyd4。这个回跟上你的项目名称和用户名的。然后就会提示你输入用户名和SVN密码,这个密码是项目里面生成的SNV密码而不是google账户密码哦。然后就会自动import了,然后你就可可以顺利checkout l了、。。 + + [1]: http://code.google.com/p/20thingsilearned/ + [2]: http://superuser.com/questions/44409/cant-checkout-source-from-google-code + [3]: /images/2011/06/xxx.jpg \ No newline at end of file diff --git a/source/_posts/2011-06-16-android-take-photo-and-upload.md b/source/_posts/2011-06-16-android-take-photo-and-upload.md new file mode 100644 index 0000000..965081a --- /dev/null +++ b/source/_posts/2011-06-16-android-take-photo-and-upload.md @@ -0,0 +1,126 @@ +--- +title: Android 拍照并上传图片到服务器源码 +author: wahyd4 +layout: post +permalink: /2011/06/android-take-photo-and-upload/ +categories: + - 编程之美 +tags: + - android + - java + - web +--- +> 更新:我已经把源码共享出来了,大家可以随便下载! +> +> 最近帮老师做一个拍照上传的小android 应用。以前虽然看过这方面的东西,但是没有真正做过东西出来,这次老师要求在一个星期左右做出来,其实还是给了我不少压力,于是自己一边学习,一边写代码,同时在望山找了大量的东西,最初都没有解决这个问题。后面才慢慢解决这些问题。 + +下面是我写的源码给大家分享一下,说明一下,这些代码是调试完成可以运行的,当然这里没有提出全部的完整代码。如果各位需要的话,给我留言吧,我会通过邮箱发给大家的。 补充servlet端源代码:Android上传图片到服务器Server端servlet源码。这里的程序没有涉及服务器端使用的Servlet代码。稍后在贴出来给大家把。 + +
    // 选择拍照上传,获取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对象将拍照所得已经显示在程序里面了,然后之所以将其保存为文件,是为了上传的方便。 + +然后下面是一个上传的图片的方法,大概就是将图片构建成流发送到是、服务器端,这个代码是使用的网上一个前辈的代码,这里不知道他的地址了,但是还是说明一下吧,并表示感谢。 + +
    //上传文件至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源码。 + +> android端和web 端源码下载:http://115.com/file/bevc7e16#uploadsome.rar \ No newline at end of file diff --git a/source/_posts/2011-06-24-android-upload-image-to-server.md b/source/_posts/2011-06-24-android-upload-image-to-server.md new file mode 100644 index 0000000..15360d2 --- /dev/null +++ b/source/_posts/2011-06-24-android-upload-image-to-server.md @@ -0,0 +1,135 @@ +--- +title: Android上传图片到服务器Server端servlet源码 +author: wahyd4 +layout: post +permalink: /2011/06/android-upload-image-to-server/ +categories: + - 头条推荐 + - 编程之美 +tags: + - android + - java + - servlet + - 上传文件 +--- +> 更新:现在提供源码下载了!在文末有地址!

    +

    +> 由于115关闭了外部下载,还是麻烦大家留言写下地址吧,我会把包发给大家的。 +>

    + +> +> +

    +> 最近看到很多朋友都留言回复很开心,我也很高兴,自己做的这样一个小程序可以帮到你们。上篇文章详细讲了如果实现android端的代码,很多朋友都在问s服务器端servlet源代码,这里就贴出来给大家吧,但是最近很忙,就先暂时不详细解释了。 +>

    + +> +> +

    +> 这里说明一点,这个程序是使用了Apache Commons 的一个上传文件的开源组件叫做FileUpload,用的包是commons-fileupload-1.2.2.jar。其他的就不多说了,如果你直接粘贴使用下面代码,请你一定要导入这个包。 +>

    + +> +> +
    +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 拍照并上传图片到服务器源码 +>

    + +> +> +
    +>

    +> android端源码和web 端源码:http://115.com/file/bevc7e16#uploadsome.rar +>

    +>
    \ No newline at end of file diff --git a/source/_posts/2011-07-06-tomcat-db-connection-pool-sql-server.md b/source/_posts/2011-07-06-tomcat-db-connection-pool-sql-server.md new file mode 100644 index 0000000..33fde0a --- /dev/null +++ b/source/_posts/2011-07-06-tomcat-db-connection-pool-sql-server.md @@ -0,0 +1,109 @@ +--- +title: tomcat 7配置数据库连接池,使用SQL Server2005实现 +author: wahyd4 +excerpt: > + 昨天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因是网上的文章几乎没有争对tomcat + 7进行配置的,而且针对SQL + SERVER的也不多,今天上午看了官方的文档,花了一上午时间终于配置好了数据库连接池,这里发给大家看看,如果有什么疑问就留言吧。 +layout: post +permalink: /2011/07/tomcat-db-connection-pool-sql-server/ +categories: + - java + - 编程之美 +tags: + - java + - servlet + - 连接池 +--- +> 昨天看了一些网上的tomcat数据库连接池配置的东西,但是一直没配好,主要原因是网上的文章几乎没有争对tomcat 7进行配置的,而且针对SQL SERVER的也不多,今天上午看了官方的文档,花了一上午时间终于配置好了数据库连接池,这里发给大家看看,如果有什么疑问就留言吧。 + +首先我们需要向项目中导入tomcat-dbcp.jar 、servlet-ap.jar和sql server的驱动sqljdbc4.jar 包到 web-inf 文件夹下的lib目录 。 + +然后增加context.xml + +这里有两种方法,第一种是在tomcat程序目录下面的conf/context.xml里面修改,这里修改之后所有的程序都将都将覆盖数据库连接池,但是这种方法不够灵活。这里我们选择第二种方法 在项目的Web-content/meta-inf 目录下创建一个context.xml文件,在里面添加如下内容: + +
    <Context path="/SYSDEMO" docBase="SYSDEMO" 
    +reloadable="true" crossContext="true"> 
    +<Resource name="jdbc/SYSDEMO" auth="Container" type="javax.sql.DataSource" 
    +maxActive="100" maxIdle="30" maxWait="10000" 
    +username="lenovo" password="lenovo" driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver" 
    +url="jdbc:sqlserver://202.115.90.241:1433;DatabaseName=SYSDEMO"/> 
    +</Context> 
    +
    + +这里需要修改的是 将所有的SYSDEMO改为你自己的使用的数据库的名称 + +将driverClassName改为你所使用数据库的驱动,这里是SQL SERVER的驱动。 + +将url改为jdbc链接该数据库的地址,这里是SQL SERVER的地址, + +将username 、password改为你自己数据库用户名和密码 + +maxActive=”100″ maxIdle=”30″ maxWait=”10000″ + +可以将这三个参数进行修改, + +第一个是最大活动的连接数 + +第二个是最大的未连接数 + +第三个是最长的等待时间,单位是毫秒 + +然后再修改项目的webContent/web-inf/web.xml文件 + +添加如下内容: + +
    <description>MySQL Test App</description>
    +<resource-ref> 
    +   <description>DB Connection</description> 
    +   <res-ref-name>jdbc/blog</res-ref-name> 
    +   <res-type>javax.sql.DataSource</res-type> 
    +   <res-auth>Container</res-auth> 
    +</resource-ref> 
    +
    + +这里必须要改的是: jdbc/SYSDEMO + +改为 jdbc/你自己的数据库 + +好了然后就可以使用了。 + +如下是我测试的servlet文件 + +
    import java.io.IOException;
    +import java.sql.Connection;
    +import java.sql.SQLException;
    +import javax.naming.Context;
    +import javax.naming.InitialContext;
    +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 javax.sql.DataSource;
    +@WebServlet("/TestPool")
    +public class TestPool extends HttpServlet {
    +    private static final long serialVersionUID = 1L;
    +
    +    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    +     try{
    +          Context initContext = new InitialContext();
    +          Context envContext  = (Context)initContext.lookup("java:/comp/env");
    +          DataSource ds = (DataSource)envContext.lookup("jdbc/SYSDEMO");
    +          Connection conn = ds.getConnection();
    +          System.out.println("成功了。。。。。。。。。。");
    +      }catch(Exception e){
    +           System.out.println("出错了。。。。。。。。。。。。。。。。。。");
    +          e.printStackTrace();
    +      }
    +    }
    +}
    +
    +
    + +将 DataSource ds = (DataSource)envContext.lookup(“jdbc/SYSDEMO”); + +“jdbc/SYSDEMO” 的sysdemo改为你前面使用的数据库的名称即可。 + +好了。大功告成。 \ No newline at end of file diff --git a/source/_posts/2011-09-26-move-to-sina.md b/source/_posts/2011-09-26-move-to-sina.md new file mode 100644 index 0000000..da24297 --- /dev/null +++ b/source/_posts/2011-09-26-move-to-sina.md @@ -0,0 +1,27 @@ +--- +title: 搬到新浪,初衷很无耐 +author: wahyd4 +layout: post +permalink: /2011/09/move-to-sina/ +categories: + - 我说 +tags: + - 感慨!! +--- +[][1] + +之所以会将之前的顶级域名博客,弃用,而转而使用这个博客,其实我算是不得已而为之。 + +也许就是舍不得再花钱在这里面吧,想想自己最初的打算,用写博客挣的广告费用,来购买空间,可实际上呢? + +哎,还是省省吧。 + +虽然橡皮泥一直没有把我的空间给我停掉,但是我自己也过意不去啊。毕竟空间他也是花钱买的啊! + +综上所述,所以我还是决定了,就用这个新浪的试试看吧! + +加油新浪,加油Junv! + +争取今天或者明天写一篇新的博客吧! + + [1]: http://junv-wordpress.stor.sinaapp.com/uploads/2011/09/69BBKQGI39GD0005_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2011-09-27-i-think-of-passion.md b/source/_posts/2011-09-27-i-think-of-passion.md new file mode 100644 index 0000000..4fd7eea --- /dev/null +++ b/source/_posts/2011-09-27-i-think-of-passion.md @@ -0,0 +1,15 @@ +--- +title: 积极性之我见 +author: wahyd4 +layout: post +permalink: /2011/09/i-think-of-passion/ +categories: + - 我说 +--- +在我看来积极性可能比能力更加重要,能力可以努力一点一点提升,但是积极性却是一个人内心意识的反应。我们通常我们感兴趣的事情很有积极性,充满斗志。但是有那么一部分人,他之前的行为让你觉得他对这个事情满怀激情,但是一旦他到达一个一个安定、稳定的环境,即使是他自己感兴趣的事情,他也变得懒惰了。难道他们仅仅是因为虚荣心吗? + +最近在帮助老师做一个android项目,由于我是高一级的学生,于是老师叫我负责这个android团队,带领低一级的同学一起参与界面设计、问题讨论、代码编写。但是通过开学这几周下来,我发现这个leader不太好当。我一个人做了几个人的事情。而且我还发现,编程的孩子只喜欢编程,他们不想参与讨论,不想参与草图的制作,心里面想的是,一拿到这个程序立刻开始写代码。界面设计的同学也不愿意开会讨论。设计出来的结果也不能让人满意,没有一点规范可讲。甚至我们最初梦寐以求的进入实验室,他们现在都开始变得不那么渴求,或者说也许只是对实验室名称上的渴求。一旦进入实验室,他们便变得不那么积极了。所有的这一切都让我有一个想法,这些学弟、学妹们怎么了,怎么变得一届不如一届了。 + +我希望他们对每一项新的任务都已积极的心态来对待,其实每一种技能都是你的本钱,我现在体会得越来越深了。开发一个软件,不仅仅是代码、代码虽然重要,但是如果没有软件工程、没有市场营销、没有良好的用户体验设计,其实这个软件根本不能用,即使你的代码写的再好、即使你的算法再优良。以积极的心态去面对每一项任务,把他们当做一个个新的挑战去完成,虽然过程中你可能会很累、很迷茫、很沮丧,但是坚持到最后,你才发现你学到了很多东西,不仅仅是编写代码。 + +积极、乐观的态度,还可以给你的老师、你的上司留下好的印象。最重要的是积极这种生活态度很好!说不出的好。 \ No newline at end of file diff --git a/source/_posts/2011-09-28-finally-give-upandroid-choose-java-web.md b/source/_posts/2011-09-28-finally-give-upandroid-choose-java-web.md new file mode 100644 index 0000000..772b4fd --- /dev/null +++ b/source/_posts/2011-09-28-finally-give-upandroid-choose-java-web.md @@ -0,0 +1,17 @@ +--- +title: 我最终还是放弃了android选择了Java web +author: wahyd4 +layout: post +permalink: /2011/09/finally-give-upandroid-choose-java-web/ +categories: + - 我说 +--- +也许是今天上课听到其他人讲人家去腾讯面试怎么怎么样,我心里还是有很大的震动。我不再想学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了! + +加油! \ No newline at end of file diff --git a/source/_posts/2011-10-08-got-17-50mm-f2-8.md b/source/_posts/2011-10-08-got-17-50mm-f2-8.md new file mode 100644 index 0000000..a187ccc --- /dev/null +++ b/source/_posts/2011-10-08-got-17-50mm-f2-8.md @@ -0,0 +1,21 @@ +--- +title: 入手腾龙17-50mm,F2.8 +author: wahyd4 +layout: post +permalink: /2011/10/got-17-50mm-f2-8/ +categories: + - 我说 +tags: + - 腾龙 +--- +好不容易,求我老汉给了1000,还要把自己原来的镜头卖掉,还要一个月省吃俭用500块钱,才可以买下这个镜头。今天从南充过来,下火车就去把镜头买了¥2130.还要吧比我想象中的贵了几十块钱。不过买了镜头,我的兜里就只剩下20多块钱了。哎,所以必须得尽快卖掉那个原有的套头。 + +猜到了很多人看到我买了镜头就会觉得我很有钱,我真的有钱吗?我难道还不清楚,随便你们怎么说吧!面对流言蜚语我有什么办法。我只能套用那句俗话,走自己的路,让别人说去吧! + +还是说说镜头,大光圈确实效果很不错,镜头很厚实,不够就是对焦的时候声音有点大!马达吱吱地想!! + +镜头没有防抖功能,希望使用的时候不会出现什么问题吧!下面上图一张 + +[][1] + + [1]: http://junv-wordpress.stor.sinaapp.com/uploads/2011/10/psu.jpg \ No newline at end of file diff --git a/source/_posts/2011-10-09-eclipse-auto-complited.md b/source/_posts/2011-10-09-eclipse-auto-complited.md new file mode 100644 index 0000000..b413de1 --- /dev/null +++ b/source/_posts/2011-10-09-eclipse-auto-complited.md @@ -0,0 +1,22 @@ +--- +title: Eclipse 自动补全、联想设置 +author: wahyd4 +layout: post +permalink: /2011/10/eclipse-auto-complited/ +categories: + - 我说 +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+/** + +[][1] + + [1]: http://junv-wordpress.stor.sinaapp.com/uploads/2011/10/Eclipse_content_assist.png \ No newline at end of file diff --git a/source/_posts/2011-10-12-money-is-dirty.md b/source/_posts/2011-10-12-money-is-dirty.md new file mode 100644 index 0000000..95258f5 --- /dev/null +++ b/source/_posts/2011-10-12-money-is-dirty.md @@ -0,0 +1,21 @@ +--- +title: 钱让很多小人原形毕露 +author: wahyd4 +layout: post +permalink: /2011/10/money-is-dirty/ +categories: + - 我说 +--- +这几天学校正在搞奖学金的评比,需要每个同学自己对自己的情况进行评估,你在上一学年所获得的将和其他证书这些都是获得加分,当然学习成绩也是分数中很重要的一部分。于是情况出现了。 + +能够得奖的人为了得更高的将,千方百计地去找分加,同时还要看看其他人是不是快要超过他了。其他人加分是不是正规的,其他人是不是在到处找关系盖章? + +真他妈的恶心,在这个奖学金评比之中我看到了谄媚、欺诈、鬼鬼祟祟,说人家加分这样或者那样的不正常。 + +哎!真的是,钱让小人原形毕露了。 + +想想去年我也不是这个样子啊。看看有些人,把所有能够加的分都加到最高!你妹啊! + +一个奖学金也是,得奖的人都是妈的一群水货,什么都不会,就是会考试、会讨好老师、会拍马屁、会装疯卖傻! + +你们就潇洒吧!我又一次明白了,千里之堤,溃于蚁穴! \ No newline at end of file diff --git a/source/_posts/2011-10-13-ai-tired.md b/source/_posts/2011-10-13-ai-tired.md new file mode 100644 index 0000000..08d3e6f --- /dev/null +++ b/source/_posts/2011-10-13-ai-tired.md @@ -0,0 +1,37 @@ +--- +title: 吵架好烦,哎,心力交瘁 +author: wahyd4 +layout: post +permalink: /2011/10/ai-tired/ +categories: + - 未分类 +--- +好累!好累! + +我哪里错了嘛,就因为我说了一句话不太该说的话! + +然后你就拂袖而去,纵使我再三挽留你,你却越来越凶,每次你这个样子,我真的不晓得应该怎么办! + +我可以怎么办嘛? + +我有这样凶过吗?在你面前,我不晓得脾气好了好多倍 + +你个性却却越来越不好。一摸到就生气,我每次都是在第一时间给你道歉,告诉你我错了。我不该这样做,但是不晓得你想过没有,难道真的每次错的都是我吗,我有那样吼过你吗? + +我不是怕你,是因为我爱你,所以我在忍!我愿意接受这一切。但是你不能每次都这样啊。 + +好累,好烦。不晓得应该从哪里和你沟通, + +今天明明不是因为我们的问题,你却说我偏向你寝室的同学,说我偏向漂亮的女生。 + +真的,大部分关于他们的印象我是从你那里得到的啊。我不喜欢太要强的女生,有啥子了不起嘛。我见多了。 + +你每次都说我是做错了不愿意道歉。但是你又晓得,很多次我真的觉得我没得错,但是我又在道歉。 + +在你面前我永远都是错的。 + +在你们寝室面前,我永远都是被最后考虑的。呼之即来挥之即去。。。。 + +你理解我一下嘛。你怎么就不理解人呢! + +没人理解我,好累。好累! \ No newline at end of file diff --git a/source/_posts/2011-10-15-struts2-i18n.md b/source/_posts/2011-10-15-struts2-i18n.md new file mode 100644 index 0000000..d153da6 --- /dev/null +++ b/source/_posts/2011-10-15-struts2-i18n.md @@ -0,0 +1,71 @@ +--- +title: Struts2 国际化使用、实现 +author: wahyd4 +layout: post +permalink: /2011/10/struts2-i18n/ +categories: + - 编程之美 +tags: + - struts2 + - 国际化 + - 实现 + - 解决 +--- +这学期在学习Java EE,也是我选择的方向。因此很感兴趣。前几天看了Struts2 实现国际化,于是今天下午便真实操作一遍。 + +首先我们要实现国际化,当然得建立相关语言的**.properties**文件。且该文件需放在classes目录下。即是eclipse的src的根目录。 + +struts2的命名规则是 “自定义名\_语言\_国别(英文字母为大写).properties” + +比如: + +> 中文简体:test\_zh\_CN.properties +> +> 美国英文:test\_en\_US.properties + +其他国家的,请大家自己在网上搜索一下吧。 + +.properties 文件的内容形式为key=value + +比如: + +> 中文: username=用户名(这里中文要被转码为另外一种格式,才能使用。转换后为: u7528u6237u540D,eclise会自动帮你转换) +> +> 英文:username=username + +写好properties文件之后。我们就需要修改struts.xml文件让其支持国际化属性,在struts标签下添加: + +> + +这里的value属性的值“test”为你的properties文件的最前面的自定义名。 + +然后再使用的时候,比如我想获取username的国际化属性: + +>  或者   均可以 + +当然还有另外一种方法不需要在struts.xml添加语句。在jsp需要使用国际化资源的时候,添加如下: + +> +> +> 或者 +> +> + +这里的name标签的test和上面的一样。需要注意的是。你每使用一次国际化资源就需要添加一个标签。 + +其他的使用就和一般的struts没有区别了。 + +然后我们可能需要手动切换语言,在jsp页面里面添加: + +>
    <a  href="doAction.action?request_locale=zh_CN"> 中文</a>
    +<a  href="doAction.action?request_locale=en_US">English</a>
    + +
    doAction.action 为我需要显示的Action地址。
    + +
    其他的就不多讲了。这个例子只是Struts2最简单的国际化实现。
    + +  + +  + +  \ No newline at end of file diff --git a/source/_posts/2011-10-19-notepad-settings.md b/source/_posts/2011-10-19-notepad-settings.md new file mode 100644 index 0000000..cb24613 --- /dev/null +++ b/source/_posts/2011-10-19-notepad-settings.md @@ -0,0 +1,73 @@ +--- +title: Notepad++ 设置、插件配置 +author: wahyd4 +layout: post +permalink: /2011/10/notepad-settings/ +categories: + - 我们爱分享 +tags: + - notepad++ + - 下载 + - 插件 + - 自动补充 +--- +

    +

    + 虽然平时也一直在使用Notepad++,但是并没有深入地了解它,没有去鼓捣它。今天中午看了一篇博文说另外一个文本编辑器多么多么强大。我下载使用了一下,发现里面比较好的功能就是函数花括号自动完成、可以更换主题、支持分屏、可以安装插件同时查看几个文件,不过有一点不好就是他是收费软件。于是我想,开源的notepad++是不是也有那些功能呢?在我搜索一番之后,于是就发现了notepad的惊天大秘密。 +

    + +

    + 主题设置 +

    + +

    + 依次点击面板上的settings——style configurator。系统默认提供十几种不同的风格,可供选择。用户还可以为不同的编程语言设置个性化的前、后景色,设置字体大小、种类。我个人使用的主题是Black Board. +

    + +

    + 分屏实现 +

    + +

    + 据我发现目前notepad++没有快捷键可以开启分屏,而是用户右键点击某个打开的文档列表的Tab。选择Move to other view 或者 Copy to other view,即可以移动或者复制到分屏。此时屏幕编程两屏界面(好像notepad++目前只支持两屏) +

    + +

    + 字体的放缩 +

    + +

    + 当光标在目前程序时,按住Ctrl键同时,滚动鼠标滚轮即可实现字体的大小改变。 +

    + +

    + 函数自动补充 +

    + +

    + 依次点击Settings—-preferences—Back up/Auto completion。勾选enable auto-completion on each input.下面有function completion 和word completion可供选择。 +

    + +

    + 同样也可以勾选Function parameter hint on input。这个是函数暗示吧。需要注意的是,我发现在javascript 和html  下提示相对较好,但是都不会补充完全,都是部分补充。笔者在Java下面测试,大致只能提示类一级,不能提示其二级方法。如果你想拥有很好的提示还是使用eclipse吧。 +

    + +

    + 插件安装: +

    + +

    + notepad++支持两种方式安装插件(plugin):第一种,将插件的.dll文件复制到notepad++安装目录的plugin目录下。第二种方法是通过notepad++自带的插件plugin management 进行安装。点击即可实现自动安装插件。安装完成后重启即可工作。 +

    + +

    + 这里推荐一些比较好的插件列表:http://my.oschina.net/hcom/blog/4429 +

    + +

    + Notepad++官方下载:http://notepad-plus-plus.org/ +

    + +

    + 我也是今天才发现notepad的这些功能,希望可以和大家一起交流、讨论。 +

    \ No newline at end of file diff --git a/source/_posts/2011-10-23-solve-npm-js-cant-install-node-js.md b/source/_posts/2011-10-23-solve-npm-js-cant-install-node-js.md new file mode 100644 index 0000000..e3ec477 --- /dev/null +++ b/source/_posts/2011-10-23-solve-npm-js-cant-install-node-js.md @@ -0,0 +1,62 @@ +--- +title: 解决npm.js不能成功安装Node.js包 +author: wahyd4 +layout: post +permalink: /2011/10/solve-npm-js-cant-install-node-js/ +categories: + - node.js +tags: + - Node.js + - npm + - 失败 + - 安装 + - 成功 + - 问题 +--- +[][1] + +学习Node.js当然安装其他开发者开发的各种各样的包一定是必须的,不知道在内地的童鞋发现一个问题没有,我们现在很难从npm.js直接去下载安装包了。笔者在电信和教育网连续试了几天都没有成功。 + +大概介绍一下npm.js吧。npm.js是node.js的一个包管理工具。通过你可以很方便的安装所有node.js的第三方包、类库,而不需要知道他们的地址、不需要再自己一次一次手动安装。 + +过程是这样的:(注:笔者只是在windows环境下测试过) + +一般地我们会在cygwin里面使用” npm install 你需安装的包名”进行安装。但是我反反复复试过多次,均是很难成功,只有昨天夜里一点左右成功过一次。最初我认为我我们的网速太慢了,于是我在cygwin下面配置代理: + +> export http_proxy=http://127.0.0.1:8087 注:我使用的是go agent进行代理(具体安装请google一下)。 + +通过代理我成功地安装成功了npm 本身,但是当我转而通过  npm install …进行安装的时候就出现错误了,npm提示 Socket hang up。具体原因不明,总之npm 不能使用cygwin里面配置的代理,于是我使用 export -n http_proxy 删除代理设置。 + +随后我在网上又收到了另外一个解决方法。在npm里面设置打理 + +> npm  –proxy http://127.0.0.1:8087 + +不过设置好之后使用 npm install …,发现同样不成成功,npm 根本没有通过代理去发请求。 + +最后,我找到一个神器npmf。它的大致介绍是说npmf 是npm的一个复制,他可以永久保存那些包的每个版本。并且你通过npmf安装的包在你下次部署软件的时候依然可用。老实说后面一句话,我没有理解明白,到底是本地缓存,还是在网上缓存。 + +> 各位可以前往npmf网站一看究竟: +> +> 同时还有一个介绍npmf的网页: + +接下来就是见证奇迹的时刻了: + +我们可以直接把npm 默认的registry 换成 npmf的: + +> npm config set registry http://npmfjs.org:9000 +> +> npm install 你需要安装的包 + +是不是发现很神奇,一个包可能10秒甚至更少就可以安装成功。如果你想把registry改成npm默认的 + +> npm config set registry http://registry.npmjs.org + +或者你可以临时使用npmf的registry的包,在你每次安装的包的时候都使用一下语句 + +> npm –registry http://npmfjs.org:9000 install 你需要安装的包 + +告诉你们个秘密:通过上面的两种方法,可以使用代理哦。速度又提高了不少。哈哈。。。。。 + +总结:造成npmjs.org的速度很慢的原因我始终不太清楚。我想npmjs.org的网络应该比npmfjs.org好很多才对。怎么会反过来了。以前我在有人抱怨过说内地使用 npm安装包很难。但是我不知道这是个别现象还是大家都是这个样子。难道G\*F\*W故意把 registry.npmjs.org和谐了?哎,不管了,大家使用我这个方法来吧。欢迎各位留言 + + [1]: /images/2011/10/3.jpg \ No newline at end of file diff --git a/source/_posts/2011-10-25-node-js-connect-mysql.md b/source/_posts/2011-10-25-node-js-connect-mysql.md new file mode 100644 index 0000000..d6d4d49 --- /dev/null +++ b/source/_posts/2011-10-25-node-js-connect-mysql.md @@ -0,0 +1,60 @@ +--- +title: 使用node.js连接mysql数据库 +author: wahyd4 +layout: post +permalink: /2011/10/node-js-connect-mysql/ +categories: + - node.js +tags: + - mysql + - node + - query + - 错误 +--- +

    + +

    + +Javascript连接数据库可能很多同学之前都没有想到吧,不过现在使用node.js我们可以很容易地连接各种数据库。比如传统关系型数据库Mysql以及现在正火的非关系型数据库。这里讲一下如何连接mysql数据库其实官方的文档以及很详细了。 + +首先我们需要连接mysql所需的Module + +
    npm install mysql
    + +接下来就可以开始编程,连接数据库了。 + +
    var mysql = require('mysql');//导入mysql Module
    +var client = mysql.createClient({
    +	user:'root',
    +	password :'root'
    +});
    +/*
    +设置数据库的地址,这里请不要使用localhost,
    +至少我在windows这里出错,如果不写系统默认为localhost
    +*/
    +client.host ='127.0.0.1';
    +client.port = 3306;       //设置数据库端口,如果不写默认为3306
    +client.database = 'node';
    +	//create a database
    +	client.query('create database test_db',function(err){
    +	if (err && err.number != mysql.ERROR_DB_CREATE_EXISTS) {
    +             throw err;   //添加异常处理
    +	}
    +	});
    +
    + +这里我们使用的是client.query();执行sql语句,官方的API中client.query(sql,[params,cb])方法中还可以添加回调函数。 + +执行其他SQL语句也是使用client.query()函数。这里说一下插入语句 + +
    client.query('insert into node_t  values(?,?)',[1000,'Junv']  );
    + +推荐这种参数化插入,而不是将值直接写在里面,可以防止sql注入。 + +注意:今天下午我最初尝试连接数据库的时候,它一直报错“Domain name not found”,只要我们加上 + +
    client.host ='127.0.0.1';
    + +将系统默认的host=localhost改成127.0.0.1即可。具体原因不明。 + +是不是很简单呢?接下来我会写关于express 和jade的博客了。一边学习一边写博客。哈哈。 \ No newline at end of file diff --git a/source/_posts/2011-10-26-node-js-send-e-mail.md b/source/_posts/2011-10-26-node-js-send-e-mail.md new file mode 100644 index 0000000..5e7890a --- /dev/null +++ b/source/_posts/2011-10-26-node-js-send-e-mail.md @@ -0,0 +1,109 @@ +--- +title: 使用Node.js发送电子邮件(E-mail) +author: wahyd4 +layout: post +permalink: /2011/10/node-js-send-e-mail/ +categories: + - node.js +tags: + - email + - Node.js + - 发送 +--- +  + +10月27日更新,可以发送附件 + +今天晚上花了点时间试了一下使用node.js发送电子邮件,也挺简单的,不过有个问题一直没有解决,就是发送附件,我弄明白的时候,会补充资料的。 + +首先我们还是得安装node的第三方用户发送email的module 。 + + npm install nodemailer + +安装好之后,还有一个问题需要注意,我们应该确保用来发送邮件的邮箱地址是打开只是IMAP 、SMTP功能的,这样才可以发送邮件成功。 + +接下来我们就开始写代码,其实很简单,官方网站也都已经说得很清楚了。 + +
    var mail = require('nodemailer');  //包含发送邮件所需module
    +mail.SMTP = {
    +	use_authentication: true, //如果我们使用QQ等邮箱,这个必须写且为true
    +	host: 'smtp.qq.com',   //定义用来发送邮件的邮箱服务器,一般是QQ这些的
    +	port:25,    //定义服务器端口,一般是25	,如果是使用SSL端口一般为465,或者587
    +	ssl:false,     //默认不适用SSL,可以省略不写
    +	user: 'wahyd4@qq.com',   //邮箱用户名
    +	pass:'*****'   //输入邮箱密码
    +}
    +mail.send_mail(
    +{
    +	sender:'wahyd4@qq.com',   //发送邮件的地址
    +	to:'wahyd4@gmail.com',     //发给谁
    +	subject:'随便把',               //主题
    +	body:'Hello,这个邮件来自node.js'
    +},
    +//回调函数,用户判断发送是否成功,如果失败,输出失败原因。
    +function(error,success){
    +	if(!error){
    +		console.log('message success');
    +		}else{
    +		console.log('failed'+error);
    +	}
    +}
    +);
    + +这里我没有使用SSL进行发送,而且发送的是纯文本,也可以发送html,如果发送html则在send_mail函数里面加上: + + html: '

    你好。。邮件来自node.js

    ', + +如果使用SSL进行发送我们则需要将mail.SMTP改为: + +
    mail.SMTP = {
    +	use_authentication: true,  //如果我们使用QQ等邮箱,这个必须写且为true
    +	host: 'smtp.qq.com',   //定义用来发送邮件的邮箱服务器,一般是QQ这些的
    +	port:465,    //定义服务器端口,一般是25	,如果是使用SSL端口一般为465
    +	ssl:true,     //默认不适用SSL,可以省略不写
    +	user: 'wahyd4@qq.com',   //邮箱用户名
    +	pass:'*****'   //输入邮箱密码
    +}
    +
    + +好了。现在你运行程序试试,是不是成功了。 + +我今天晚上遇到一个错误 :**503 ERROR,need EHLO and AUTH first**。就是因为没有添加use_authentication = true的缘故。加上之后,搞定。 + +———————————————————分割线———————- + +发送附件的话。首先我们得使用 + +
    var fs = require('fs');    //导入文件系统相关的包
    + +饭后我们将文件读入内存,并将其发送。 + +
    //读入文件
    +var img = fs.readFileSync(__dirname+"/cat.jpg");
    +
    +var attachment = [{
    +    'filename': "cat.jpg",   //这里只是给附件取名称,而不是导入文件内容
    +    'contents': img         //导入文件
    +}]    //定义我们需要发送的附件
    +
    + +接下来我们需要在send_mail函数中加入发送附件即可 + +
    mail.send_mail(
    +{
    +	sender:'wahyd4@qq.com',   //发送邮件的地址
    +	to:'wahyd4@gmail.com',     //发给谁
    +	subject:'测试发送文件',       //主题
    +	attachments: attachment, //添加附件
    +	body:'Hello,这个邮件来自node.js,包含附件哦,亲!'
    +
    +},
    +
    + +附上Nodemailer的网址:http://www.nodemailer.org/ + +enjoy it! + +最后还是感谢 [andris9][1] 大叔很快帮我解决了问题! + + [1]: https://github.com/andris9 \ No newline at end of file diff --git a/source/_posts/2011-10-29-node-js-web-express.md b/source/_posts/2011-10-29-node-js-web-express.md new file mode 100644 index 0000000..53ee25a --- /dev/null +++ b/source/_posts/2011-10-29-node-js-web-express.md @@ -0,0 +1,51 @@ +--- +title: Node.js web框架express入门(1) +author: wahyd4 +layout: post +permalink: /2011/10/node-js-web-express/ +categories: + - node.js +tags: + - express + - Node.js + - 入门 + - 教程 +--- +从我自己现在学校node.js说了解的情况,我觉得node.js至少比Java简单不少。使用node.js的诸多第三方框架更是让node.js简单了不少。其实express 框架几天前我就看了一些。也写了一些例子。虽然没有完全掌握,但是我想在这里和大家一起分享我学到的知识,也算是一种记录。 + +首先,当然我们也得安装express 的module + +
    npm install express
    + +接下来我们就是可以开始写一个简单的程序了。 + +
    var express = require('express'); //导入module
    + var app = express.createServer(); //创建并返回一个express的server对象
    + app.get('/',function (req,res){ //为跟地址目录设置路由,并且监听get方法。
    +       res.send("Hello,World"); //向浏览器返回hello world
    +  });
    + app.listen(4000); //设置服务器监听4000端口
    +
    + +运行程序,然后再浏览器中输入localhost:4000试试,是不是出现了hello world了。当然这只是一个最简单的程序。下面我们可以再多做一些。 + +这里需要说明一下。默认的,系统将在您的请求处理中,在此例里面即在app.get();里面为你添加下面两句话 + +
    res.charset='utf-8';         //系统默认的res.send()和res.render()都默认采用utf-8编码
    +	res.contentType('Text/html');      //系统提供默认为Text/Html的Content-Type
    +
    + +接下来,我们将通过链接中的地址获取请求内容 + +在程序中加入一段代码如下 + +
    app.get('/hello/:name',function (req,res){
    +       //如果你在地址栏中输入如下/hello/Junv.那么你将在页面中看到name=======Junv
    +      //'/hello/:name'中的name相当于定义一个变量name,并且把我们输入的名字赋值给他。
    +       res.send('name======'+req.params.name);
    +});
    +
    + +试试看看吧。成功了吧! + +对不起,写着写着觉得很别扭。今天就写到这里吧。下次在继续吧。 \ No newline at end of file diff --git a/source/_posts/2011-11-01-node-jade-express-mysql-simplelogin.md b/source/_posts/2011-11-01-node-jade-express-mysql-simplelogin.md new file mode 100644 index 0000000..df35885 --- /dev/null +++ b/source/_posts/2011-11-01-node-jade-express-mysql-simplelogin.md @@ -0,0 +1,182 @@ +--- +title: node、express、mysql、jade实现用户登录数据获取及验证 +author: wahyd4 +layout: post +permalink: /2011/11/node-jade-express-mysql-simplelogin/ +categories: + - node.js +tags: + - express + - form + - jade + - mysql + - node + - 登录验证 +--- +今天要给大家介绍一下如何利用node.js的expressjademysql三个module实现获取form表单的内容以及通过数据库验证登录的正确性。请确保你已经下载好了前面三个module并且你的电脑里面已经安装好mysql。 + +首先看看运行页面: + +[][1] + +再给大家看看整个小系统的目录结构吧: + +[][2] + +请大家按照图中所示的目录结构建立好所有的文档吧。当然jquery你下载就可以了。 + +接下来,我们将建立数据库: + +
    create database receipts;  #创建数据库
    +
    +#创建名为user的表
    +<pre style="padding-left: 30px;">use receipts;
    +create table  user (
    +    userid bigint auto_increment not null primary key,
    +    username  varchar(20) not null,
    +    pass  varchar(30) not null
    +);
    +
    + +然后我们来书写我们所需要的login.jade。这里使用jade,我们需要创建一个简单的layout.jade(模板),在layout模板中我们将定义最基本的网页框架。设定大多数网页相同的部分。这里关于jade的语法我就不多讲了,jade的官网上很详细,直接给出layout的代码: + +
    !!! 5
    +html
    +      head
    +         <span style="color: #ff0000;"> title=title</span>
    +       <span style="color: #ff0000;"> link(rel='stylesheet',type='text/css',href='/css/style.css')</span>
    +      body!=body
    +
    + +注意,由于jade会对我们所写的代码进行重新编码,编码成linux的相关格式,这里建议大家使用类似notepad++、ultra editor等软件时将其编码为UTF-8 无DOM格式,并且请不要在文件中同时使用空格和Tab对文件分隔,会导致报错。这里强调一下比如上述 title=title,这里是把网页的标题赋值给一个变量叫做title,之后我们声明并赋值title。link后面不能添加空格。类似的也一样。 + +下面是我们的登录界面login.jade,代码如下: + +
    form(id='login',method='post',action='/login')
    +    h1 Log In
    +    p(style='margin-top:20px;')   #{error}
    +    fieldset(id='inputs')
    +        input(id='username',name='username',type='text',placeholder='Username',autofocus='',required='')
    +        input(id='password',name='password',type='password',placeholder='Passowrd',required='')
    +     fieldset(id='actions')
    +        input(type='submit',id='submit',value='Log in')
    +        a(href='') Forgot your password
    +        a(href='http://google.com') Register
    +
    + +大致是定义一个完整的表单。并且定义一个显示提示错误信息的地方。当然还有最重要的css代码。我将在后面提供源码给大家下载。 +home.jade和index.jade这个程序里面我们用不到,因此内容可以不管它。 + +接下来,我们就开始写代码了。当然是使用express了。首先我们将写两个路由器在app.js中,一个是显示登录的页面并且作为首页,另外一个是验证登录的页面。 + +//首先添加配置信息 + +
    app.set('view engine','jade');   //设置模板引擎
    +app.set('views',__dirname+'/views');   //配置jade文件夹
    +app.use(express.static(__dirname+'/public'));  //设置静态文件文件夹,比如css,js,/images
    +<span style="color: #ff0000;">app.use(express.bodyParser()); //用户获取form表单数据</span>
    +app.use(express.methodOverride());
    +
    +//设置首页。
    +app.get('/',function(req,res){
    +	res.render('index',{title:'欢迎使用收据管理系统',error:''});
    +});
    +
    + +
    在编写登录验证登录路由之前,我们需要明确这里我们需要处理那些事:
    + +* 获取表单中数据 +* 创建mysql数据库连接 +* 从mysql请求数据 +* 将数据库中数据与form表单进行比较,并返回结果。 + +//获取表单中数据 +var user = req.body.username; //这样便可以获取到form表单中 name=”username”值,依赖于express.bodyParser() + +创建mysql数据库连接。这里我们将做一个小小的封装。将封装的函数写入 user.js + +
    //连接mysql服务器
    +function connectServer(){
    +	//创建mysql连接,设置用户名,密码
    +	var client = mysql.createClient({
    +		user:'root',
    +		password :'root'
    +	});
    +	client.host= '127.0.0.1';
    +	client.port=3306;
    +	<span style="color: #ff0000;">client.database='receipts'; //选择需要使用的数据库,创建数据库时不必须,其他时候必须</span>
    +	return client;   //返回创建好的数据库连接对象
    +}
    +
    + +//接下来我们将从数据库获取数据,同样我们也做一个封装。因为要执行数据库操作。因此我们需要传入一个数据库连接对象client,并且传入用户名,以便查出该用户对应的密码。再则我们需要创建一个回调函数以便于,在获取到数据库中的值后,做出相关判断。按照常规长发很难获取值。应该闭包可以。(这个回调函数得感谢一个群里的大牛。),代码如下。 + +
    //执行mysql查询操作。返回查询获取到的对象
    + function  selectFun(client,username,callback){
    +	//client为一个mysql连接对象
    +	client.query('select pass from user where username="'+username+'"',function(err,results,fields){
    +		if(err) throw err;
    +
    +		callback(results);   //在获取结果之后由回调函数进行相关操作
    +	});
    +}
    +
    + +
    我们将关于数据库的两个函数,写在user.js里面。因此这里我们需要导出这两个函数,使用exports关键字,以便在其他地方可以使用。
    +
    +exports.connect = connectServer;
    +exports.selectFun  = selectFun;    //注意没有函数的()哦。</pre>
    +
    + + +
    
    +
    +
    +
    好了函数写好了。现在我们就该在app.js中使用了。
    + + +
    导入我们刚创建的user.jsmodule
    + + +
    var usr = require('./dao/user');
    + + +
    然后就可以使用了。
    +
    +app.post('/login',function(req,res){
    +	var user = req.body.username,
    +	pass = req.body.password,
    +	client = usr.connect(), //创建数据库连接
    +	result  = null;
    +	 //这里在回调函数里面进行mysql返回值的验证。很重要
    +	<span style="color: #ff0000;">usr.selectFun(client,req.body.username,function(result){</span>
    +		console.log('查询结果为'+result);
    +
    +		if(result[0]===undefined){   //这里需要说明的是,mysql返回结果存在一个数组对象中。
    +			res.send('没有该用户!');
    +			}else{
    +			<span style="color: #ff0000;">if(result[0].pass==req.body.password){</span>
    +				res.send('登录成功');
    +				}else{
    +				    res.send('你输入的密码有误');</pre>
    +                          });
    +			}
    +		}
    +	});  //执行查询
    +});
    +
    + + +
    大家是不是看得太乱了。对不起。都是我的文字控制能力不好。大家凑合着看看吧。我把源码给大家,当然没有包含mysql创建数据库的源码哦。
    + + +
    +
    大家下载源码吧:http://115.com/file/bh03gw2q#
    + +
    + + +
    有什么问题,我们一起交流一起学习吧。
    + + [1]: /images/2011/11/1.jpg + [2]: /images/2011/11/2.jpg \ No newline at end of file diff --git a/source/_posts/2011-11-26-solve-hibernate-8-actions.md b/source/_posts/2011-11-26-solve-hibernate-8-actions.md new file mode 100644 index 0000000..4515b3c --- /dev/null +++ b/source/_posts/2011-11-26-solve-hibernate-8-actions.md @@ -0,0 +1,21 @@ +--- +title: 解决Hibernate只执行8次数据库操作 +author: wahyd4 +layout: post +permalink: /2011/11/solve-hibernate-8-actions/ +categories: + - 我说 +tags: + - Hibernate + - java + - mysql +--- +嗯,原因是这样的,今天下午在写一个获取某个类别下文章数量的时候,需要为每个目录都执行查询,但是我发现一个问题,Hibernate只会执行8次操作,之后就停在那里了,也不会返回数据。 + +噢,真是恼火,最终在百度上找到了解决办法,原因是这样了,因为我每次执行操作的数据库查询的时候没有关闭Session,因此导致出现了问题。 + +同志你只要加上这样这样一句话: + +
    session.close();
    + +好了,再试试,已经搞定了! \ No newline at end of file diff --git a/source/_posts/2011-11-28-solve-ie-addeventlistener.md b/source/_posts/2011-11-28-solve-ie-addeventlistener.md new file mode 100644 index 0000000..3ac39df --- /dev/null +++ b/source/_posts/2011-11-28-solve-ie-addeventlistener.md @@ -0,0 +1,33 @@ +--- +title: 解决IE不兼容addEventListener +author: wahyd4 +layout: post +permalink: /2011/11/solve-ie-addeventlistener/ +categories: + - 编程之美 +tags: + - addEventListener + - attachEvent() + - IE兼容 + - js +--- +OH,IE太多不爽了,js有一些不能兼容。addEventLister就是一个。还好现在IE9已经支持addEventListener了。 + +在IE里面使用的是attachEvent().,比如同样地绑定一个事件。在IE下面和其他非IE内核下面就是这样的: + +
    attachEvent('click',myfunction);   //第一个参数为需要绑定的动作,第二个参数为绑定的事件,这是在IE下面
    +
    +addEventListener('click',myfunction,false); //前两个参数与attachEvent一样,第三个参数为异步还是同步调用,false为异步。而我们通常选择false.
    + +  + +我们可以采用下面的方法实现兼容IE浏览器。如果某个对象节点支持addEventListener()方法。则使用该方法,如果不支持该方法,说嘛浏览器为IE,则调用attachEvent()方法。 + +
    if(tr.addEventListener){
    +       tr.addEventListener("click", handleCheckboxClick, false);
    + }else{
    +      tr.attachEvent("click",handleCheckboxClick);
    +  }   //tr为对象节点。
    +
    + +
    好了,试试吧,看看是不是已经可以了!
    \ No newline at end of file diff --git a/source/_posts/2011-11-29-spring-hibernate-db-too-many-connection.md b/source/_posts/2011-11-29-spring-hibernate-db-too-many-connection.md new file mode 100644 index 0000000..e102537 --- /dev/null +++ b/source/_posts/2011-11-29-spring-hibernate-db-too-many-connection.md @@ -0,0 +1,42 @@ +--- +title: '解决Spring 管理Hibernate执行数据库操作出现“too many connection”的错误' +author: wahyd4 +layout: post +permalink: /2011/11/spring-hibernate-db-too-many-connection/ +categories: + - java +tags: + - Hibernate + - java + - SessionFactory + - Spring + - 错误 +--- +随着代码的不断深入,出现了一些意想不到的错误.如上面所写。 + +mysql数据库报出了can’t open connection , …….. too many connection 等等错误。 + +但是我使用的是Spring  管理Hibernate执行相关操作。我们都知道Spring 在执行Hibernate相关操作完成时会自动关闭连接。 比如执行这样的操作:this.getHibernateTemplate().update(msg); + +我也知道如果我们这样执行: + +
    Session mySession = getSession();
    +		 Query query = mySession.createQuery(hql);
    +        query.setFirstResult(start);
    +        query.setMaxResults(count);
    +		@SuppressWarnings("unchecked")
    +		List<Message> msgs = query.list();
    +		 mySession.close();
    +
    + +需要自己关闭Session.我关闭了Session之后,Hibnerate一次可以执行超过8次的链接。但是,一旦频繁请求时依然会出现文首的错误。 +这是为什么呢? +大致是这样的,Session 上面还有一个SessionFactory,而SessionFactory是负责管理Session的。我们虽然调用了   session.close() +但是没有真正关闭该Session,为了彻底关闭该Session交出使用权,我们需要使用 + +
    this.getSessionFactory().close();//关闭sessionFactory
    +
    + +这样就彻底关闭该Session了。 +好了,现在程序性能提升不少了,我在自己电脑上至少是已经不能刷爆程序了。 +如果说得哪里不对,请指正,因为本人也在学习之中! \ No newline at end of file diff --git a/source/_posts/2011-12-21-java-single-sign-on.md b/source/_posts/2011-12-21-java-single-sign-on.md new file mode 100644 index 0000000..f25be12 --- /dev/null +++ b/source/_posts/2011-12-21-java-single-sign-on.md @@ -0,0 +1,84 @@ +--- +title: Java实现单一账号某时刻单一登录 +author: wahyd4 +layout: post +permalink: /2011/12/java-single-sign-on/ +categories: + - java +tags: + - Application + - java + - JAVA EE + - Session +--- +原谅我使用如此晦涩的词语来表达我的意思,其实我想表达的意思的用java实现类似于当其他人登录你的QQ时,你会收到“你的账号已在其他地方登录,请重新登录。”这样的东西,简单的说就是同一时刻一账号只允许一个人登录在线状态。也许就是保证时间、空间上的唯一性。但是我想强调的是这种效果绝不是单点登录,真正的单点登录是类似于Google中,使用多个产品只需要登录一次,其实QQ也有这样的功能。好了,废话少说下面说正经的。 + +我们最常用的用来验证用户使用登录的东西是Session,但是session并不能达到我们想要的效果,因为每个客户端访问网站的时候都会获得一个session,因此虽然是同一个账号登录系统,只要用户使用的浏览器,服务器都会产生两个session。但是每个客户端访问服务器的服务器的时候都会产生一个SessionId,而这个ID这是唯一的,我们会在后面用到。这里我们使用使用Application 域,在Java EE里面是ServletContext。这个东西是一个全局变量,当Web 程序运行的时候便会一直存在。而且整个程序只有一个Application. + +于是我们可以这样。我们将数据存入Application中。而存入的内容则是:键(key)为当前用户使用用户名或者其他一个可以识别用户身份信息的ID,而值(value)则是用户得到的sessionID。这样便保证了一个账号同时至于一个用户对应。在用户登录的时候想Application中写入 key:value信息,在以后用户每次请求数据的时候,进行验证。看Application中的SessionID与用户本身的SessionID是否一致,不一致则说明多人登录。 + +下面是代码了:(我感觉说了好多废话) + +首先获取Application: + +
    HttpSession session = request.getSession(); //request为HttpServletRequest对象
    +	ServletContext  application = session.getServletContext();
    + +向其中存入我们的验证数据,这里键为用户ID,值为该用户实例获得的sessionID + +
    application.setAttribute(userId, session.getId());//userID为用户ID,
    + +在每次验证的时候,在java里面我们可以采用至少两种方法,一种是Filter(Servlet 过滤器)、另外一种则是Spring AOC 面向切面编程,这里由于我对Spring AOC还不太熟悉,所以就用Filter,Filter具体设置,编写都不说了,只说一些怎么处理。拿到一个客户端来的请求,就进行sessionID比较,如果相同就让请求继续,如果不相同,就将该请求所对于的session清空(如果采用session验证用户是否登录,就可以达到让该用户退出登录),并给出提示信息,跳转到登录页面。 + +
    //获取application对象
    +      ServletContext  application = session.getServletContext();
    +      String sessionId = (String) application.getAttribute(userid);
    +	String trueSessionId = session.getId();
    +	System.out.println("sessionID====="+sessionId+"现在的sessionID"+trueSessionId);
    +	if(sessionId.equals(trueSessionId)){
    +		//do nothing		
    +	}else{
    +		//说明有多个用户登录,去掉其session
    +		session.removeAttribute(sessionKey);
    +		//response.sendRedirect(request.getContextPath() + redirectURL);
    +		response.setContentType("text/html;charset=utf-8");
    +	         PrintWriter out = response.getWriter();
    +	        out.println(MyTools.getAlertMessage(request.getContextPath(), "您的账户已在别处登录,请重新登录", 3));
    +		return;
    +		}
    +
    + +这里可以使用sendRedirect,将用户直接跳转到某个页面,但是这样不太友好,因为没有提示信息,我选择另外一个使用response给用户一些提示信息,然后设置一段时间后跳转到另外的页面。这就是我写的一个静态方法 getAlertMessage,下面贴出具体代码吧。 + +
    /**
    +	 * 生成用户返回的警告页面信息
    +	 * 
    +	 * @param path
    +	 *            系统根目录
    +	 * @param content
    +	 *            需要显示的内容
    +	 * @param second
    +	 *            需要停留消息的秒数
    +	 * @return String
    +	 */
    +	public static String getAlertMessage(String path, String content, int second) {
    +		StringBuilder sb = new StringBuilder();
    +		sb.append("<html>");
    +		sb.append("<head>");
    +		sb.append("<meta http-equiv='refresh' content='3;url=" + path
    +				+ "/login.html'>");
    +		sb.append("<link rel='stylesheet' type='text/css' href='" + path
    +				+ "/css/login.css'>");
    +		sb.append("</head>");
    +		sb.append("<body><form id='login'><fieldset id='inputs' style='font-size:18px;'>"
    +				+ content
    +				+ ","
    +				+ second
    +				+ "秒后你将跳转到登录页面</form></fieldset></body>");
    +		sb.append("</html>");
    +
    +		return sb.toString();
    +
    +	}
    + +好了,现在差不多实现这个功能的主要代码都有了。原谅我的表达能力不够好,如果各位有什么问题,留言吧。我们可以讨论一下。 \ No newline at end of file diff --git a/source/_posts/2011-12-30-nexus-cant-run-under-jdk-1-7.md b/source/_posts/2011-12-30-nexus-cant-run-under-jdk-1-7.md new file mode 100644 index 0000000..d9f5893 --- /dev/null +++ b/source/_posts/2011-12-30-nexus-cant-run-under-jdk-1-7.md @@ -0,0 +1,42 @@ +--- +title: Nexus 1.9 在JDK 1.7下不能安装运行 +author: wahyd4 +layout: post +permalink: /2011/12/nexus-cant-run-under-jdk-1-7/ +categories: + - java +tags: + - java + - JDK + - maven + - Nexus + - Tomcat +--- +Nexus 是一个Maven仓库管理软件,或者叫做Maven包管理软件。一般用于企业内部当做自己的maven仓库,同时也可以对他做一些配置用来优化内部仓库和外部仓库中间的访问等等。如果需要详细了解Nexus和MAVEN相关信息,这里有一篇文章写得比较好 MAVEN仓库管理(穿越吧)。 + +笔者昨天安装Nexus的时候,一直没有成功,不论是通过Nexus自带Jetty服务器,还是通过Tomcat 安装WAR程序都不行。经查看日志文件,发现如下错误: + +> jvm 1 | 2011-12-29 22:59:40 WARN [er\_start\_runner] - +> org.sonatype.security.configuration.source.FileSecurityConfigurationSource - +> No configuration file in place, copying the default one and continuing with it. + +后面我反编译异常里面的class文件。发现原来由于Nexus 没有按照要求生成nexus.xml配置文件,于是他就停止工作了。我尝试将class里面的xml文件拷到相关目录,并命名为nexus.xml,不行。后面检查tmp目录,发现有nexus.xxxxxxx.xml。更加使我确信了。是配置文件的错误。 + +哎。后面所做的工作,就不必多讲了,总之我弄到凌晨1点也没有解决。 + +今天来在同学电脑上安装测试,可行,在老师电脑电脑上安装测试也可行。他们的电脑都使用的是JDK 1.6,我把JAVA\_HOME改成1.6在Tomcat下测试也可行,但是使用Jetty还是不行。这个不难解释,Tomcat调用的是JAVA\_HOME的JDK而程序自带的Jetty调用的是JRE,而我的JRE是1.7。 + +现在真相大白了,是程序不支持Java JDK 1.7. + +  + +需要值得提一下的是我在JDK 1.7下面测试过1.9 和1.9.2.4 两个版本都是不行的。 + +刚才也向他们官网提交了这个bug,第一次提交bug哦! + +[][1]安装Nexus 成功之后,你应该是可以看到这样的画面: + +[][2]期待下一篇文章将OSGI或者MAVEN!!!!加油 + + [1]: http://junv-wordpress.stor.sinaapp.com/uploads/2011/12/psb.png + [2]: http://junv-wordpress.stor.sinaapp.com/uploads/2011/12/sasd.png \ No newline at end of file diff --git a/source/_posts/2012-01-09-spring-osgi-hello-world1.md b/source/_posts/2012-01-09-spring-osgi-hello-world1.md new file mode 100644 index 0000000..351ac04 --- /dev/null +++ b/source/_posts/2012-01-09-spring-osgi-hello-world1.md @@ -0,0 +1,84 @@ +--- +title: Spring OSGI入门(1) Hello World +author: wahyd4 +layout: post +permalink: /2012/01/spring-osgi-hello-world1/ +categories: + - java + - OSGI +tags: + - eclipse + - osgi + - Spring + - 下载 +--- +什么是OSGI,他是一个动态组件、服务模型,简单得说就是在运行程序的时候,你可以动态安装、卸载、开始、停止服务。达到动态配置管理的功能,大大增加程序的灵活性。在Eclipse中就用到了OSGI,eclipse自带了一个osgi容器Equinox用来运行和管理OSGI相关的功能。 + +Spring osgi是springsource基于spring framework开发的OSGI框架,继承了spring的特性,当然使用spring osgi的时候也需要导入spring framwork,现在spring osgi 已经变成了Eclipse 的[gemini blueprint][1]项目。由于本人也在学习之中,具体的细节我也不太清楚,希望与各位分享讨论。 + +这个实例文章,我们将运行一个简单的Spring osgi示例。首先我们需要建立一个项目用来提供Spring osgi运行相关的类库,我们采用maven来获取类库,maven的操作就不多讲了。这里只是涉及简单操作。 + +> 这个程序我所用到的所有资源: +> +> Eclipse 3.7 +> +> Java SDK 1.6 +> +> Maven 3.0、m2e插件 +> +> Spring framework 3.0 、spring source tool 插件 +> +> Spring osgi 1.2.1 + +下面我们就开始一步一步的操作: + +依次点击File–>New–>Project–>选中General下面的Project(建立常规项目) + +[][2]弹出新建项目对话框里面,在项目名称里面填入SpringDMTarget,点击Finish结束。 + +在项目根目录下创建一个target目录,并创建一个pom.xml文件,创建成功后,项目目录如下: + +[][3]由于pom文件里面的依赖关系很多,这里就不一一列出了。下面贴出源文件: + +[pom][4] (点击下载) + +你需要做的就是改变其中一行,把它改成你的电脑的SpringDMTarget项目target的绝对路径: + +> D:javaSpring-DM-Targettarget + +然后选中pom.xml右键点击run as –>Maven install 即可开始运行maven,如果本地没有需要的包,maven会自动下载。等待一段时间后(时间长短由网速快慢而定)。只要看到控制台显示** BUILD SUCCESS** 则表明maven 已经成功下载并将包复制到目标目录了。选中项目,右键点击refresh即可看到target目录下已经下载好了相关的包。 + +[][5]接下来我们就需要配置运行环境了。依次点击Windows–>Preferences–>Plug in Development–>Target Platform 出现如下界面 + +[][6]点击Add按钮,新建一个目标运行环境。选择Nothing:Start with an empty tarfget defination.点击Next,在这个对话框中Name属性行填入对运行环境的命名:我们就填Spring DM,点击右边的Add按钮,弹出Add Content对话框, + +[][7]选择Directory点击Next,在下页对话框点击Browse 从电脑中找到SpringDMTagret项目的target目录。完成后将看到,目录中的包已经全部导入了,点击Finish。选中我们新建的运行环境。 + +[][8]点击OK保存修改。 + +然后配置我们的项目运行选项,我们需要以Osgi Framework形式运行。选中项目,邮件点击Run As–>Run configurations,进入页面 + +[][9]选中 OSGI Framework,右键选择New ,我们可以看到系统已经默认将target platform中所有的包已经选中了。点击RUN,即可运行了。如果出现如下界面即说明运行成功了。 + +[][10]你可以在eclipse 命名行中输入ss查看所有服务运行状态。 + +[][11]大家也注意到了,上面的那两行红色的字, + +>
    log4j:WARN No appenders could be found for logger (org.springframework.osgi.extender.internal.activator.ContextLoaderListener).
    +log4j:WARN Please initialize the log4j system properly.
    + +他提示我们Log4j没有正确配置,下面我们将修复这个“Bug”,各位请看第二讲吧。 + +Spring OSGI入门 Hello World(2) 处理Log4j “WARN No appenders could be found for logger” + + [1]: http://www.eclipse.org/gemini/blueprint/ + [2]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/2.png + [3]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/3.png + [4]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/pom.txt + [5]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/4.jpg + [6]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/5.png + [7]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/6.png + [8]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/7.png + [9]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/8.png + [10]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/9.png + [11]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/10.png \ No newline at end of file diff --git a/source/_posts/2012-01-09-spring-osgi-hello-world2-log4j-warn-no-appenders-could-be-found-for-logger.md b/source/_posts/2012-01-09-spring-osgi-hello-world2-log4j-warn-no-appenders-could-be-found-for-logger.md new file mode 100644 index 0000000..a9b8e3b --- /dev/null +++ b/source/_posts/2012-01-09-spring-osgi-hello-world2-log4j-warn-no-appenders-could-be-found-for-logger.md @@ -0,0 +1,59 @@ +--- +title: 'Spring OSGI入门(2) 处理Log4j “WARN No appenders could be found for logger”' +author: wahyd4 +layout: post +permalink: > + /2012/01/spring-osgi-hello-world2-log4j-warn-no-appenders-could-be-found-for-logger/ +categories: + - java + - OSGI +tags: + - log4j + - osgi + - Spring +--- +上一篇文章,我们讲到了Spring OSGI运行所需要的目标环境已经建好了,不过Log4j出现一个问题,提示我们: + +> log4j:WARN No appenders could be found for logger (org.springframework.osgi.extender.internal.activator.ContextLoaderListener). +> log4j:WARN Please initialize the log4j system properly. + +原因就是我们没有配置Log4j,导致log4j不能正常使用。下面我们就来处理这个问题。 + +打开Eclipse 依次点击File–>Project–>在对话框中选中Fragment Project 点击Next.在对话框中按如下进行配置: + +[][1]项目名称为:info.junv.osgi.log4j,在target platform中选中 an OSGI framework选中 equinox,点击Next: + +在plug-in ID中选择**com.springsource.org.apache.log4j**,点击Finish,完成。 + +在项目src根目录下建立log4j.properties文件。项目结构层次如下: + +[][2]打开log4j.properties,粘贴入一下内容 + +
    log4j.rootLogger = INFO,FirstAppender
    +log4j.appender.FirstAppender = org.apache.log4j.ConsoleAppender
    +log4j.appender.FirstAppender.Threshold = INFO
    +log4j.appender.FirstAppender.ImmediateFlush = true
    +log4j.appender.FirstAppender.Target = System.out
    +log4j.appender.FirstAppender.layout = org.apache.log4j.PatternLayout
    +log4j.appender.FirstAppender.layout.ConversionPattern = [%x]-%p-%d{yyyy-MM-dd HH:mm:ss}-%m[%c]%n
    +
    + +添加点击点击当前项目或者,前面我们写的SpringDMTarget项目,右键选择Run As–>Run Configurations–>OSGI framework(去掉其余所有多于的项目,保证只剩下我们之前导入的包已经当前这个log4j项目。) +同时需要注意的是,为了让程序顺利运行,需要优先启动…osgi.web.extender,这里我们需要将其的start level设置成4以上(因为默认启动等级为4,为了使其优先启动,所以优先级应大于4,笔者在自己电脑上将优先级设成5依然不行,因为建议如果不行,可以将优先级设得大一些,这里我设置为10,运行成功), + +[][3] + +点击RUN。即可以运行。 + +[][4]如果…osgi.web.webextender的优先级不够,将会出现如下错误: + +No Catalina Service found, bailing out[org.springframework.osgi.web.deployer.tomcat.TomcatWarDeployer + +……. + +出现这个错误你需要做的是,将osgi.web.webextender组件的启动优先级别再调高一些。即可。 + + [1]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/11.png + [2]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/13.png + [3]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/15.png + [4]: http://junv-wordpress.stor.sinaapp.com/uploads/2012/01/14.png \ No newline at end of file diff --git a/source/_posts/2012-01-12-maven-study-case-one.md b/source/_posts/2012-01-12-maven-study-case-one.md new file mode 100644 index 0000000..d577129 --- /dev/null +++ b/source/_posts/2012-01-12-maven-study-case-one.md @@ -0,0 +1,113 @@ +--- +title: Maven 学习入门 1 +author: wahyd4 +layout: post +permalink: /2012/01/maven-study-case-one/ +categories: + - java + - MAVEN + - 各类教程 +tags: + - java + - maven + - 入门 + - 教程 +--- +Maven是一个项目构建工具,它不止可以用于Java,可能大家对Ant更加熟悉,个人感觉Maven相比Ant更加高级,功能也更加丰富,使用比较灵活的构建工具,maven还支持插件,当然也有机遇eclipse的插件m2e。现在还有maven的仓库软件nexus,以及更对可以对maven进行持续集成的服务器Hudson。对于Maven过多的讲解就不再这里提及,希望把这个日志作为一个maven学习的记录。下面我们就来一步一步安装并学习使用Maven: + +首先下载并安装maven,进入 下载Maven的已编译好的binary可运行版本。然后将这个压缩文件解压到一个指定目录,比如说D盘。我为了使用方便已经将maven后面的版本号去掉,因为我的文件夹目录为: + +
    D:maven
    + +请下载最新版本3.X版。3.X和2.X的版本有较大差别。 + +接下来我们需要做的是,配置环境变量:**M2_HOME,**其值为你解压的maven文件夹根目录,比如我的就是D:maven. + +添加环境变量 **M2**,其值为%M2_HOME%bin目录。(注:所有配置均在windows下完成) + +
    M2_HOME=D:maven;
    +
    +M2=%M2_HOME%bin;
    +PATH=$M2:$PATH;
    +
    + +保存并退出。然后打开命令行,输入以下命令:**mvn –version** + +如果出现类似于下面这些信息,即是安装成功了。 + +[][1] + +我们也可以通过命令行 **mvn –help**来查看maven 有哪些常用命令。 + +接下来我们对仓库的相关设置做一个简单设置,windows下默认地maven会自动将**c:usersYOURNAE.m2repository**作为仓库,用来存放下载的类库。个人不太喜欢各种这类东西安装在C盘,这样比较消耗资源。因此请将你的maven文件夹下面的 conf/settings.xml打开,找到: + +
    <localRepository>/path/to/local/repo</localRepository>
    + +并将其值改成你想要防止仓库的位置,个人建议放在maven程序下的repository目录下,并去掉该语句前后的注释。 + +紧接着,我们就来创建一个maven项目: + +我们选择一步一步来创建项目,使用命令行切换到你需要创建项目的文件夹,在命令行输入: + +
    mvn archetype:generate
    + +然后按照maven的提醒来输入相关信息. + +大致解释一下相关属性: + +**groupId**:在一个项目或者组织中通常是唯一的标识符,一般以项目或者组织的网址来命名,例:info.junv.test + +**artifactId**:类似于给项目取个别名。例:first-app + +**version**:项目的版本号。例:1.0-snapshot + +**package**:为项目的包名,例:info.junv.test + +当程序显示DUILD SUCCESS 时即表示,项目创建成功了,打开创建项目的文件夹就可以看到刚才创建的文件了。 + +源代码在first-app/src/main下面,first-app/src/test下为测试的相关代码。 + +并且在first-app代码的根目录下生成了pom.xml,该文件非常重要,里面包含程序的相关包依赖和仓库地址,以及其他项目任务等,这里不多讲。 + +下面执行有管项目的其他一些操作:(需要在命令行下进入该项目,例:cd fitst-app) + +
    mvn package #执行项目打包操作,生成target文件夹,jar文件,以及其他相关文件夹
    +
    +
    + +下面是maven官方的一些其他命令,以及解释: + +Although hardly a comprehensive list, these are the most common *default* lifecycle phases executed. + +* **validate**: validate the project is correct and all necessary information is available +* **compile**: compile the source code of the project +* **test**: test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed +* **package**: take the compiled code and package it in its distributable format, such as a JAR. +* **integration-test**: process and deploy the package if necessary into an environment where integration tests can be run +* **verify**: run any checks to verify the package is valid and meets quality criteria +* **install**: install the package into the local repository, for use as a dependency in other projects locally +* **deploy**: done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects. + +There are two other Maven lifecycles of note beyond the *default* list above. They are + +* **clean**: cleans up artifacts created by prior builds + +* **site**: generates site documentation for this project + +   如果需要将源代码编译后并打包:则需要使用package或者install。如果选择install,maven还会将该包存放至本地仓库。
    + +上面这些都是生成普通的项目结构,其实我们平时使用最多的是eclipse项目。maven也可以生成eclipse项目结构。 + +
    mvn eclipse:eclipse 
    + +为了删除eclipse的文件结构我们需要使用: + +
    mvn eclipse:clean 
    + +这样我们就可以在eclipse中导入maven生成的eclipse项目,最方便的还是在eclipse中安装maven 的eclipse插件m2e。 + +m2e下载地址: + +好了,这就是maven的简单应用,希望下一次写pom.xml。 + + [1]: /images/2012/01/111.png \ No newline at end of file diff --git a/source/_posts/2012-01-19-use-maven-deploy-totomcat-7.md b/source/_posts/2012-01-19-use-maven-deploy-totomcat-7.md new file mode 100644 index 0000000..57612f4 --- /dev/null +++ b/source/_posts/2012-01-19-use-maven-deploy-totomcat-7.md @@ -0,0 +1,127 @@ +--- +title: 使用maven部署项目到tomcat 7 +author: wahyd4 +layout: post +permalink: /2012/01/use-maven-deploy-totomcat-7/ +categories: + - java + - MAVEN +tags: + - java + - maven + - Tomcat + - tomcat7 + - 部署项目 +--- +[][1] + +上一篇文章,我们讲了maven的简单入门应用,其实最详尽的文档还是应该看官方的document。我想其他人在网上写都是一些细节上的解释和补充。或者干脆就是简单的大致的描述。 + +今天我想分享的是使用maven插件部署we项目到tomcat 7 中运行。之前如果我们没有使用maven,那么我想很多人都是使用的eclipse自带的run on server中选择tomcat,将web项目部署到tomcat中实现自动部署和运行。我想maven本身强大也在于,我们可以写很多插件(plugin)来扩展maven的功能,实现各种自动化的操作。下面进入正题。 + +对于使用maven插件部署项目到tomcat 6中,网上已经有很多说明。对tomcat 7由于推出不久,笔者今天弄的时候,也在网上找了很多资料感觉都说得不好,或者不能解决问题,于是今天我们来讲这个。(下面Tomcat 均指Tomcat 7) + +tomcat maven plugin 插件已经从codehaus 转到Tomcat官网了,以前的codehaus只支持tomcat 6.这里我们需要使用最新的tomcat maven plugin. 该插件的pom为,即是在pom.xml加入: + +
    <pluginManagement>
    +      <plugins>
    +        <plugin>
    +          <groupId>org.apache.tomcat.maven</groupId>
    +          <artifactId>tomcat6-maven-plugin</artifactId>
    +          <version>2.0-SNAPSHOT</version>
    +        </plugin>
    +        <plugin>
    +          <groupId>org.apache.tomcat.maven</groupId>
    +          <artifactId>tomcat7-maven-plugin</artifactId>
    +          <version>2.0-SNAPSHOT</version>
    +              <configuration>
    +                 <url>http://localhost:8080/manager/html</url>
    +                 <server>tomcat</server>
    +             </configuration>
    +        </plugin>
    +      </plugins>
    +    </pluginManagement>
    +
    + +这样写的目的是既支持tomcat 6 也支持tomcat 7.虽说这个插件是2.0-snapshot版本,不太稳定,不过我试的时候没有遇到任何问题,可以放心使用。(红色部分我们将在下面解释) + +下面我们需要在插件仓库(plugin repositories)和普通仓库(repositories)中添加以下仓库到pom.xml: + +**repository:** + +
    <repository>
    +      <id>people.apache.snapshots</id>
    +      <url>http://repository.apache.org/content/groups/snapshots-group/</url>
    +      <releases>
    +        <enabled>false</enabled>
    +      </releases>
    +      <snapshots>
    +        <enabled>true</enabled>
    +      </snapshots>
    +    </repository>
    +
    + +**plugin repository:** + +
    <pluginRepository>
    +      <id>apache.snapshots</id>
    +      <name>Apache Snapshots</name>
    +      <url>http://repository.apache.org/content/groups/snapshots-group/</url>
    +      <releases>
    +        <enabled>false</enabled>
    +      </releases>
    +      <snapshots>
    +        <enabled>true</enabled>
    +      </snapshots>
    +    </pluginRepository>
    +
    + +这样做的目的是为了保证maven能够下载到maven tomcat plugin。而且是从上述的仓库。 + +为了成功执行maven 部署 我们需要开启tomcat支持 admin-script,manager-gui的权限。 + +admin-script:是让tomcat支持以脚本的形式来管理 + +manager-gui:是让tomcat支持图形化的管理界面。 + +打开tomcat的安装目录的 conf/tomcat-users.xml + +添加以下内容: + +
    <role rolename="admin-script"/>
    +<role rolename="manager-gui"/>
    +<user username="admin" password="admin" roles="manager-gui,admin-script"/>
    +
    + +这里请自行改变用户名和密码。 + +接下来我们还需要配置一下maven,给他添加一个服务器和相关配置,在maven安装目录下的conf/settings.xml添加如下内容。 + +
    <!--Tomcat 7 server -->
    +	 <server>
    +            <id>tomcat</id>
    +            <username>admin</username>
    +            <password>admin</password>
    +     </server>
    +
    + +注意:这里的id需要和上面用醒目绿色标记的ID一致,用户名和密码需要和tomcat里面设置的用户名和密码相同。 + +这里在解释一下,上面红色部分的地址的是因为tomcat7中的部署地址变成了 + +
    http://localhost:8080/manager/html
    + +好了,配置我们就做好了,在部署之前,当然我们需要打开tomcat服务器。tomcat 7部署请使用命令: + +
    mvn tomcat7:deploy
    +
    + +在eclipse只需要在goal中填入 **tomcat7:deploy** 即可。 +不出意外,应该就可以部署成功了。 +童鞋们,试试吧。有什么疑问以及文中的缺点,请指出。谢谢。 + +如果出现以下错误,请按照本文章验证,就可以搞定了。 + +> Failed to execute goal org.codehaus.mojo:tomcat-maven-plugin:1.0:deploy (default-cli) on project my-webapp: Cannot invoke Tomcat manager: Server returned HTTP response code: 403 for URL: + + [1]: /images/2012/01/tomcat.gif \ No newline at end of file diff --git a/source/_posts/2012-01-23-happy-new-year.md b/source/_posts/2012-01-23-happy-new-year.md new file mode 100644 index 0000000..a077642 --- /dev/null +++ b/source/_posts/2012-01-23-happy-new-year.md @@ -0,0 +1,28 @@ +--- +title: 嘿,有人在吗?新年快乐 +author: wahyd4 +layout: post +permalink: /2012/01/happy-new-year/ +categories: + - 我说 +tags: + - linux + - ubuntu +--- +人长大了,过年都觉得没什么意思了。今天大年初一就在家了。有点无聊。下午在弄Linux,本来装了centos minial 可是文字界面,网络连接搞不定。然后就转到ubuntu server 了,之所以这样做,是因为本来用linux也是为了做服务器用,而且服务器版开机不起其他进程的话,占用的内存很少。因为不需要桌面。 + +分享一个经验吧:如果你想在在host 主机商ping virtualbox 里面的linux 虚拟机的话,请把网络连接设成**桥接(Bridge Adapter)**模式.桥接模式,虚拟机将使用和host主机同一类的IP地址。 + +然后推荐使用putty 通过ssh对linux进行控制。这个在windows下面真的很好用。当然请记得在你的虚拟机上安装 + +
    sudo apt-get install openssh-server
    +
    +sudo apt-get install ssh
    +
    +
    + +在这里这大家新年快乐,龙年大吉,当然也祝自己今年又好的发展,马上实习了,希望找到好的工作。 + +  + +  \ No newline at end of file diff --git a/source/_posts/2012-01-28-create-github-page.md b/source/_posts/2012-01-28-create-github-page.md new file mode 100644 index 0000000..6f76dfc --- /dev/null +++ b/source/_posts/2012-01-28-create-github-page.md @@ -0,0 +1,46 @@ +--- +title: 创建自己的github page +author: wahyd4 +layout: post +permalink: /2012/01/create-github-page/ +categories: + - 我说 +tags: + - blog + - github +--- +昨天我自己创建github page的时候,怎么也创建不起,不过自己看都是按照官方文档来的啊。 + +到最后才发现,原来github默认给每个注册用户分配了一个github page,地址就是 你的用户名.github.com,不过默认当然是没有开通的。因此不可以创建其他名称的二级域名作为项目名哦,只能是: + +
    你的用户名.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** + +jekyll-bootstrap: + +  \ No newline at end of file diff --git a/source/_posts/2012-02-02-solve-hudsonjenkins-git-can-not-fetch-from-any-repository.md b/source/_posts/2012-02-02-solve-hudsonjenkins-git-can-not-fetch-from-any-repository.md new file mode 100644 index 0000000..352cf12 --- /dev/null +++ b/source/_posts/2012-02-02-solve-hudsonjenkins-git-can-not-fetch-from-any-repository.md @@ -0,0 +1,34 @@ +--- +title: 解决 hudson/Jenkins git can not fetch from any repository错误 +author: wahyd4 +layout: post +permalink: /2012/02/solve-hudsonjenkins-git-can-not-fetch-from-any-repository/ +categories: + - hudson + - java +tags: + - git + - hudson + - maven + - 持续集成 + - 错误 +--- +hudson是一个很强大的持续集成服务器,支持maven、git等强大工具,通常情况下我们我们使用期来持续集成如git 仓库中的代码,编译后打包发送到maven包仓库如nexus中。 + +今天在执行Hudson编译git仓库中代码的时候发现如下错误: + +
    ERROR: Problem fetching from origin / origin - could be unavailable. Continuing anyway
    +ERROR: Could not fetch from any repository
    +FATAL: Could not fetch from any repository
    +hudson.plugins.git.GitException: Could not fetch from any repository
    +
    + +在网上看到一些资料,这里有一篇Jenkins对git plugin 的描述比较详细: 。 + +发现。出现这种问题的大多是windows 系统上的git。不能fetch数据,也就是将服务器上最新的代码下载下来与本地同步。大致原因就是因为git找不到读取git 仓库中代码所需要的密钥。 + +我们所需要做的是将系统中集成的path to git executable 路径换成msysgitcmdgit.cmd,而不是我们通常设置成的msysgitbingit.exe. + +这样git就可以成功工作了。当然也就可以fetch repository 了。 + +现在应该就可以正常工作了吧。 \ No newline at end of file diff --git a/source/_posts/2012-02-11-maven-remote-deploy-to-jboss-as-7.md b/source/_posts/2012-02-11-maven-remote-deploy-to-jboss-as-7.md new file mode 100644 index 0000000..3b9012f --- /dev/null +++ b/source/_posts/2012-02-11-maven-remote-deploy-to-jboss-as-7.md @@ -0,0 +1,120 @@ +--- +title: maven 远程部署项目到jboss as 7(maven remote deploy to jboss as 7) +author: wahyd4 +layout: post +permalink: /2012/02/maven-remote-deploy-to-jboss-as-7/ +categories: + - java + - jboss + - MAVEN +tags: + - java + - jboss + - jboss as + - maven +--- +在Jboss as 7中,我们需要通过JMX进行远程部署项目,并进行权限验证。而jboss as 7默认是将jmx 远程关闭了的。 + +甚至我们尚且不能通过远程主机的真实IP进行访问。默认情况下我们只能通过localhost或者127.0.0.1 进行访问。 + +下面我们进行通过jboss-as-maven-plugin 远程部署项目到jboss as 7上面。这里只讨论standalone模式。 + +第一步,首先我们需要允许用户通过外网IP访问服务器。打开${JBOSS_HOME}/standalone/configuration/standalone.xml . + +搜索文件中的127.0.0.1 我们大致可以搜索到下面几条信息: + +
    ${jboss.bind.address:127.0.0.1}
    +
    +<interfaces>
    +
    +    <interface name="management">
    +
    +         <inet-address value="${jboss.bind.address.management:127.0.0.1}"/>
    +
    +    </interface>
    +
    +    <interface name="public">
    +
    +        <inet-address value="${jboss.bind.address:127.0.0.1}"/>
    +
    +    </interface>
    +
    +</interfaces>
    +
    +
    + +通过上面这些信息,我们可以看到jboss已经把其web服务器以及web console(web控制台)以及 comman line(命令行)的地址都绑定到127.0.0.1上面了。也就是用户只能通过本地对服务器对其访问与管理。在网上看到有人解释说,这是因为jboss处于安全的考虑。这个姑且不管,我们现在需要实现通过真实IP访问。 + +因为将文件中的127.0.0.1全部替换为0.0.0.0,保存文件后,重启。 + +现在输入服务器的外网IP就已经能够访问了,不管是8080,9990,还是9999端口。 + +下面添加远程JMX的配置 + +同样是该文件。我们通过搜索定位到: + +
    <subsystem xmlns="urn:jboss:domain:jmx:1.0">
    +
    +
    + +在其节点中,添加下面的信息: + +
        <!-- Delete the following line to disable remote access -->
    +    <jmx-connector registry-binding="jmx-connector-registry" server-binding="jmx-connector-server" />
    +
    + +该信息即是让jboss as 7 支持远程访问的关键。如果想取消远程访问,则请删除该行后重启服务器即可。 + +下面是对项目中的pom.xml进行配置,添加jboss-as-maven-plugin + +
    <plugin>
    +
    +    <groupId>org.jboss.as.plugins</groupId>
    +
    +    <artifactId>jboss-as-maven-plugin</artifactId>
    +
    +    <version>7.1.0.CR1b</version>
    +
    +   <executions>
    +
    +       <execution>
    +
    +           <!--  下面部分是让执行 mvn install 时 自动执行jboss-as:deploy
    +
    +           <phase>install</phase>
    +
    +          <goals>
    +
    +             <goal>deploy</goal>
    +
    +          </goals>
    +
    +          <!—这里是远程服务器的相关配置,如果为本地服务器我们完全可以删除configuration 节点及里面的配置信息,本地部署不需要realm 权限认证 –>
    +
    +          <configuration>
    +
    +              <hostname>192.168.1.106</hostname>
    +
    +               <port>9999</port>
    +
    +               <!--  用户名和密码为jboss as 中添加的用户名和密码,如果没有 请通过运行 /bin/adduser..bat 添加 --
    +
    +               <username>admin</username>
    +
    +               <password>wahyd4</password>
    +
    +           </configuration>
    +
    +      </execution>
    +
    +    </executions>
    +
    +</plugin>
    +
    +
    + +现在配置好了,执行mvn install时候 ,maven就会自动部署项目到jboss as 7中了。 + +这个东西,一直在网上都没有找到答案。。 + +格式 没有缩减,请谅解。。有问题,请留言一起讨论。 \ No newline at end of file diff --git a/source/_posts/2012-03-09-maven-deploy-external-jar.md b/source/_posts/2012-03-09-maven-deploy-external-jar.md new file mode 100644 index 0000000..c2460c2 --- /dev/null +++ b/source/_posts/2012-03-09-maven-deploy-external-jar.md @@ -0,0 +1,33 @@ +--- +title: Maven 直接部署第三方jar,bundle,war包到仓库 +author: wahyd4 +layout: post +permalink: /2012/03/maven-deploy-external-jar/ +categories: + - MAVEN +--- +上一个月,很忙碌。到后面还没退加班到9点,所以就很久很久没有打理自己的博客了。今天说一些如何使用maven部署一个只有编译后的jar的第三方包到我们的nexus仓库服务器。通常我们说的部署都是部署一个maven项目,有pom.xml,里面写有部署管理  **  **元素。我们直接使用maven deploy即可以部署成功。今天我们所有的只有一个编译好的jar文件,下面开始部署 + +我们将使用 mvn deploy:deploy-file 命令执行部署。在命令行中输入下面命令: + +
    mvn deploy:deploy-file
    +
    +-Dfile=<你的文件路径>
    +
    +-DgroupId=<你想要命名这个jar的groupId>
    +
    +-DartifactId = <你想要的artifactId,通常为jar的名字即可,如:mysql-jdbc-driver,建议不要有大写>
    +
    +-Dversion= <版本>
    +
    +-Dpackaging =<打包类型,一般有jar,war,ear,bundle,根据自己文件的类型决定>
    +
    +-Drep[ositoryId =<这里是全局配置settings.xml里面用于验证的server Id,要与仓库路径对应>
    +
    +-Durl = <仓库的url地址,会使用上面的server Id里面的用户名和密码进行验证>
    +
    +
    + +回车即可执行了,需要注意的是,版本里面定义的snapshots 和release 要和后面部署的仓库地址对应哦,即是:snaposhot版本只能部署到snapshot仓库。这个很重要。 + +如果你确保所有信息都输入正确,仍然不能部署成功,请尝试 mvn -e deploy:deploy-file \ No newline at end of file diff --git a/source/_posts/2012-03-22-against-sae.md b/source/_posts/2012-03-22-against-sae.md new file mode 100644 index 0000000..e7102d8 --- /dev/null +++ b/source/_posts/2012-03-22-against-sae.md @@ -0,0 +1,15 @@ +--- +title: 抗议SAE !! +author: wahyd4 +layout: post +permalink: /2012/03/against-sae/ +categories: + - 我说 +--- +真心觉得SAE流氓。 + +我这个博客流量这么小,如果按照新浪的指标来的话,每个月可能都得花20块钱。和GAE差太远了。让人恶心。 + +我想我可能会在近期又再一次迁徙吧。 + +哎,当初真的不应该支持新浪?? \ No newline at end of file diff --git a/source/_posts/2012-07-01-come-back.md b/source/_posts/2012-07-01-come-back.md new file mode 100644 index 0000000..dd078c6 --- /dev/null +++ b/source/_posts/2012-07-01-come-back.md @@ -0,0 +1,13 @@ +--- +title: 复活?? +author: wahyd4 +layout: post +permalink: /2012/07/come-back/ +categories: + - 我说 +--- +大概把博客恢复了。不过图片还是不行的。 + +以前的主题也用不了了。造孽。 + +后面再慢慢选主题吧。 \ No newline at end of file diff --git a/source/_posts/2012-07-01-good-open-source.md b/source/_posts/2012-07-01-good-open-source.md new file mode 100644 index 0000000..d8b3b05 --- /dev/null +++ b/source/_posts/2012-07-01-good-open-source.md @@ -0,0 +1,220 @@ +--- +title: 那些年我用过的开源软件、框架 +author: wahyd4 +layout: post +permalink: /2012/07/good-open-source/ +categories: + - 我说 +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插件,可以把节目做得更像移动平台原生,我感觉目前性能还有待提升。 +
    + +
    +
    + +
    + 目前只想到这些,文中对开源软件的描述可能有错,欢迎指出,讨论。 +
    + +
    + 不要重复造轮子。 +
    \ No newline at end of file diff --git a/source/_posts/2012-07-03-maven-compile-nexus.md b/source/_posts/2012-07-03-maven-compile-nexus.md new file mode 100644 index 0000000..a02e21f --- /dev/null +++ b/source/_posts/2012-07-03-maven-compile-nexus.md @@ -0,0 +1,59 @@ +--- +title: 使用maven编译Sonatype Nexus源码 +author: wahyd4 +layout: post +permalink: /2012/07/maven-compile-nexus/ +categories: + - java +tags: + - github + - maven + - Nexus +--- +[][1] + +首先需要使用git客户端从github下载nexus的最新源码: + +因为nexus本身就是一个非常复杂的maven项目,因为我们只能使用maven来编译。如果我直接编译,nexus就会报各种找不到包的错误。 + +原因是我们需要把nexus官方的一个仓库加入到maven的settings文件中。代码为: + +
    <settings>
    +  <profiles>
    +    <profile>
    +      <id>sonatype-forge</id>
    +      <repositories>
    +        <repository>
    +          <id>sonatype-forge</id>
    +          <url>http://repository.sonatype.org/content/groups/forge/</url>
    +          <releases>
    +            <enabled>true</enabled>
    +          </releases>
    +          <snapshots>
    +            <enabled>true</enabled>
    +          </snapshots>
    +        </repository>
    +      </repositories>
    +      <pluginRepositories>
    +        <pluginRepository>
    +          <id>sonatype-forge</id>
    +          <url>http://repository.sonatype.org/content/groups/forge/</url>
    +          <releases>
    +            <enabled>true</enabled>
    +          </releases>
    +          <snapshots>
    +            <enabled>true</enabled>
    +          </snapshots>
    +        </pluginRepository>
    +      </pluginRepositories>
    +    </profile>
    +  </profiles>
    +  <activeProfiles>
    +    <activeProfile>sonatype-forge</activeProfile>
    +  </activeProfiles>
    +</settings>
    +
    + +然后再次编译,就应该可以构建成功了。由于nexus的仓库在国外,个人感觉速度比maven中央仓库要慢一个等级。在编译过程中,maven会自动执行一些插件和完成相关的单元测试。大概等待1-2个小时左右(由电脑性能和网络决定),就可以编译完成了。 + + [1]: /images/2012/07/dsf.png \ No newline at end of file diff --git a/source/_posts/2012-07-04-java-create-git-repository.md b/source/_posts/2012-07-04-java-create-git-repository.md new file mode 100644 index 0000000..0261532 --- /dev/null +++ b/source/_posts/2012-07-04-java-create-git-repository.md @@ -0,0 +1,112 @@ +--- +title: JAVA创建git仓库 +author: wahyd4 +layout: post +permalink: /2012/07/java-create-git-repository/ +categories: + - java +tags: + - git + - java + - jgit + - 入门 +--- +[][1] + +我们通常使用git都是使用的git的客户端,比如linux下的脚本。其实windows下也是间接使用linux脚本来进行操作。不过在现在有完全使用java语言实现的git:JGIT。我们可以通过jgit来完成我们所有的git操作。 + +下面我将简单些一个例子来说明,使用java来创建一个git仓库,并且为仓库添加一个远端仓库地址。如果通过git脚本来执行,那么语句就是: + +
    git init
    +
    +git remote add git://XXXXXX
    +
    +
    + +首先我们需要下载[org.eclipse.jgit.jar][2] 包,并将其加入eclipse 的classpath中(当然这里使用eclipse来完成操作)。示例代码为: + +
    package com.toozhao.git;
    +
    +import java.io.File;
    +import java.io.IOException;
    +import java.net.URISyntaxException;
    +
    +import org.eclipse.jgit.api.Git;
    +import org.eclipse.jgit.api.InitCommand;
    +import org.eclipse.jgit.api.errors.GitAPIException;
    +import org.eclipse.jgit.lib.Repository;
    +import org.eclipse.jgit.lib.StoredConfig;
    +import org.eclipse.jgit.transport.RefSpec;
    +import org.eclipse.jgit.transport.RemoteConfig;
    +import org.eclipse.jgit.transport.URIish;
    +
    +public class TestJGit {
    + public static void main(String[] args) {
    + Repository repo = null;
    +
    +String path = "d:/testjgit"; // 设置git仓库的路径
    + InitCommand init = new InitCommand();
    + // 设置路径
    + init.setBare(false).setDirectory(new File(path));
    + // 执行git init ,创建仓库
    + Git git;
    + try {
    + git = init.call(); // 创建仓库
    + repo = git.getRepository();
    + System.out.println("create repo success");
    + } catch (GitAPIException e) {
    +
    +e.printStackTrace();
    + }
    + // 执行 git remote add 命令
    + // 实例化一个RemoteConfig 对象,用户配置远端仓库
    + StoredConfig config = repo.getConfig();
    + try {
    + RemoteConfig remoteConfig = new RemoteConfig(config, "origin");
    + // 设置你的远端地址
    + URIish uri = new URIish("git://github.com/wahyd4/testjgit");
    + // 设置哪个分支
    + RefSpec refSpec = new RefSpec("+refs/head/*:refs/remotes/origin/*");
    + // 更新配置
    + remoteConfig.addFetchRefSpec(refSpec);
    + remoteConfig.addPushRefSpec(refSpec);
    + remoteConfig.addURI(uri);
    + remoteConfig.addPushURI(uri);
    + // 更新配置
    + remoteConfig.update(config);
    + // 保存到本地文件中
    + config.save();
    + System.out.println("git remote add success.");
    + } catch (URISyntaxException e) {
    +
    +e.printStackTrace();
    + } catch (IOException e) {
    + e.printStackTrace();
    + }
    +
    +}
    +
    +}
    +
    +
    + +执行完本代码后,打开d:/testjgit/可以看到一个.git的隐藏文件夹(如果看不到,请设置去除隐藏文件夹)。表明它已经是一个git仓库了。如果你的eclipse安装有aptana 插件,将仓库导入eclipse,eclipse还可以自动识别出git仓库。而在Egit 1.x插件中版本中都不能识别出。 + +如果你打开.git/CONFIG文件。你还可以看到: + +
    [core]
    + repositoryformatversion = 0
    + filemode = false
    + logallrefupdates = true
    +[remote "origin"]
    + url = git://github.com/wahyd4/testjgit
    + pushurl = git://github.com/wahyd4/testjgit
    + fetch = +refs/head/*:refs/remotes/origin/*
    + push = +refs/head/*:refs/remotes/origin/*
    +
    +
    + +这些既是我们对仓库进行的配置,全都由这个文件定义。使用aptana,你可以直接将仓库push 到你设置的远端地址。 + + [1]: /images/2012/07/logo.png + [2]: http://download.eclipse.org/jgit/maven/org/eclipse/jgit/org.eclipse.jgit/2.0.0.201206130900-r/org.eclipse.jgit-2.0.0.201206130900-r.jar \ No newline at end of file diff --git a/source/_posts/2012-07-05-access-google-reader.md b/source/_posts/2012-07-05-access-google-reader.md new file mode 100644 index 0000000..42c31fc --- /dev/null +++ b/source/_posts/2012-07-05-access-google-reader.md @@ -0,0 +1,27 @@ +--- +title: 解决不能访问google reader +author: wahyd4 +layout: post +permalink: /2012/07/access-google-reader/ +categories: + - 我说 +tags: + - google + - google reader +--- +[][1] + +如果你和我一样都打不开Google reader。或者你打开网页是现实了下面的信息: + +> ### 很抱歉,在 [www.google.cn][2] 上没找到您要访问的网页 + +你的页面跳转到: + +因为我们众所周知的原因,它的确访问不到了。不过我们可以通过下面这个地址访问: + +> http://reader.google.com.tw + +是不是瞬间从屌丝变成高富帅了?哈哈 + + [1]: /images/2012/07/2-110H12040500-L.png + [2]: http://www.google.cn/ \ No newline at end of file diff --git a/source/_posts/2012-07-11-a-simple-nodejs-program.md b/source/_posts/2012-07-11-a-simple-nodejs-program.md new file mode 100644 index 0000000..32d581c --- /dev/null +++ b/source/_posts/2012-07-11-a-simple-nodejs-program.md @@ -0,0 +1,84 @@ +--- +title: 一个Nodejs写的简易订饭程序 +author: wahyd4 +layout: post +permalink: /2012/07/a-simple-nodejs-program/ +categories: + - node.js +tags: + - expressjs + - mysql + - nodejs +--- +因为公司最近开始不统一订饭了,但是我那么点工资到下面食堂去吃,既贵也吃不好,其他那些没工资的实训的同学就更伤不起了。为了脱离机械式的让每个人在纸上写上自己的名字。我用nodejs写了一个简单的程序来完成在网上订饭的功能。用户只需要进入网址。即可以完成订饭。这个程序是用nodejs+mysql完成的。使用了nodejs的 express和mysql包 + +使用下面的命令即可安装: + +
    npm install express
    +
    +npm install mysql
    +
    +
    + +下面就附上代码吧,只有50多行,当然功能也很简单,只有订饭和查询所有已订饭的功能: + +
    <p style="padding-left: 30px;">var express = require('express'),
    + mysql = require('mysql');
    +var app = express.createServer();</p>
    +<p style="padding-left: 30px;">//create mysql client
    +var client = mysql.createClient({
    + user:'root',
    + password :'root'
    +});
    +//设置mysql属性
    +client.host ='127.0.0.1';
    +client.port = 3306;
    +client.database = 'orderfood';</p>
    +<p style="padding-left: 30px;">//拦截地址
    +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<results.length;i++){
    + res.write("姓名:"+results[i].name+"————————————订饭时间:"+results[i].time+"\n");
    + res.write('\n');
    + count++;
    + }
    + res.write("*****************已订饭人数为:"+count+"********************");
    + res.end();
    + return ;
    + }
    + res.send("已订名单为空!\n");
    + });
    + }
    + });
    + });
    +//设置404页面
    +app.get('*', function(req, res){
    + res.send('小样 ,出错了!!我来自node.js哦', 404);
    +});
    +//监听3000端口
    +app.listen(80);
    +console.log("server listen on port 80");</p>
    +
    + +格式可能有点问题哈。 \ No newline at end of file diff --git a/source/_posts/2012-07-13-compare-priority-of-maven-repository.md b/source/_posts/2012-07-13-compare-priority-of-maven-repository.md new file mode 100644 index 0000000..62a211a --- /dev/null +++ b/source/_posts/2012-07-13-compare-priority-of-maven-repository.md @@ -0,0 +1,114 @@ +--- +title: 深入比较几种maven仓库的优先级 +author: wahyd4 +layout: post +permalink: /2012/07/compare-priority-of-maven-repository/ +categories: + - java + - MAVEN +tags: + - java + - maven + - 仓库 + - 深入 +--- +平时在使用maven下载依赖或者maven插件的时候,经常被本地仓库,settings里面profile中设置的仓库,mirror仓库,pom文件中的repository搞疯,因为很可能你就会因为这些你所设置的仓库不能正常编译项目。下面将和大家一起探讨和比较下这几种仓库的优先级别。 + +这里我们有三个仓库 : + +* 远程222.197.xxx仓库 +* localhost镜像,是我自己在本机搭建的一个仓库 +* nexus仓库,是nexus官方的仓库 + +首先考虑这样一种情况:maven本地仓库中拥有该包,而中央仓库、mirror仓库、profile仓库、pom中仓库均不含该包。我们可以看到maven直接首先从本地仓库中找到该包,编译成功。 + +[][1] + +由此可以看出,本地仓库拥有最高的优先级。 + +接下来,我们继续剩下的仓库的优先级,(下面所有情况,都默认本地不拥有我们需要的包)剩下的仓库都是远程仓库,这里我们设定mirror设置的镜像仓库是中央仓库的镜像。那么就可以把mirror当成中央仓库,因为其已经被mirror替换了。 + +这次的场景为:pom文件中定义的仓库(repository)(即远程:222.197.xxx)拥有该包,而mirror(localhost镜像)和profile(nexus仓库)中的仓库不拥有该包。进行测试: + +[][2] + +从这个结果可以看出,maven首先调用了profile中的仓库,其次找到了pom文件中设置的仓库。而mirror没有出现。我们这里可以初步推测优先级别为:profile > pom > mirror,为了验证我们的判断,我们需要在进行一次测试来验证这个结果。 + +场景如下:mirror中拥有该包(222.197),而pom(localhost镜像)和profile(nexus仓库)中均不含有该包。进行测试: + +[][3] + +实际情况的确验证了我们的猜想。那么我们得出这几种maven仓库的优先级别为: + +> 本地仓库 >profile > pom中的repository > mirror + +注意:我也验证过这样的情况,将mirror这样设置: + +
    <mirror>
    +<id>huacloud-central</id>
    +<mirrorOf>*</mirrorOf>
    +<name>name-of-this</name>
    +<url>http://222.197.XXXXXX/nexus/content/groups/public/</url>
    + </mirror>
    +
    + +即是表示该仓库地址为所有仓库的镜像,那么这个时候,maven会忽略掉其他设置的各种类型仓库仓库,只在mirror里面找。所以建议不要这样设置,他将导致pom文件中、pforile里面的仓库设置都失效。 + +> 随便科普一下几种仓库的设置吧: + +pom中的repository: + +
    <repositories>
    +<repository>
    +<id>dsdf</id>
    +<releases>
    +<enabled>true</enabled>
    +</releases>
    +<url>http://222.197.XXXXXX/nexus/content/groups/public/</url>
    +</repository>
    + </repositories>
    +
    + +profile中的仓库是在maven的设置文件(maven安装目录/conf/settings.xml) + +
    <profile>
    + <id>nexus</id>
    + <repositories>
    + <repository>
    + <id>sonatype-forge</id>
    + <url>http://repository.sonatype.org/content/groups/forge/</url>
    + <releases>
    + <enabled>true</enabled>
    + </releases>
    + <snapshots>
    + <enabled>true</enabled>
    + </snapshots>
    + </repository>
    + </repositories>
    + <pluginRepositories>
    + <pluginRepository>
    + <id>sonatype-forge</id>
    + <url>http://repository.sonatype.org/content/groups/forge/</url>
    + <releases>
    + <enabled>true</enabled>
    + </releases>
    + <snapshots>
    + <enabled>true</enabled>
    + </snapshots>
    + </pluginRepository>
    + </pluginRepositories>
    + </profile>
    + </profiles>
    +
    +<!-- 使用下面代码来激活profile-->
    +
    +<activeProfiles>
    +<activeProfile>nexus</activeProfile>
    + </activeProfiles>
    +
    + +mirror设置上文有,这里不再赘述。欢迎留言讨论。 + + [1]: /images/2012/07/1.png + [2]: /images/2012/07/2.png + [3]: /images/2012/07/3.png \ No newline at end of file diff --git a/source/_posts/2012-07-17-mongodb-getstart.md b/source/_posts/2012-07-17-mongodb-getstart.md new file mode 100644 index 0000000..539ddf5 --- /dev/null +++ b/source/_posts/2012-07-17-mongodb-getstart.md @@ -0,0 +1,117 @@ +--- +title: Mongodb 入门 +author: wahyd4 +layout: post +permalink: /2012/07/mongodb-getstart/ +categories: + - mongodb + - 未分类 +tags: + - mongodb + - 入门 +--- +[][1] + +Mongodb是一个非关系型数据库软件(NoSql),以类似json的形式bson存储数据,bson有二进制的json的意思,官方说bson的效率更高,很适合存储类似于对象的数据,这里权当把自己学习的过程记录下来. + +首先是下载安装mongodb,请到[这里][2]下载适合你操作系统的相应版本,这里我们以windows作为介绍. + +将下载的压缩包解压到一个文件夹,我这里为 f:\mongodb + +在mongodb文件夹下创建一个data文件夹,用于存储你的数据库文件. + +下面就可以开始安装运行mongodb了,mongodb不需要进行安装,直接运行即可,进入命令行: + +> cd f:\mongodb\bin +> +> mongod.exe –dbpath=f:\mongodb\data + +–dbpath 为配置你的数据库文件路径,注意在等号附近不要空格哦,否则不能正常运行 + +[][3] + +这样mongodb的服务器端就已经成功运行起来了.下面运行客户端即可.mongodb默认是没有设置登录的用户名和密码,所以我们打开客户端,就可以直接连接上服务器. + +> f:\mongodb\bin\mongo.exe + +如果连接成功, 你会看到会默认连上test数据库.(connectting to :test) + +下面我们就可以进行一些简单的操作了. + +> help    // 查看帮助信息 +> +> db.help()  //在当前数据库内的帮助信息 +> +> show dbs   //查看所有的数据库列表 +> +> use dbname    //dbname为你的数据库,如果你想创建一个新的数据库,将dbname写成一个不存在的数据库名称即可,mongodb会自动帮你创建数据库,同时起到切换数据库的作用 + +在mongodb中没有我们通常说的”表”的概念,与表相对应的是”collection”,我们通常做到增删查改都是都与一个数据库中的collection而言的,在mongodb中不需要特意创建collection,如果我们使用的是一个没有的collection,系统便会自动创建 + +比如我们想插入一条数据: + +
    db.mycollection.save({"name":"junv"});
    +
    +
    + +系统便会自动生成名为mycollection的collection,并将数据存入其中. + +我们也可以使用下面的话来达到同样的效果: + +
    var tom = {"name": "junv"};
    +
    +db.mycollection.save(tom);
    +
    +
    + +我们可以使用 show collections 在查看当前数据库中所拥有的所有collection列表. + +我们需要使用db.mycollection.find() 来查询其中的数据,如果我想查询”name” 为mary 的数据,就需要使用: + +
    db.mycollection.find({"name":"mary"});
    +
    +
    + +在一个collection 中,我们可以插入不同的数据,比如在mycollection中,我们还可以插入: + +
    db.mycollection.insert({"city":"chegndu","nation":"china"});
    +
    +
    + +这正是mongodb带来的优势. + +如果我们查查询若干条数据,或者查询从n到m条数据,就需要使用: + +
    db.mycollection.find().limit(n);
    +
    +db.mycollection.find().limit(n,m)
    +
    +
    + +当查询的数据过多而显示不完是,我们就需要使用 it 命令,来显示剩余部分. + +更新数据,比如我们将“name”为mary的改为lily + +
    var temp = db.mycollection.find({"name":"mary"});
    +
    +temp.name = "lily";     //改变名字
    +
    +db.mycollection.update({"name":"mary"},temp);  //保存
    +
    +
    + +删除数据,将lily这条数据删除: + +
    db.mycollection.remove({"name":"lily"});
    +
    +
    + +删除所有数据: + +
    db.mycollection.remove({})
    +
    +
    + + [1]: /images/2012/07/logo-mongoDB.png + [2]: http://www.mongodb.org/downloads + [3]: /images/2012/07/1_conew1.jpg \ No newline at end of file diff --git a/source/_posts/2012-07-22-html5-full-screen-api.md b/source/_posts/2012-07-22-html5-full-screen-api.md new file mode 100644 index 0000000..4f388d1 --- /dev/null +++ b/source/_posts/2012-07-22-html5-full-screen-api.md @@ -0,0 +1,95 @@ +--- +title: HTML5 全屏(full screen)API +author: wahyd4 +layout: post +permalink: /2012/07/html5-full-screen-api/ +categories: + - HTML5 +tags: + - html5 + - javascript +--- +full screen (全屏)API,现在已经成为了HTML5的一个官方API,不过目前只是被chrome、firefox、safari浏览器实现了,且他们目前都是用的自行实现的函数,而非W3C官方标准的函数。建议在调用之前都检测一下! + +full screen API主要有两个方法:一是执行全屏,另外一个则是退出全屏。他们的调用方法为: + +**执行全屏** + +
    var element =  XXX      //这里你需要得到你的一个网页中的对象,可以是整个网页,或者其中一个节点
    +
    +element.requestFullscreen();     //W3C的方法
    +
    +element.mozRequestFullScreen();     //firefox实现的方法
    +
    +element.webkitRequestFullScreen();     //chrome 和safari实现的方法
    +
    +
    + +**退出全屏** + +
    element.exitFullScreen();     //W3C
    +
    +element.mozCancelFullScreen();     //firefox
    +
    +element.webkitCancelFullScreen();  //chrome和safari
    +
    +
    + +例如,我想全屏整个页面,那个就应该使用: + +
    var documentEle = document.documentElement;
    +
    +documentEle.webkitRequestFullScreen(); //chrome
    +
    +
    + +此外我们还可以监听,full screen 事件,在其状态改变时执行相关操作。 + +
    document.addEventListener("fullscreenchange", function () {}, false);  //w3c
    +
    +document.addEventListener("mozfullscreenchange",function(){},false); //firefox
    +
    +document.addEventListener("webkitfullscreenchange", function () {}, false);  //chrome 和safari
    +
    +
    + +如果我们想获取当前某个对象数否处于全屏状态,就可以使用下面这个属性: + +
    document.fullScreen  //w3c
    +
    +document.mozFullScreen //firefox
    +
    +document.webkitIsFullScreen // chrome 和safari
    +
    +
    + +经过我的测试(chrome 22),应该是HTML 里面所有对象都是可以被全屏的,如:",swf:'',error:'

    The requested content cannot be loaded.
    Please try again later.

    ', +closeBtn:'
    ',next:'',prev:''},openEffect:"fade",openSpeed:300,openEasing:"swing",openOpacity:!0,openMethod:"zoomIn",closeEffect:"fade",closeSpeed:300,closeEasing:"swing",closeOpacity:!0,closeMethod:"zoomOut",nextEffect:"elastic",nextSpeed:300,nextEasing:"swing",nextMethod:"changeIn",prevEffect:"elastic", +prevSpeed:300,prevEasing:"swing",prevMethod:"changeOut",helpers:{overlay:{speedIn:0,speedOut:300,opacity:0.8,css:{cursor:"pointer"},closeClick:!0},title:{type:"float"}}},group:{},opts:{},coming:null,current:null,isOpen:!1,isOpened:!1,player:{timer:null,isActive:!1},ajaxLoad:null,imgPreload:null,transitions:{},helpers:{},open:function(b,c){a.close(!0);b&&!d.isArray(b)&&(b=b instanceof d?d(b).get():[b]);a.isActive=!0;a.opts=d.extend(!0,{},a.defaults,c);d.isPlainObject(c)&&c.keys!==t&&(a.opts.keys=c.keys? +d.extend({},a.defaults.keys,c.keys):!1);a.group=b;a._start(a.opts.index||0)},cancel:function(){a.coming&&!1===a.trigger("onCancel")||(a.coming=null,a.hideLoading(),a.ajaxLoad&&a.ajaxLoad.abort(),a.ajaxLoad=null,a.imgPreload&&(a.imgPreload.onload=a.imgPreload.onabort=a.imgPreload.onerror=null))},close:function(b){a.cancel();a.current&&!1!==a.trigger("beforeClose")&&(a.unbindEvents(),!a.isOpen||b&&!0===b[0]?(d(".fancybox-wrap").stop().trigger("onReset").remove(),a._afterZoomOut()):(a.isOpen=a.isOpened= +!1,d(".fancybox-item, .fancybox-nav").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.closeMethod]()))},play:function(b){var c=function(){clearTimeout(a.player.timer)},e=function(){c();a.current&&a.player.isActive&&(a.player.timer=setTimeout(a.next,a.current.playSpeed))},f=function(){c();d("body").unbind(".player");a.player.isActive=!1;a.trigger("onPlayEnd")};if(a.player.isActive||b&&!1===b[0])f();else if(a.current&&(a.current.loop|| +a.current.index=a.group.length?b=0:0>b&&(b=a.group.length-1)),a.group[b]!==t&&(a.cancel(),a._start(b)))},reposition:function(b, +c){var e;a.isOpen&&(e=a._getPosition(c),b&&"scroll"===b.type?(delete e.position,a.wrap.stop(!0,!0).animate(e,200)):a.wrap.css(e))},update:function(b){a.isOpen&&(u||setTimeout(function(){var c=a.current,e=!b||b&&"orientationchange"===b.type;if(u&&(u=!1,c)){if(!b||"scroll"!==b.type||e)c.autoSize&&"iframe"!==c.type&&(a.inner.height("auto"),c.height=a.inner.height()),(c.autoResize||e)&&a._setDimension(),c.canGrow&&"iframe"!==c.type&&a.inner.height("auto");(c.autoCenter||e)&&a.reposition(b);a.trigger("onUpdate")}}, +200),u=!0)},toggle:function(){a.isOpen&&(a.current.fitToView=!a.current.fitToView,a.update())},hideLoading:function(){q.unbind("keypress.fb");d("#fancybox-loading").remove()},showLoading:function(){a.hideLoading();q.bind("keypress.fb",function(b){27===b.keyCode&&(b.preventDefault(),a.cancel())});d('
    ').click(a.cancel).appendTo("body")},getViewport:function(){return{x:m.scrollLeft(),y:m.scrollTop(),w:k&&s.innerWidth?s.innerWidth:m.width(),h:k&&s.innerHeight? +s.innerHeight:m.height()}},unbindEvents:function(){a.wrap&&a.wrap.unbind(".fb");q.unbind(".fb");m.unbind(".fb")},bindEvents:function(){var b=a.current,c=b.keys;b&&(m.bind("resize.fb orientationchange.fb"+(b.autoCenter&&!b.fixed?" scroll.fb":""),a.update),c&&q.bind("keydown.fb",function(b){var f;f=b.target||b.srcElement;if(!b.ctrlKey&&!b.altKey&&!b.shiftKey&&!b.metaKey&&(!f||!f.type&&!d(f).is("[contenteditable]")))f=b.keyCode,-1b.length))for(i=1;i<=h;i+=1)if(f=b[(c.index+i)%e],g=f.href||d(f).attr("href")||f,"image"===f.type||a.isImage(g))(new Image).src=g},_afterLoad:function(){a.hideLoading(); +!a.coming||!1===a.trigger("afterLoad",a.current)?a.coming=!1:(a.isOpened?(d(".fancybox-item, .fancybox-nav").remove(),a.wrap.stop(!0).removeClass("fancybox-opened"),a.inner.css("overflow","hidden"),a.transitions[a.current.prevMethod]()):(d(".fancybox-wrap").stop().trigger("onReset").remove(),a.trigger("afterClose")),a.unbindEvents(),a.isOpen=!1,a.current=a.coming,a.wrap=d(a.current.tpl.wrap).addClass("fancybox-"+(k?"mobile":"desktop")+" fancybox-type-"+a.current.type+" fancybox-tmp "+a.current.wrapCSS).appendTo("body"), +a.skin=d(".fancybox-skin",a.wrap).css("padding",n(a.current.padding)),a.outer=d(".fancybox-outer",a.wrap),a.inner=d(".fancybox-inner",a.wrap),a._setContent())},_setContent:function(){var b=a.current,c=b.content,e=b.type,f=b.minWidth,g=b.minHeight,i=b.maxWidth,h=b.maxHeight;switch(e){case "inline":case "ajax":case "html":b.selector?c=d("
    ").html(c).find(b.selector):c instanceof d&&(c.parent().hasClass("fancybox-inner")&&c.parents(".fancybox-wrap").unbind("onReset"),c=c.show().detach(),d(a.wrap).bind("onReset", +function(){c.appendTo("body").hide()}));b.autoSize&&(f=d('
    ').appendTo("body").css({minWidth:n(f,"w"),minHeight:n(g,"h"),maxWidth:n(i,"w"),maxHeight:n(h,"h")}).append(c),b.width=f.width(),b.height=f.height(),f.width(a.current.width),f.height()>b.height&&(f.width(b.width+1),b.width=f.width(),b.height=f.height()),c=f.contents().detach(),f.remove());break;case "image":c=b.tpl.image.replace("{href}",b.href);b.aspectRatio=!0;break;case "swf":c= +b.tpl.swf.replace(/\{width\}/g,b.width).replace(/\{height\}/g,b.height).replace(/\{href\}/g,b.href);break;case "iframe":c=d(b.tpl.iframe.replace("{rnd}",(new Date).getTime())).attr("scrolling",b.scrolling).attr("src",b.href),b.scrolling=k?"scroll":"auto"}if("image"===e||"swf"===e)b.autoSize=!1,b.scrolling="visible";"iframe"===e&&b.autoSize?(a.showLoading(),a._setDimension(),a.inner.css("overflow",b.scrolling),c.bind({onCancel:function(){d(this).unbind();a._afterZoomOut()},load:function(){a.hideLoading(); +try{this.contentWindow.document.location&&(a.current.height=d(this).contents().find("body").height())}catch(b){a.current.autoSize=!1}a[a.isOpen?"_afterZoomIn":"_beforeShow"]()}}).appendTo(a.inner)):(a.inner.append(c),a._beforeShow())},_beforeShow:function(){a.coming=null;a.trigger("beforeShow");a._setDimension();a.wrap.hide().removeClass("fancybox-tmp");a.bindEvents();a._preloadImages();a.transitions[a.isOpened?a.current.nextMethod:a.current.openMethod]()},_setDimension:function(){var b=a.wrap,c= +a.inner,e=a.current,f=a.getViewport(),g=e.margin,i=2*e.padding,h=e.width,j=e.height,r=e.maxWidth+i,k=e.maxHeight+i,l=e.minWidth+i,m=e.minHeight+i,p;f.w-=g[1]+g[3];f.h-=g[0]+g[2];o(h)&&0r&&(h=r,j=(h-i)/g+i),j>k&&(j=k,h=(j-i)*g+i),hr||p>k)for(;(h>r||p>k)&&h>l&&p>m;)j-=10,e.aspectRatio?(h=Math.round((j-i)*g+i),hm&&jf.w||p>f.h)&&h>l&&j>m)e.canShrink=!0;a.innerSpace=p-i- +c.height()},_getPosition:function(b){var c=a.current,e=a.getViewport(),f=c.margin,d=a.wrap.width()+f[1]+f[3],i=a.wrap.height()+f[0]+f[2],h={position:"absolute",top:f[0]+e.y,left:f[3]+e.x};c.autoCenter&&c.fixed&&!b&&i<=e.h&&d<=e.w&&(h={position:"fixed",top:f[0],left:f[3]});h.top=n(Math.max(h.top,h.top+(e.h-i)*c.topRatio));h.left=n(Math.max(h.left,h.left+0.5*(e.w-d)));return h},_afterZoomIn:function(){var b=a.current,c=b?b.scrolling:"no";if(b&&(a.isOpen=a.isOpened=!0,a.wrap.addClass("fancybox-opened"), +a.inner.css("overflow","yes"===c?"scroll":"no"===c?"hidden":c),a.trigger("afterShow"),a.update(),(b.closeClick||b.nextClick)&&a.inner.css("cursor","pointer").bind("click.fb",function(c){if(!d(c.target).is("a")&&!d(c.target).parent().is("a"))a[b.closeClick?"close":"next"]()}),b.closeBtn&&d(b.tpl.closeBtn).appendTo(a.skin).bind("click.fb",a.close),b.arrows&&1c.end&&(g=1-g),d-=a.innerSpace*g),a.inner[e](d)},zoomIn:function(){var b=a.wrap,c=a.current,e=c.openEffect,f="elastic"===e,g=d.extend({},c.dim, +a._getPosition(f)),i=d.extend({opacity:1},g);delete i.position;f?(g=this.getOrigPosition(),c.openOpacity&&(g.opacity=0),a.outer.add(a.inner).width("auto").height("auto")):"fade"===e&&(g.opacity=0);b.css(g).show().animate(i,{duration:"none"===e?0:c.openSpeed,easing:c.openEasing,step:f?this.step:null,complete:a._afterZoomIn})},zoomOut:function(){var b=a.wrap,c=a.current,d=c.openEffect,f="elastic"===d,g={opacity:0};f&&("fixed"===b.css("position")&&b.css(a._getPosition(!0)),g=this.getOrigPosition(),c.closeOpacity&& +(g.opacity=0));b.animate(g,{duration:"none"===d?0:c.closeSpeed,easing:c.closeEasing,step:f?this.step:null,complete:a._afterZoomOut})},changeIn:function(){var b=a.wrap,c=a.current,d=c.nextEffect,f="elastic"===d,g=a._getPosition(f),i={opacity:1};g.opacity=0;f&&(g.top=n(parseInt(g.top,10)-200),i.top="+=200px");b.css(g).show().animate(i,{duration:"none"===d?0:c.nextSpeed,easing:c.nextEasing,complete:a._afterZoomIn})},changeOut:function(){var b=a.wrap,c=a.current,e=c.prevEffect,f={opacity:0};b.removeClass("fancybox-opened"); +"elastic"===e&&(f.top="+=200px");b.animate(f,{duration:"none"===e?0:c.prevSpeed,easing:c.prevEasing,complete:function(){d(this).trigger("onReset").remove()}})}};a.helpers.overlay={overlay:null,update:function(){var a,c;this.overlay.width("100%").height("100%");d.browser.msie||k?(a=Math.max(l.documentElement.scrollWidth,l.body.scrollWidth),c=Math.max(l.documentElement.offsetWidth,l.body.offsetWidth),a=a
    ').css(b.css).appendTo("body"),b.closeClick&&this.overlay.bind("click.fb",a.close),a.current.fixed&&!k?this.overlay.addClass("overlay-fixed"):(this.update(),this.onUpdate=function(){this.update()}),this.overlay.fadeTo(b.speedIn,b.opacity))},afterClose:function(a){this.overlay&&this.overlay.fadeOut(a.speedOut||0,function(){d(this).remove()});this.overlay=null}};a.helpers.title={beforeShow:function(b){var c; +if(c=a.current.title)c=d('
    '+c+"
    ").appendTo("body"),"float"===b.type&&(c.width(c.width()),c.wrapInner(''),a.current.margin[2]+=Math.abs(parseInt(c.css("margin-bottom"),10))),c.appendTo("over"===b.type?a.inner:"outside"===b.type?a.wrap:a.skin)}};d.fn.fancybox=function(b){var c=d(this),e=this.selector||"",f,g=function(g){var h=this,j=f,k;!g.ctrlKey&&!g.altKey&&!g.shiftKey&&!g.metaKey&&!d(h).is(".fancybox-wrap")&& +(g.preventDefault(),g=b.groupAttr||"data-fancybox-group",k=d(h).attr(g),k||(g="rel",k=h[g]),k&&""!==k&&"nofollow"!==k&&(h=e.length?d(e):c,h=h.filter("["+g+'="'+k+'"]'),j=h.index(this)),b.index=j,a.open(h,b))},b=b||{};f=b.index||0;e?q.undelegate(e,"click.fb-start").delegate(e,"click.fb-start",g):c.unbind("click.fb-start").bind("click.fb-start",g);return this};d(l).ready(function(){a.defaults.fixed=d.support.fixedPosition||!(d.browser.msie&&6>=d.browser.version)&&!k})})(window,document,jQuery); \ No newline at end of file diff --git a/source/javascripts/libs/ender.js b/source/javascripts/libs/ender.js new file mode 100644 index 0000000..5e56fd8 --- /dev/null +++ b/source/javascripts/libs/ender.js @@ -0,0 +1,1497 @@ +/*! + * Ender: open module JavaScript framework + * copyright Dustin Diaz & Jacob Thornton 2011 (@ded @fat) + * https://ender.no.de + * License MIT + * Build: ender -b jeesh + */ +!function (context) { + + function aug(o, o2) { + for (var k in o2) { + k != 'noConflict' && k != '_VERSION' && (o[k] = o2[k]); + } + return o; + } + + function boosh(s, r) { + var els; + if (ender._select && typeof s == 'string' || s.nodeName || s.length && 'item' in s || s == window) { //string || node || nodelist || window + els = ender._select(s, r); + els.selector = s; + } else { + els = isFinite(s.length) ? s : [s]; + } + return aug(els, boosh); + } + + function ender(s, r) { + return boosh(s, r); + } + + aug(ender, { + _VERSION: '0.2.0', + ender: function (o, chain) { + aug(chain ? boosh : ender, o); + } + }); + + aug(boosh, { + forEach: function (fn, scope) { + // opt out of native forEach so we can intentionally call our own scope + // defaulting to the current item + for (var i = 0, l = this.length; i < l; ++i) { + i in this && fn.call(scope || this[i], this[i], i, this); + } + // return self for chaining + return this; + } + }); + + var old = context.$; + ender.noConflict = function () { + context.$ = old; + return this; + }; + + (typeof module !== 'undefined') && module.exports && (module.exports = ender); + // use subscript notation as extern for Closure compilation + context['ender'] = context['$'] = ender; + +}(this); +/*! + * bean.js - copyright Jacob Thornton 2011 + * https://github.com/fat/bean + * MIT License + * special thanks to: + * dean edwards: http://dean.edwards.name/ + * dperini: https://github.com/dperini/nwevents + * the entire mootools team: github.com/mootools/mootools-core + */ +!function (context) { + var __uid = 1, registry = {}, collected = {}, + overOut = /over|out/, + namespace = /[^\.]*(?=\..*)\.|.*/, + stripName = /\..*/, + addEvent = 'addEventListener', + attachEvent = 'attachEvent', + removeEvent = 'removeEventListener', + detachEvent = 'detachEvent', + doc = context.document || {}, + root = doc.documentElement || {}, + W3C_MODEL = root[addEvent], + eventSupport = W3C_MODEL ? addEvent : attachEvent, + + isDescendant = function (parent, child) { + var node = child.parentNode; + while (node != null) { + if (node == parent) { + return true; + } + node = node.parentNode; + } + }, + + retrieveUid = function (obj, uid) { + return (obj.__uid = uid || obj.__uid || __uid++); + }, + + retrieveEvents = function (element) { + var uid = retrieveUid(element); + return (registry[uid] = registry[uid] || {}); + }, + + listener = W3C_MODEL ? function (element, type, fn, add) { + element[add ? addEvent : removeEvent](type, fn, false); + } : function (element, type, fn, add, custom) { + custom && add && (element['_on' + custom] = element['_on' + custom] || 0); + element[add ? attachEvent : detachEvent]('on' + type, fn); + }, + + nativeHandler = function (element, fn, args) { + return function (event) { + event = fixEvent(event || ((this.ownerDocument || this.document || this).parentWindow || context).event); + return fn.apply(element, [event].concat(args)); + }; + }, + + customHandler = function (element, fn, type, condition, args) { + return function (event) { + if (condition ? condition.call(this, event) : W3C_MODEL ? true : event && event.propertyName == '_on' + type || !event) { + fn.apply(element, [event].concat(args)); + } + }; + }, + + addListener = function (element, orgType, fn, args) { + var type = orgType.replace(stripName, ''), + events = retrieveEvents(element), + handlers = events[type] || (events[type] = {}), + uid = retrieveUid(fn, orgType.replace(namespace, '')); + if (handlers[uid]) { + return element; + } + var custom = customEvents[type]; + if (custom) { + fn = custom.condition ? customHandler(element, fn, type, custom.condition) : fn; + type = custom.base || type; + } + var isNative = nativeEvents[type]; + fn = isNative ? nativeHandler(element, fn, args) : customHandler(element, fn, type, false, args); + isNative = W3C_MODEL || isNative; + if (type == 'unload') { + var org = fn; + fn = function () { + removeListener(element, type, fn) && org(); + }; + } + element[eventSupport] && listener(element, isNative ? type : 'propertychange', fn, true, !isNative && type); + handlers[uid] = fn; + fn.__uid = uid; + return type == 'unload' ? element : (collected[retrieveUid(element)] = element); + }, + + removeListener = function (element, orgType, handler) { + var uid, names, uids, i, events = retrieveEvents(element), type = orgType.replace(stripName, ''); + if (!events || !events[type]) { + return element; + } + names = orgType.replace(namespace, ''); + uids = names ? names.split('.') : [handler.__uid]; + for (i = uids.length; i--;) { + uid = uids[i]; + handler = events[type][uid]; + delete events[type][uid]; + if (element[eventSupport]) { + type = customEvents[type] ? customEvents[type].base : type; + var isNative = W3C_MODEL || nativeEvents[type]; + listener(element, isNative ? type : 'propertychange', handler, false, !isNative && type); + } + } + return element; + }, + + del = function (selector, fn, $) { + return function (e) { + var array = typeof selector == 'string' ? $(selector, this) : selector; + for (var target = e.target; target && target != this; target = target.parentNode) { + for (var i = array.length; i--;) { + if (array[i] == target) { + return fn.apply(target, arguments); + } + } + } + }; + }, + + add = function (element, events, fn, delfn, $) { + if (typeof events == 'object' && !fn) { + for (var type in events) { + events.hasOwnProperty(type) && add(element, type, events[type]); + } + } else { + var isDel = typeof fn == 'string', types = (isDel ? fn : events).split(' '); + fn = isDel ? del(events, delfn, $) : fn; + for (var i = types.length; i--;) { + addListener(element, types[i], fn, Array.prototype.slice.call(arguments, isDel ? 4 : 3)); + } + } + return element; + }, + + remove = function (element, orgEvents, fn) { + var k, type, events, + isString = typeof(orgEvents) == 'string', + names = isString && orgEvents.replace(namespace, ''), + rm = removeListener, + attached = retrieveEvents(element); + if (isString && /\s/.test(orgEvents)) { + orgEvents = orgEvents.split(' '); + var i = orgEvents.length - 1; + while (remove(element, orgEvents[i]) && i--) {} + return element; + } + events = isString ? orgEvents.replace(stripName, '') : orgEvents; + if (!attached || (isString && !attached[events])) { + return element; + } + if (typeof fn == 'function') { + rm(element, events, fn); + } else if (names) { + rm(element, orgEvents); + } else { + rm = events ? rm : remove; + type = isString && events; + events = events ? (fn || attached[events] || events) : attached; + for (k in events) { + events.hasOwnProperty(k) && rm(element, type || k, events[k]); + } + } + return element; + }, + + fire = function (element, type, args) { + var evt, k, i, types = type.split(' '); + for (i = types.length; i--;) { + type = types[i].replace(stripName, ''); + var isNative = nativeEvents[type], + isNamespace = types[i].replace(namespace, ''), + handlers = retrieveEvents(element)[type]; + if (isNamespace) { + isNamespace = isNamespace.split('.'); + for (k = isNamespace.length; k--;) { + handlers[isNamespace[k]] && handlers[isNamespace[k]].apply(element, args); + } + } else if (!args && element[eventSupport]) { + fireListener(isNative, type, element); + } else { + for (k in handlers) { + handlers.hasOwnProperty(k) && handlers[k].apply(element, args); + } + } + } + return element; + }, + + fireListener = W3C_MODEL ? function (isNative, type, element) { + evt = document.createEvent(isNative ? "HTMLEvents" : "UIEvents"); + evt[isNative ? 'initEvent' : 'initUIEvent'](type, true, true, context, 1); + element.dispatchEvent(evt); + } : function (isNative, type, element) { + isNative ? element.fireEvent('on' + type, document.createEventObject()) : element['_on' + type]++; + }, + + clone = function (element, from, type) { + var events = retrieveEvents(from), obj, k; + obj = type ? events[type] : events; + for (k in obj) { + obj.hasOwnProperty(k) && (type ? add : clone)(element, type || from, type ? obj[k] : k); + } + return element; + }, + + fixEvent = function (e) { + var result = {}; + if (!e) { + return result; + } + var type = e.type, target = e.target || e.srcElement; + result.preventDefault = fixEvent.preventDefault(e); + result.stopPropagation = fixEvent.stopPropagation(e); + result.target = target && target.nodeType == 3 ? target.parentNode : target; + if (~type.indexOf('key')) { + result.keyCode = e.which || e.keyCode; + } else if ((/click|mouse|menu/i).test(type)) { + result.rightClick = e.which == 3 || e.button == 2; + result.pos = { x: 0, y: 0 }; + if (e.pageX || e.pageY) { + result.clientX = e.pageX; + result.clientY = e.pageY; + } else if (e.clientX || e.clientY) { + result.clientX = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft; + result.clientY = e.clientY + document.body.scrollTop + document.documentElement.scrollTop; + } + overOut.test(type) && (result.relatedTarget = e.relatedTarget || e[(type == 'mouseover' ? 'from' : 'to') + 'Element']); + } + for (var k in e) { + if (!(k in result)) { + result[k] = e[k]; + } + } + return result; + }; + + fixEvent.preventDefault = function (e) { + return function () { + if (e.preventDefault) { + e.preventDefault(); + } + else { + e.returnValue = false; + } + }; + }; + + fixEvent.stopPropagation = function (e) { + return function () { + if (e.stopPropagation) { + e.stopPropagation(); + } else { + e.cancelBubble = true; + } + }; + }; + + var nativeEvents = { click: 1, dblclick: 1, mouseup: 1, mousedown: 1, contextmenu: 1, //mouse buttons + mousewheel: 1, DOMMouseScroll: 1, //mouse wheel + mouseover: 1, mouseout: 1, mousemove: 1, selectstart: 1, selectend: 1, //mouse movement + keydown: 1, keypress: 1, keyup: 1, //keyboard + orientationchange: 1, // mobile + touchstart: 1, touchmove: 1, touchend: 1, touchcancel: 1, // touch + gesturestart: 1, gesturechange: 1, gestureend: 1, // gesture + focus: 1, blur: 1, change: 1, reset: 1, select: 1, submit: 1, //form elements + load: 1, unload: 1, beforeunload: 1, resize: 1, move: 1, DOMContentLoaded: 1, readystatechange: 1, //window + error: 1, abort: 1, scroll: 1 }; //misc + + function check(event) { + var related = event.relatedTarget; + if (!related) { + return related == null; + } + return (related != this && related.prefix != 'xul' && !/document/.test(this.toString()) && !isDescendant(this, related)); + } + + var customEvents = { + mouseenter: { base: 'mouseover', condition: check }, + mouseleave: { base: 'mouseout', condition: check }, + mousewheel: { base: /Firefox/.test(navigator.userAgent) ? 'DOMMouseScroll' : 'mousewheel' } + }; + + var bean = { add: add, remove: remove, clone: clone, fire: fire }; + + var clean = function (el) { + var uid = remove(el).__uid; + if (uid) { + delete collected[uid]; + delete registry[uid]; + } + }; + + if (context[attachEvent]) { + add(context, 'unload', function () { + for (var k in collected) { + collected.hasOwnProperty(k) && clean(collected[k]); + } + context.CollectGarbage && CollectGarbage(); + }); + } + + var oldBean = context.bean; + bean.noConflict = function () { + context.bean = oldBean; + return this; + }; + + (typeof module !== 'undefined' && module.exports) ? + (module.exports = bean) : + (context['bean'] = bean); + +}(this);!function ($) { + var b = bean.noConflict(), + integrate = function (method, type, method2) { + var _args = type ? [type] : []; + return function () { + for (var args, i = 0, l = this.length; i < l; i++) { + args = [this[i]].concat(_args, Array.prototype.slice.call(arguments, 0)); + args.length == 4 && args.push($); + !arguments.length && method == 'add' && type && (method = 'fire'); + b[method].apply(this, args); + } + return this; + }; + }; + + var add = integrate('add'), + remove = integrate('remove'), + fire = integrate('fire'); + + var methods = { + + on: add, + addListener: add, + bind: add, + listen: add, + delegate: add, + + unbind: remove, + unlisten: remove, + removeListener: remove, + undelegate: remove, + + emit: fire, + trigger: fire, + + cloneEvents: integrate('clone'), + + hover: function (enter, leave) { + for (var i = 0, l = this.length; i < l; i++) { + b.add.call(this, this[i], 'mouseenter', enter); + b.add.call(this, this[i], 'mouseleave', leave); + } + return this; + } + }; + + var shortcuts = [ + 'blur', 'change', 'click', 'dblclick', 'error', 'focus', 'focusin', + 'focusout', 'keydown', 'keypress', 'keyup', 'load', 'mousedown', + 'mouseenter', 'mouseleave', 'mouseout', 'mouseover', 'mouseup', + 'resize', 'scroll', 'select', 'submit', 'unload' + ]; + + for (var i = shortcuts.length; i--;) { + var shortcut = shortcuts[i]; + methods[shortcut] = integrate('add', shortcut); + } + + $.ender(methods, true); +}(ender); +/*! + * bonzo.js - copyright @dedfat 2011 + * https://github.com/ded/bonzo + * Follow our software http://twitter.com/dedfat + * MIT License + */ +!function (context) { + + var doc = context.document, + html = doc.documentElement, + query = null, + byTag = 'getElementsByTagName', + specialAttributes = /^checked|value|selected$/, + specialTags = /select|map|fieldset|table|tbody|tr|colgroup/i, + tagMap = { select: 'option', table: 'tbody', tr: 'td' }, + stateAttributes = /^checked|selected$/, + ie = /msie/i.test(navigator.userAgent), + uidList = [], + uuids = 0, + digit = /^-?[\d\.]+$/, + px = 'px', + // commonly used methods + setAttribute = 'setAttribute', + getAttribute = 'getAttribute', + trimReplace = /(^\s*|\s*$)/g, + unitless = { lineHeight: 1, zoom: 1, zIndex: 1, opacity: 1 }; + + function classReg(c) { + return new RegExp("(^|\\s+)" + c + "(\\s+|$)"); + } + + function each(ar, fn, scope) { + for (var i = 0, l = ar.length; i < l; i++) { + fn.call(scope || ar[i], ar[i], i, ar); + } + return ar; + } + + var trim = String.prototype.trim ? + function (s) { + return s.trim(); + } : + function (s) { + return s.replace(trimReplace, ''); + }; + + function camelize(s) { + return s.replace(/-(.)/g, function (m, m1) { + return m1.toUpperCase(); + }); + } + + function is(node) { + return node && node.nodeName && node.nodeType == 1; + } + + function some(ar, fn, scope) { + for (var i = 0, j = ar.length; i < j; ++i) { + if (fn.call(scope, ar[i], i, ar)) { + return true; + } + } + return false; + } + + var getStyle = doc.defaultView && doc.defaultView.getComputedStyle ? + function (el, property) { + var value = null; + if (property == 'float') { + property = 'cssFloat'; + } + var computed = doc.defaultView.getComputedStyle(el, ''); + computed && (value = computed[camelize(property)]); + return el.style[property] || value; + + } : (ie && html.currentStyle) ? + + function (el, property) { + property = camelize(property); + property = property == 'float' ? 'styleFloat' : property; + + if (property == 'opacity') { + var val = 100; + try { + val = el.filters['DXImageTransform.Microsoft.Alpha'].opacity; + } catch (e1) { + try { + val = el.filters('alpha').opacity; + } catch (e2) {} + } + return val / 100; + } + var value = el.currentStyle ? el.currentStyle[property] : null; + return el.style[property] || value; + } : + + function (el, property) { + return el.style[camelize(property)]; + }; + + function insert(target, host, fn) { + var i = 0, self = host || this, r = []; + each(normalize(query ? query(target) : target), function (t) { + each(self, function (el) { + var n = el.cloneNode(true); + fn(t, n); + r[i] = n; + i++; + }); + }, this); + each(r, function (e, i) { + self[i] = e; + }); + self.length = i; + return self; + } + + function xy(el, x, y) { + var $el = bonzo(el), + style = $el.css('position'), + offset = $el.offset(), + rel = 'relative', + isRel = style == rel, + delta = [parseInt($el.css('left'), 10), parseInt($el.css('top'), 10)]; + + if (style == 'static') { + $el.css('position', rel); + style = rel; + } + + isNaN(delta[0]) && (delta[0] = isRel ? 0 : el.offsetLeft); + isNaN(delta[1]) && (delta[1] = isRel ? 0 : el.offsetTop); + + x !== null && (el.style.left = x - offset.left + delta[0] + 'px'); + y !== null && (el.style.top = y - offset.top + delta[1] + 'px'); + + } + + function Bonzo(elements) { + this.length = 0; + this.original = elements; + if (elements) { + elements = typeof elements !== 'string' && + !elements.nodeType && + typeof elements.length !== 'undefined' ? + elements : + [elements]; + this.length = elements.length; + for (var i = 0; i < elements.length; i++) { + this[i] = elements[i]; + } + } + } + + Bonzo.prototype = { + + each: function (fn, scope) { + return each(this, fn, scope); + }, + + map: function (fn, reject) { + var m = [], n, i; + for (i = 0; i < this.length; i++) { + n = fn.call(this, this[i]); + reject ? (reject(n) && m.push(n)) : m.push(n); + } + return m; + }, + + first: function () { + return bonzo(this[0]); + }, + + last: function () { + return bonzo(this[this.length - 1]); + }, + + html: function (h, text) { + var method = text ? + html.textContent == null ? + 'innerText' : + 'textContent' : + 'innerHTML', m; + function append(el, tag) { + while (el.firstChild) { + el.removeChild(el.firstChild); + } + each(normalize(h, tag), function (node) { + el.appendChild(node); + }); + } + return typeof h !== 'undefined' ? + this.each(function (el) { + (m = el.tagName.match(specialTags)) ? + append(el, m[0]) : + (el[method] = h); + }) : + this[0] ? this[0][method] : ''; + }, + + text: function (text) { + return this.html(text, 1); + }, + + addClass: function (c) { + return this.each(function (el) { + this.hasClass(el, c) || (el.className = trim(el.className + ' ' + c)); + }, this); + }, + + removeClass: function (c) { + return this.each(function (el) { + this.hasClass(el, c) && (el.className = trim(el.className.replace(classReg(c), ' '))); + }, this); + }, + + hasClass: function (el, c) { + return typeof c == 'undefined' ? + some(this, function (i) { + return classReg(el).test(i.className); + }) : + classReg(c).test(el.className); + }, + + toggleClass: function (c, condition) { + if (typeof condition !== 'undefined' && !condition) { + return this; + } + return this.each(function (el) { + this.hasClass(el, c) ? + (el.className = trim(el.className.replace(classReg(c), ' '))) : + (el.className = trim(el.className + ' ' + c)); + }, this); + }, + + show: function (type) { + return this.each(function (el) { + el.style.display = type || ''; + }); + }, + + hide: function (elements) { + return this.each(function (el) { + el.style.display = 'none'; + }); + }, + + append: function (node) { + return this.each(function (el) { + each(normalize(node), function (i) { + el.appendChild(i); + }); + }); + }, + + prepend: function (node) { + return this.each(function (el) { + var first = el.firstChild; + each(normalize(node), function (i) { + el.insertBefore(i, first); + }); + }); + }, + + appendTo: function (target, host) { + return insert.call(this, target, host, function (t, el) { + t.appendChild(el); + }); + }, + + prependTo: function (target, host) { + return insert.call(this, target, host, function (t, el) { + t.insertBefore(el, t.firstChild); + }); + }, + + next: function () { + return this.related('nextSibling'); + }, + + previous: function () { + return this.related('previousSibling'); + }, + + related: function (method) { + return this.map( + function (el) { + el = el[method]; + while (el && el.nodeType !== 1) { + el = el[method]; + } + return el || 0; + }, + function (el) { + return el; + } + ); + }, + + before: function (node) { + return this.each(function (el) { + each(bonzo.create(node), function (i) { + el.parentNode.insertBefore(i, el); + }); + }); + }, + + after: function (node) { + return this.each(function (el) { + each(bonzo.create(node), function (i) { + el.parentNode.insertBefore(i, el.nextSibling); + }); + }); + }, + + insertBefore: function (target, host) { + return insert.call(this, target, host, function (t, el) { + t.parentNode.insertBefore(el, t); + }); + }, + + insertAfter: function (target, host) { + return insert.call(this, target, host, function (t, el) { + var sibling = t.nextSibling; + if (sibling) { + t.parentNode.insertBefore(el, sibling); + } + else { + t.parentNode.appendChild(el); + } + }); + }, + + css: function (o, v) { + // is this a request for just getting a style? + if (v === undefined && typeof o == 'string') { + return getStyle(this[0], o); + } + var iter = o; + if (typeof o == 'string') { + iter = {}; + iter[o] = v; + } + + if (ie && iter.opacity) { + // oh this 'ol gamut + iter.filter = 'alpha(opacity=' + (iter.opacity * 100) + ')'; + // give it layout + iter.zoom = o.zoom || 1; + delete iter.opacity; + } + + if (v = iter['float']) { + // float is a reserved style word. w3 uses cssFloat, ie uses styleFloat + ie ? (iter.styleFloat = v) : (iter.cssFloat = v); + delete iter['float']; + } + + var fn = function (el, p, v) { + for (var k in iter) { + if (iter.hasOwnProperty(k)) { + v = iter[k]; + // change "5" to "5px" - unless you're line-height, which is allowed + (p = camelize(k)) && digit.test(v) && !(p in unitless) && (v += px); + el.style[p] = v; + } + } + }; + return this.each(fn); + }, + + offset: function (x, y) { + if (x || y) { + return this.each(function (el) { + xy(el, x, y); + }); + } + var el = this[0]; + var width = el.offsetWidth; + var height = el.offsetHeight; + var top = el.offsetTop; + var left = el.offsetLeft; + while (el = el.offsetParent) { + top = top + el.offsetTop; + left = left + el.offsetLeft; + } + + return { + top: top, + left: left, + height: height, + width: width + }; + }, + + attr: function (k, v) { + var el = this[0]; + return typeof v == 'undefined' ? + specialAttributes.test(k) ? + stateAttributes.test(k) && typeof el[k] == 'string' ? + true : el[k] : el[getAttribute](k) : + this.each(function (el) { + k == 'value' ? (el.value = v) : el[setAttribute](k, v); + }); + }, + + val: function (s) { + return (typeof s == 'string') ? this.attr('value', s) : this[0].value; + }, + + removeAttr: function (k) { + return this.each(function (el) { + el.removeAttribute(k); + }); + }, + + data: function (k, v) { + var el = this[0]; + if (typeof v === 'undefined') { + el[getAttribute]('data-node-uid') || el[setAttribute]('data-node-uid', ++uuids); + var uid = el[getAttribute]('data-node-uid'); + uidList[uid] || (uidList[uid] = {}); + return uidList[uid][k]; + } else { + return this.each(function (el) { + el[getAttribute]('data-node-uid') || el[setAttribute]('data-node-uid', ++uuids); + var uid = el[getAttribute]('data-node-uid'); + var o = {}; + o[k] = v; + uidList[uid] = o; + }); + } + }, + + remove: function () { + return this.each(function (el) { + el.parentNode && el.parentNode.removeChild(el); + }); + }, + + empty: function () { + return this.each(function (el) { + while (el.firstChild) { + el.removeChild(el.firstChild); + } + }); + }, + + detach: function () { + return this.map(function (el) { + return el.parentNode.removeChild(el); + }); + }, + + scrollTop: function (y) { + return scroll.call(this, null, y, 'y'); + }, + + scrollLeft: function (x) { + return scroll.call(this, x, null, 'x'); + } + }; + + function normalize(node, tag) { + return typeof node == 'string' ? bonzo.create(node, tag) : is(node) ? [node] : node; + } + + function scroll(x, y, type) { + var el = this[0]; + if (x == null && y == null) { + return (isBody(el) ? getWindowScroll() : { x: el.scrollLeft, y: el.scrollTop })[type]; + } + if (isBody(el)) { + window.scrollTo(x, y); + } else { + x != null && (el.scrollLeft = x); + y != null && (el.scrollTop = y); + } + return this; + } + + function isBody(element) { + return element === window || (/^(?:body|html)$/i).test(element.tagName); + } + + function getWindowScroll() { + return { x: window.pageXOffset || html.scrollLeft, y: window.pageYOffset || html.scrollTop }; + } + + function bonzo(els, host) { + return new Bonzo(els, host); + } + + bonzo.setQueryEngine = function (q) { + query = q; + delete bonzo.setQueryEngine; + }; + + bonzo.aug = function (o, target) { + for (var k in o) { + o.hasOwnProperty(k) && ((target || Bonzo.prototype)[k] = o[k]); + } + }; + + bonzo.create = function (node, tag) { + return typeof node == 'string' ? + function () { + var t = tag ? tagMap[tag.toLowerCase()] : null; + var el = doc.createElement(t || 'div'), els = []; + if (tag) { + var bitches = node.match(new RegExp("<" + t + ">.+?<\\/" + t + ">", "g")); + each(bitches, function (m) { + m = m.replace(/<(.+)>(.+?)<\/\1>/, '$2'); + var bah = doc.createElement(t); + bah.appendChild(doc.createDocumentFragment(m)); + el.appendChild(bah); + }); + } else { + el.innerHTML = node; + } + var nodes = el.childNodes; + el = el.firstChild; + els.push(el); + while (el = el.nextSibling) { + (el.nodeType == 1) && els.push(el); + } + return els; + + }() : is(node) ? [node.cloneNode(true)] : []; + }; + + bonzo.doc = function () { + var w = html.scrollWidth, + h = html.scrollHeight, + vp = this.viewport(); + return { + width: Math.max(w, vp.width), + height: Math.max(h, vp.height) + }; + }; + + bonzo.firstChild = function (el) { + for (var c = el.childNodes, i = 0, j = (c && c.length) || 0, e; i < j; i++) { + if (c[i].nodeType === 1) { + e = c[j = i]; + } + } + return e; + }; + + bonzo.viewport = function () { + var h = self.innerHeight, + w = self.innerWidth; + ie && (h = html.clientHeight) && (w = html.clientWidth); + return { + width: w, + height: h + }; + }; + + bonzo.isAncestor = 'compareDocumentPosition' in html ? + function (container, element) { + return (container.compareDocumentPosition(element) & 16) == 16; + } : 'contains' in html ? + function (container, element) { + return container !== element && container.contains(element); + } : + function (container, element) { + while (element = element.parentNode) { + if (element === container) { + return true; + } + } + return false; + }; + + var old = context.bonzo; + bonzo.noConflict = function () { + context.bonzo = old; + return this; + }; + context['bonzo'] = bonzo; + +}(this);!function ($) { + + var b = bonzo; + b.setQueryEngine($); + $.ender(b); + $.ender(b(), true); + $.ender({ + create: function (node) { + return $(b.create(node)); + } + }); + + $.id = function (id) { + return $([document.getElementById(id)]); + }; + + function indexOf(ar, val) { + for (var i = 0; i < ar.length; i++) { + if (ar[i] === val) { + return i; + } + } + return -1; + } + + function uniq(ar) { + var a = [], i, j; + label: + for (i = 0; i < ar.length; i++) { + for (j = 0; j < a.length; j++) { + if (a[j] == ar[i]) { + continue label; + } + } + a[a.length] = ar[i]; + } + return a; + } + + $.ender({ + parents: function (selector, closest) { + var collection = $(selector), j, k, p, r = []; + for (j = 0, k = this.length; j < k; j++) { + p = this[j]; + while (p = p.parentNode) { + if (indexOf(collection, p) !== -1) { + r.push(p); + if (closest) break; + } + } + } + return $(uniq(r)); + }, + + closest: function (selector) { + return this.parents(selector, true); + }, + + first: function () { + return $(this[0]); + }, + + last: function () { + return $(this[this.length - 1]); + }, + + next: function () { + return $(b(this).next()); + }, + + previous: function () { + return $(b(this).previous()); + }, + + appendTo: function (t) { + return b(this.selector).appendTo(t, this); + }, + + prependTo: function (t) { + return b(this.selector).prependTo(t, this); + }, + + insertAfter: function (t) { + return b(this.selector).insertAfter(t, this); + }, + + insertBefore: function (t) { + return b(this.selector).insertBefore(t, this); + }, + + siblings: function () { + var i, l, p, r = []; + for (i = 0, l = this.length; i < l; i++) { + p = this[i]; + while (p = p.previousSibling) { + p.nodeType == 1 && r.push(p); + } + p = this[i]; + while (p = p.nextSibling) { + p.nodeType == 1 && r.push(p); + } + } + return $(r); + }, + + children: function () { + var el, r = []; + for (i = 0, l = this.length; i < l; i++) { + if (!(el = b.firstChild(this[i]))) { + continue; + } + r.push(el); + while (el = el.nextSibling) { + el.nodeType == 1 && r.push(el); + } + } + return $(uniq(r)); + }, + + height: function (v) { + return v ? this.css('height', v) : parseInt(this.css('height'), 10); + }, + + width: function (v) { + return v ? this.css('width', v) : parseInt(this.css('width'), 10); + } + }, true); + +}(ender || $); + +!function () { var exports = {}, module = { exports: exports }; !function (doc) { + var loaded = 0, fns = [], ol, f = false, + testEl = doc.createElement('a'), + domContentLoaded = 'DOMContentLoaded', + addEventListener = 'addEventListener', + onreadystatechange = 'onreadystatechange'; + + /^loade|c/.test(doc.readyState) && (loaded = 1); + + function flush() { + loaded = 1; + for (var i = 0, l = fns.length; i < l; i++) { + fns[i](); + } + } + doc[addEventListener] && doc[addEventListener](domContentLoaded, function fn() { + doc.removeEventListener(domContentLoaded, fn, f); + flush(); + }, f); + + + testEl.doScroll && doc.attachEvent(onreadystatechange, (ol = function ol() { + if (/^c/.test(doc.readyState)) { + doc.detachEvent(onreadystatechange, ol); + flush(); + } + })); + + var domReady = testEl.doScroll ? + function (fn) { + self != top ? + !loaded ? + fns.push(fn) : + fn() : + !function () { + try { + testEl.doScroll('left'); + } catch (e) { + return setTimeout(function() { + domReady(fn); + }, 50); + } + fn(); + }(); + } : + function (fn) { + loaded ? fn() : fns.push(fn); + }; + + (typeof module !== 'undefined') && module.exports ? + (module.exports = {domReady: domReady}) : + (window.domReady = domReady); + +}(document); $.ender(module.exports); }.call($); +/*! + * qwery.js - copyright @dedfat + * https://github.com/ded/qwery + * Follow our software http://twitter.com/dedfat + * MIT License + */ + +!function (context, doc) { + + var c, i, j, k, l, m, o, p, r, v, + el, node, len, found, classes, item, items, token, + id = /#([\w\-]+)/, + clas = /\.[\w\-]+/g, + idOnly = /^#([\w\-]+$)/, + classOnly = /^\.([\w\-]+)$/, + tagOnly = /^([\w\-]+)$/, + tagAndOrClass = /^([\w]+)?\.([\w\-]+)$/, + html = doc.documentElement, + tokenizr = /\s(?![\s\w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^'"]*\])/, + specialChars = /([.*+?\^=!:${}()|\[\]\/\\])/g, + simple = /^([a-z0-9]+)?(?:([\.\#]+[\w\-\.#]+)?)/, + attr = /\[([\w\-]+)(?:([\|\^\$\*\~]?\=)['"]?([ \w\-\/\?\&\=\:\.\(\)\!,@#%<>\{\}\$\*\^]+)["']?)?\]/, + chunker = new RegExp(simple.source + '(' + attr.source + ')?'); + + function array(ar) { + r = []; + for (i = 0, len = ar.length; i < len; i++) { + r[i] = ar[i]; + } + return r; + } + + var cache = function () { + this.c = {}; + }; + cache.prototype = { + g: function (k) { + return this.c[k] || undefined; + }, + s: function (k, v) { + this.c[k] = v; + return v; + } + }; + + var classCache = new cache(), + cleanCache = new cache(), + attrCache = new cache(), + tokenCache = new cache(); + + function q(query) { + return query.match(chunker); + } + + function interpret(whole, tag, idsAndClasses, wholeAttribute, attribute, qualifier, value) { + var m, c, k; + if (tag && this.tagName.toLowerCase() !== tag) { + return false; + } + if (idsAndClasses && (m = idsAndClasses.match(id)) && m[1] !== this.id) { + return false; + } + if (idsAndClasses && (classes = idsAndClasses.match(clas))) { + for (i = classes.length; i--;) { + c = classes[i].slice(1); + if (!(classCache.g(c) || classCache.s(c, new RegExp('(^|\\s+)' + c + '(\\s+|$)'))).test(this.className)) { + return false; + } + } + } + if (wholeAttribute && !value) { + o = this.attributes; + for (k in o) { + if (Object.prototype.hasOwnProperty.call(o, k) && (o[k].name || k) == attribute) { + return this; + } + } + } + if (wholeAttribute && !checkAttr(qualifier, this.getAttribute(attribute) || '', value)) { + return false; + } + return this; + } + + function loopAll(tokens) { + var r = [], token = tokens.pop(), intr = q(token), tag = intr[1] || '*', i, l, els, + root = tokens.length && (m = tokens[0].match(idOnly)) ? doc.getElementById(m[1]) : doc; + if (!root) { + return r; + } + els = root.getElementsByTagName(tag); + for (i = 0, l = els.length; i < l; i++) { + el = els[i]; + if (item = interpret.apply(el, intr)) { + r.push(item); + } + } + return r; + } + + function clean(s) { + return cleanCache.g(s) || cleanCache.s(s, s.replace(specialChars, '\\$1')); + } + + function checkAttr(qualify, actual, val) { + switch (qualify) { + case '=': + return actual == val; + case '^=': + return actual.match(attrCache.g('^=' + val) || attrCache.s('^=' + val, new RegExp('^' + clean(val)))); + case '$=': + return actual.match(attrCache.g('$=' + val) || attrCache.s('$=' + val, new RegExp(clean(val) + '$'))); + case '*=': + return actual.match(attrCache.g(val) || attrCache.s(val, new RegExp(clean(val)))); + case '~=': + return actual.match(attrCache.g('~=' + val) || attrCache.s('~=' + val, new RegExp('(?:^|\\s+)' + clean(val) + '(?:\\s+|$)'))); + case '|=': + return actual.match(attrCache.g('|=' + val) || attrCache.s('|=' + val, new RegExp('^' + clean(val) + '(-|$)'))); + } + return false; + } + + function _qwery(selector) { + var r = [], ret = [], i, l, + tokens = tokenCache.g(selector) || tokenCache.s(selector, selector.split(tokenizr)); + tokens = tokens.slice(0); + if (!tokens.length) { + return r; + } + r = loopAll(tokens); + if (!tokens.length) { + return r; + } + // loop through all descendent tokens + for (j = 0, l = r.length, k = 0; j < l; j++) { + node = r[j]; + p = node; + // loop through each token + for (i = tokens.length; i--;) { + z: // loop through parent nodes + while (p !== html && (p = p.parentNode)) { + if (found = interpret.apply(p, q(tokens[i]))) { + break z; + } + } + } + found && (ret[k++] = node); + } + return ret; + } + + function boilerPlate(selector, _root, fn) { + var root = (typeof _root == 'string') ? fn(_root)[0] : (_root || doc); + if (selector === window || isNode(selector)) { + return !_root || (selector !== window && isNode(root) && isAncestor(selector, root)) ? [selector] : []; + } + if (selector && typeof selector === 'object' && isFinite(selector.length)) { + return array(selector); + } + if (m = selector.match(idOnly)) { + return (el = doc.getElementById(m[1])) ? [el] : []; + } + if (m = selector.match(tagOnly)) { + return array(root.getElementsByTagName(m[1])); + } + return false; + } + + function isNode(el) { + return (el && el.nodeType && (el.nodeType == 1 || el.nodeType == 9)); + } + + function uniq(ar) { + var a = [], i, j; + label: + for (i = 0; i < ar.length; i++) { + for (j = 0; j < a.length; j++) { + if (a[j] == ar[i]) { + continue label; + } + } + a[a.length] = ar[i]; + } + return a; + } + + function qwery(selector, _root) { + var root = (typeof _root == 'string') ? qwery(_root)[0] : (_root || doc); + if (!root || !selector) { + return []; + } + if (m = boilerPlate(selector, _root, qwery)) { + return m; + } + return select(selector, root); + } + + var isAncestor = 'compareDocumentPosition' in html ? + function (element, container) { + return (container.compareDocumentPosition(element) & 16) == 16; + } : 'contains' in html ? + function (element, container) { + container = container == doc || container == window ? html : container; + return container !== element && container.contains(element); + } : + function (element, container) { + while (element = element.parentNode) { + if (element === container) { + return 1; + } + } + return 0; + }, + + select = (doc.querySelector && doc.querySelectorAll) ? + function (selector, root) { + if (doc.getElementsByClassName && (m = selector.match(classOnly))) { + return array((root).getElementsByClassName(m[1])); + } + return array((root).querySelectorAll(selector)); + } : + function (selector, root) { + var result = [], collection, collections = [], i; + if (m = selector.match(tagAndOrClass)) { + items = root.getElementsByTagName(m[1] || '*'); + r = classCache.g(m[2]) || classCache.s(m[2], new RegExp('(^|\\s+)' + m[2] + '(\\s+|$)')); + for (i = 0, l = items.length, j = 0; i < l; i++) { + r.test(items[i].className) && (result[j++] = items[i]); + } + return result; + } + for (i = 0, items = selector.split(','), l = items.length; i < l; i++) { + collections[i] = _qwery(items[i]); + } + for (i = 0, l = collections.length; i < l && (collection = collections[i]); i++) { + var ret = collection; + if (root !== doc) { + ret = []; + for (j = 0, m = collection.length; j < m && (element = collection[j]); j++) { + // make sure element is a descendent of root + isAncestor(element, root) && ret.push(element); + } + } + result = result.concat(ret); + } + return uniq(result); + }; + + qwery.uniq = uniq; + var oldQwery = context.qwery; + qwery.noConflict = function () { + context.qwery = oldQwery; + return this; + }; + context['qwery'] = qwery; + +}(this, document);!function (doc) { + var q = qwery.noConflict(); + function create(node, root) { + var el = (root || doc).createElement('div'), els = []; + el.innerHTML = node; + var nodes = el.childNodes; + el = el.firstChild; + els.push(el); + while (el = el.nextSibling) { + (el.nodeType == 1) && els.push(el); + } + return els; + }; + $._select = function (s, r) { + return /^\s* + is released under the MIT License +*/ + +var swfobject = function() { + + var UNDEF = "undefined", + OBJECT = "object", + SHOCKWAVE_FLASH = "Shockwave Flash", + SHOCKWAVE_FLASH_AX = "ShockwaveFlash.ShockwaveFlash", + FLASH_MIME_TYPE = "application/x-shockwave-flash", + EXPRESS_INSTALL_ID = "SWFObjectExprInst", + + win = window, + doc = document, + nav = navigator, + + plugin = false, + regObjArr = [], + objIdArr = [], + storedAltContent, + storedAltContentId, + storedCallbackFn, + storedCallbackObj, + autoHideShow = true, + + /* Centralized function for browser feature detection + - User agent string detection is only used when no good alternative is possible + - Is executed directly for optimal performance + */ + ua = function() { + var w3cdom = typeof doc.getElementById != UNDEF && typeof doc.getElementsByTagName != UNDEF && typeof doc.createElement != UNDEF, + u = nav.userAgent.toLowerCase(), + p = nav.platform.toLowerCase(), + windows = p ? /win/.test(p) : /win/.test(u), + mac = p ? /mac/.test(p) : /mac/.test(u), + webkit = /webkit/.test(u) ? parseFloat(u.replace(/^.*webkit\/(\d+(\.\d+)?).*$/, "$1")) : false, // returns either the webkit version or false if not webkit + ie = !+"\v1", // feature detection based on Andrea Giammarchi's solution: http://webreflection.blogspot.com/2009/01/32-bytes-to-know-if-your-browser-is-ie.html + playerVersion = [0,0,0], + d = null; + if (typeof nav.plugins != UNDEF && typeof nav.plugins[SHOCKWAVE_FLASH] == OBJECT) { + d = nav.plugins[SHOCKWAVE_FLASH].description; + if (d && !(typeof nav.mimeTypes != UNDEF && nav.mimeTypes[FLASH_MIME_TYPE] && !nav.mimeTypes[FLASH_MIME_TYPE].enabledPlugin)) { // navigator.mimeTypes["application/x-shockwave-flash"].enabledPlugin indicates whether plug-ins are enabled or disabled in Safari 3+ + plugin = true; + ie = false; // cascaded feature detection for Internet Explorer + d = d.replace(/^.*\s+(\S+\s+\S+$)/, "$1"); + playerVersion[0] = parseInt(d.replace(/^(.*)\..*$/, "$1"), 10); + playerVersion[1] = parseInt(d.replace(/^.*\.(.*)\s.*$/, "$1"), 10); + playerVersion[2] = /[a-zA-Z]/.test(d) ? parseInt(d.replace(/^.*[a-zA-Z]+(.*)$/, "$1"), 10) : 0; + } + } + else if (typeof win.ActiveXObject != UNDEF) { + try { + var a = new ActiveXObject(SHOCKWAVE_FLASH_AX); + if (a) { // a will return null when ActiveX is disabled + d = a.GetVariable("$version"); + if (d) { + ie = true; // cascaded feature detection for Internet Explorer + d = d.split(" ")[1].split(","); + playerVersion = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; + } + } + } + catch(e) {} + } + return { w3:w3cdom, pv:playerVersion, wk:webkit, ie:ie, win:windows, mac:mac }; + }() + + + /* Main function + - Will preferably execute onDomLoad, otherwise onload (as a fallback) + */ + function main() { + if (plugin) { testPlayerVersion(); } + else { matchVersions(); } + } + + /* Detect the Flash Player version for non-Internet Explorer browsers + - Detecting the plug-in version via the object element is more precise than using the plugins collection item's description: + a. Both release and build numbers can be detected + b. Avoid wrong descriptions by corrupt installers provided by Adobe + c. Avoid wrong descriptions by multiple Flash Player entries in the plugin Array, caused by incorrect browser imports + - Disadvantage of this method is that it depends on the availability of the DOM, while the plugins collection is immediately available + */ + function testPlayerVersion() { + var b = doc.getElementsByTagName("body")[0]; + var o = createElement(OBJECT); + o.setAttribute("type", FLASH_MIME_TYPE); + var t = b.appendChild(o); + if (t) { + var counter = 0; + (function(){ + if (typeof t.GetVariable != UNDEF) { + var d = t.GetVariable("$version"); + if (d) { + d = d.split(" ")[1].split(","); + ua.pv = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)]; + } + } + else if (counter < 10) { + counter++; + setTimeout(arguments.callee, 10); + return; + } + b.removeChild(o); + t = null; + matchVersions(); + })(); + } + else { + matchVersions(); + } + } + + + /* Cross-browser dynamic SWF creation + */ + function createSWF(attObj, parObj, id) { + var r, el = getElementById(id); + if (ua.wk && ua.wk < 312) { return r; } + if (el) { + if (typeof attObj.id == UNDEF) { // if no 'id' is defined for the object element, it will inherit the 'id' from the alternative content + attObj.id = id; + } + if (ua.ie && ua.win) { // Internet Explorer + the HTML object element + W3C DOM methods do not combine: fall back to outerHTML + var att = ""; + for (var i in attObj) { + if (attObj[i] != Object.prototype[i]) { // filter out prototype additions from other potential libraries + if (i.toLowerCase() == "data") { + parObj.movie = attObj[i]; + } + else if (i.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword + att += ' class="' + attObj[i] + '"'; + } + else if (i.toLowerCase() != "classid") { + att += ' ' + i + '="' + attObj[i] + '"'; + } + } + } + var par = ""; + for (var j in parObj) { + if (parObj[j] != Object.prototype[j]) { // filter out prototype additions from other potential libraries + par += ''; + } + } + el.outerHTML = '' + par + ''; + objIdArr[objIdArr.length] = attObj.id; // stored to fix object 'leaks' on unload (dynamic publishing only) + r = getElementById(attObj.id); + } + else { // well-behaving browsers + var o = createElement(OBJECT); + o.setAttribute("type", FLASH_MIME_TYPE); + for (var m in attObj) { + if (attObj[m] != Object.prototype[m]) { // filter out prototype additions from other potential libraries + if (m.toLowerCase() == "styleclass") { // 'class' is an ECMA4 reserved keyword + o.setAttribute("class", attObj[m]); + } + else if (m.toLowerCase() != "classid") { // filter out IE specific attribute + o.setAttribute(m, attObj[m]); + } + } + } + for (var n in parObj) { + if (parObj[n] != Object.prototype[n] && n.toLowerCase() != "movie") { // filter out prototype additions from other potential libraries and IE specific param element + createObjParam(o, n, parObj[n]); + } + } + el.parentNode.replaceChild(o, el); + r = o; + } + } + return r; + } + + function createObjParam(el, pName, pValue) { + var p = createElement("param"); + p.setAttribute("name", pName); + p.setAttribute("value", pValue); + el.appendChild(p); + } + + /* Cross-browser SWF removal + - Especially needed to safely and completely remove a SWF in Internet Explorer + */ + /* Functions to optimize JavaScript compression + */ + function getElementById(id) { + var el = null; + try { + el = doc.getElementById(id); + } + catch (e) {} + return el; + } + + function createElement(el) { + return doc.createElement(el); + } + + /* Flash Player and SWF content version matching + */ + function hasPlayerVersion(rv) { + var pv = ua.pv, v = rv.split("."); + v[0] = parseInt(v[0], 10); + v[1] = parseInt(v[1], 10) || 0; // supports short notation, e.g. "9" instead of "9.0.0" + v[2] = parseInt(v[2], 10) || 0; + return (pv[0] > v[0] || (pv[0] == v[0] && pv[1] > v[1]) || (pv[0] == v[0] && pv[1] == v[1] && pv[2] >= v[2])) ? true : false; + } + + + /* Filter to avoid XSS attacks + */ + function urlEncodeIfNecessary(s) { + var regex = /[\\\"<>\.;]/; + var hasBadChars = regex.exec(s) != null; + return hasBadChars && typeof encodeURIComponent != UNDEF ? encodeURIComponent(s) : s; + } + + return { + /* Public API + - Reference: http://code.google.com/p/swfobject/wiki/documentation + */ + + embedSWF: function(swfUrlStr, replaceElemIdStr, widthStr, heightStr, swfVersionStr, flashvarsObj, parObj, attObj, callbackFn) { + var callbackObj = {success:false, id:replaceElemIdStr}; + if (ua.w3 && !(ua.wk && ua.wk < 312) && swfUrlStr && replaceElemIdStr && widthStr && heightStr && swfVersionStr) { + widthStr += ""; // auto-convert to string + heightStr += ""; + var att = {}; + if (attObj && typeof attObj === OBJECT) { + for (var i in attObj) { // copy object to avoid the use of references, because web authors often reuse attObj for multiple SWFs + att[i] = attObj[i]; + } + } + att.data = swfUrlStr; + att.width = widthStr; + att.height = heightStr; + var par = {}; + if (parObj && typeof parObj === OBJECT) { + for (var j in parObj) { // copy object to avoid the use of references, because web authors often reuse parObj for multiple SWFs + par[j] = parObj[j]; + } + } + if (flashvarsObj && typeof flashvarsObj === OBJECT) { + for (var k in flashvarsObj) { // copy object to avoid the use of references, because web authors often reuse flashvarsObj for multiple SWFs + if (typeof par.flashvars != UNDEF) { + par.flashvars += "&" + k + "=" + flashvarsObj[k]; + } + else { + par.flashvars = k + "=" + flashvarsObj[k]; + } + } + } + if (hasPlayerVersion(swfVersionStr)) { // create SWF + var obj = createSWF(att, par, replaceElemIdStr); + callbackObj.success = true; + callbackObj.ref = obj; + } + if (callbackFn) { callbackFn(callbackObj); } + } + else if (callbackFn) { callbackFn(callbackObj); } + }, + + ua: ua, + + getFlashPlayerVersion: function() { + return { major:ua.pv[0], minor:ua.pv[1], release:ua.pv[2] }; + }, + + hasFlashPlayerVersion: hasPlayerVersion, + + createSWF: function(attObj, parObj, replaceElemIdStr) { + if (ua.w3) { + return createSWF(attObj, parObj, replaceElemIdStr); + } + else { + return undefined; + } + }, + + getQueryParamValue: function(param) { + var q = doc.location.search || doc.location.hash; + if (q) { + if (/\?/.test(q)) { q = q.split("?")[1]; } // strip question mark + if (param == null) { + return urlEncodeIfNecessary(q); + } + var pairs = q.split("&"); + for (var i = 0; i < pairs.length; i++) { + if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) { + return urlEncodeIfNecessary(pairs[i].substring((pairs[i].indexOf("=") + 1))); + } + } + } + return ""; + } + }; +}(); diff --git a/source/javascripts/modernizr-2.0.js b/source/javascripts/modernizr-2.0.js new file mode 100644 index 0000000..b9846c4 --- /dev/null +++ b/source/javascripts/modernizr-2.0.js @@ -0,0 +1,5 @@ +/* Modernizr 2.0.4 (Custom Build) | MIT & BSD + * Contains: video | iepp | respond | mq | cssclasses | teststyles | testprop | testallprops | prefixes | domprefixes | load + * Build URL: http://j.mp/m1H1Y1 + */ +;window.Modernizr=function(a,b,c){function D(a,b){var c=a.charAt(0).toUpperCase()+a.substr(1),d=(a+" "+o.join(c+" ")+c).split(" ");return C(d,b)}function C(a,b){for(var d in a)if(k[a[d]]!==c)return b=="pfx"?a[d]:!0;return!1}function B(a,b){return!!~(""+a).indexOf(b)}function A(a,b){return typeof a===b}function z(a,b){return y(n.join(a+";")+(b||""))}function y(a){k.cssText=a}var d="2.0.4",e={},f=!0,g=b.documentElement,h=b.head||b.getElementsByTagName("head")[0],i="modernizr",j=b.createElement(i),k=j.style,l,m=Object.prototype.toString,n=" -webkit- -moz- -o- -ms- -khtml- ".split(" "),o="Webkit Moz O ms Khtml".split(" "),p={},q={},r={},s=[],t=function(a,c,d,e){var f,h,j,k=b.createElement("div");if(parseInt(d,10))while(d--)j=b.createElement("div"),j.id=e?e[d]:i+(d+1),k.appendChild(j);f=["­",""].join(""),k.id=i,k.innerHTML+=f,g.appendChild(k),h=c(k,a),k.parentNode.removeChild(k);return!!h},u=function(b){if(a.matchMedia)return matchMedia(b).matches;var c;t("@media "+b+" { #"+i+" { position: absolute; } }",function(b){c=(a.getComputedStyle?getComputedStyle(b,null):b.currentStyle).position=="absolute"});return c},v,w={}.hasOwnProperty,x;!A(w,c)&&!A(w.call,c)?x=function(a,b){return w.call(a,b)}:x=function(a,b){return b in a&&A(a.constructor.prototype[b],c)},p.video=function(){var a=b.createElement("video"),c=!1;try{if(c=!!a.canPlayType){c=new Boolean(c),c.ogg=a.canPlayType('video/ogg; codecs="theora"');var d='video/mp4; codecs="avc1.42E01E';c.h264=a.canPlayType(d+'"')||a.canPlayType(d+', mp4a.40.2"'),c.webm=a.canPlayType('video/webm; codecs="vp8, vorbis"')}}catch(e){}return c};for(var E in p)x(p,E)&&(v=E.toLowerCase(),e[v]=p[E](),s.push((e[v]?"":"no-")+v));y(""),j=l=null,a.attachEvent&&function(){var a=b.createElement("div");a.innerHTML="";return a.childNodes.length!==1}()&&function(a,b){function s(a){var b=-1;while(++b=u.minw)&&(!u.maxw||u.maxw&&l<=u.maxw))m[u.media]||(m[u.media]=[]),m[u.media].push(f[u.rules])}for(var t in g)g[t]&&g[t].parentNode===j&&j.removeChild(g[t]);for(var t in m){var v=c.createElement("style"),w=m[t].join("\n");v.type="text/css",v.media=t,v.styleSheet?v.styleSheet.cssText=w:v.appendChild(c.createTextNode(w)),n.appendChild(v),g.push(v)}j.insertBefore(n,o.nextSibling)}},s=function(a,b){var c=t();if(!!c){c.open("GET",a,!0),c.onreadystatechange=function(){c.readyState==4&&(c.status==200||c.status==304)&&b(c.responseText)};if(c.readyState==4)return;c.send()}},t=function(){var a=!1,b=[function(){return new ActiveXObject("Microsoft.XMLHTTP")},function(){return new XMLHttpRequest}],c=b.length;while(c--){try{a=b[c]()}catch(d){continue}break}return function(){return a}}();m(),respond.update=m,a.addEventListener?a.addEventListener("resize",u,!1):a.attachEvent&&a.attachEvent("onresize",u)}}(this,Modernizr.mq("only all")),function(a,b,c){function k(a){return!a||a=="loaded"||a=="complete"}function j(){var a=1,b=-1;while(p.length- ++b)if(p[b].s&&!(a=p[b].r))break;a&&g()}function i(a){var c=b.createElement("script"),d;c.src=a.s,c.onreadystatechange=c.onload=function(){!d&&k(c.readyState)&&(d=1,j(),c.onload=c.onreadystatechange=null)},m(function(){d||(d=1,j())},H.errorTimeout),a.e?c.onload():n.parentNode.insertBefore(c,n)}function h(a){var c=b.createElement("link"),d;c.href=a.s,c.rel="stylesheet",c.type="text/css",!a.e&&(w||r)?function a(b){m(function(){if(!d)try{b.sheet.cssRules.length?(d=1,j()):a(b)}catch(c){c.code==1e3||c.message=="security"||c.message=="denied"?(d=1,m(function(){j()},0)):a(b)}},0)}(c):(c.onload=function(){d||(d=1,m(function(){j()},0))},a.e&&c.onload()),m(function(){d||(d=1,j())},H.errorTimeout),!a.e&&n.parentNode.insertBefore(c,n)}function g(){var a=p.shift();q=1,a?a.t?m(function(){a.t=="c"?h(a):i(a)},0):(a(),j()):q=0}function f(a,c,d,e,f,h){function i(){!o&&k(l.readyState)&&(r.r=o=1,!q&&j(),l.onload=l.onreadystatechange=null,m(function(){u.removeChild(l)},0))}var l=b.createElement(a),o=0,r={t:d,s:c,e:h};l.src=l.data=c,!s&&(l.style.display="none"),l.width=l.height="0",a!="object"&&(l.type=d),l.onload=l.onreadystatechange=i,a=="img"?l.onerror=i:a=="script"&&(l.onerror=function(){r.e=r.r=1,g()}),p.splice(e,0,r),u.insertBefore(l,s?null:n),m(function(){o||(u.removeChild(l),r.r=r.e=o=1,j())},H.errorTimeout)}function e(a,b,c){var d=b=="c"?z:y;q=0,b=b||"j",C(a)?f(d,a,b,this.i++,l,c):(p.splice(this.i++,0,a),p.length==1&&g());return this}function d(){var a=H;a.loader={load:e,i:0};return a}var l=b.documentElement,m=a.setTimeout,n=b.getElementsByTagName("script")[0],o={}.toString,p=[],q=0,r="MozAppearance"in l.style,s=r&&!!b.createRange().compareNode,t=r&&!s,u=s?l:n.parentNode,v=a.opera&&o.call(a.opera)=="[object Opera]",w="webkitAppearance"in l.style,x=w&&"async"in b.createElement("script"),y=r?"object":v||x?"img":"script",z=w?"img":y,A=Array.isArray||function(a){return o.call(a)=="[object Array]"},B=function(a){return typeof a=="object"},C=function(a){return typeof a=="string"},D=function(a){return o.call(a)=="[object Function]"},E=[],F={},G,H;H=function(a){function f(a){var b=a.split("!"),c=E.length,d=b.pop(),e=b.length,f={url:d,origUrl:d,prefixes:b},g,h;for(h=0;h').next().append(''); + mobileNav.children('select').append(''); + $('ul[role=main-navigation]').addClass('main-navigation'); + $('ul.main-navigation a').each(function(link) { + mobileNav.children('select').append(''); + }); + $('ul.subscription a').each(function(link) { + mobileNav.children('select').append(''); + }); + mobileNav.children('select').bind('change', function(event) { + if (event.target.value) { window.location.href = event.target.value; } + }); +} + +function addSidebarToggler() { + if(!$('body').hasClass('sidebar-footer')) { + $('#content').append(''); + $('.toggle-sidebar').bind('click', function(e) { + e.preventDefault(); + if ($('body').hasClass('collapse-sidebar')) { + $('body').removeClass('collapse-sidebar'); + } else { + $('body').addClass('collapse-sidebar'); + } + }); + } + var sections = $('aside.sidebar > section'); + if (sections.length > 1) { + sections.each(function(section, index){ + if ((sections.length >= 3) && index % 3 === 0) { + $(section).addClass("first"); + } + var count = ((index +1) % 2) ? "odd" : "even"; + $(section).addClass(count); + }); + } + if (sections.length >= 3){ $('aside.sidebar').addClass('thirds'); } +} + +function testFeatures() { + var features = ['maskImage']; + $(features).map(function(feature) { + if (Modernizr.testAllProps(feature)) { + $('html').addClass(feature); + } else { + $('html').addClass('no-'+feature); + } + }); + if ("placeholder" in document.createElement("input")) { + $('html').addClass('placeholder'); + } else { + $('html').addClass('no-placeholder'); + } +} + +function addCodeLineNumbers() { + if (navigator.appName === 'Microsoft Internet Explorer') { return; } + $('div.gist-highlight').each(function(code) { + var tableStart = '
    ', + lineNumbers = '
    ',
    +        tableMiddle = '
    ', + tableEnd = '
    ', + count = $('.line', code).length; + for (var i=1;i<=count; i++) { + lineNumbers += ''+i+'\n'; + } + var table = tableStart + lineNumbers + tableMiddle + '
    '+$('pre', code).html()+'
    ' + tableEnd; + $(code).html(table); + }); +} + +function flashVideoFallback(){ + var flashplayerlocation = "/assets/jwplayer/player.swf", + flashplayerskin = "/assets/jwplayer/glow/glow.xml"; + $('video').each(function(video){ + video = $(video); + if (!Modernizr.video.h264 && swfobject.getFlashPlayerVersion() || window.location.hash.indexOf("flash-test") !== -1){ + video.children('source[src$=mp4]').first().map(function(source){ + var src = $(source).attr('src'), + id = 'video_'+Math.round(1 + Math.random()*(100000)), + width = video.attr('width'), + height = parseInt(video.attr('height'), 10) + 30; + video.after('
    '); + swfobject.embedSWF(flashplayerlocation, id, width, height + 30, "9.0.0", + { file : src, image : video.attr('poster'), skin : flashplayerskin } , + { movie : src, wmode : "opaque", allowfullscreen : "true" } + ); + }); + video.remove(); + } + }); +} + +function wrapFlashVideos() { + $('object').each(function(object) { + object = $(object); + if ( $('param[name=movie]', object).length ) { + var wrapper = object.before('
    ').previous(); + $(wrapper).children().append(object); + } + }); + $('iframe[src*=vimeo],iframe[src*=youtube]').each(function(iframe) { + iframe = $(iframe); + var wrapper = iframe.before('
    ').previous(); + $(wrapper).children().append(iframe); + }); +} + +function renderDeliciousLinks(items) { + var output = "
      "; + for (var i=0,l=items.length; i' + items[i].d + ''; + } + output += "
    "; + $('#delicious').html(output); +} + +$.domReady(function() { + testFeatures(); + wrapFlashVideos(); + flashVideoFallback(); + addCodeLineNumbers(); + getNav(); + addSidebarToggler(); +}); + +// iOS scaling bug fix +// Rewritten version +// By @mathias, @cheeaun and @jdalton +// Source url: https://gist.github.com/901295 +(function(doc) { + var addEvent = 'addEventListener', + type = 'gesturestart', + qsa = 'querySelectorAll', + scales = [1, 1], + meta = qsa in doc ? doc[qsa]('meta[name=viewport]') : []; + function fix() { + meta.content = 'width=device-width,minimum-scale=' + scales[0] + ',maximum-scale=' + scales[1]; + doc.removeEventListener(type, fix, true); + } + if ((meta = meta[meta.length - 1]) && addEvent in doc) { + fix(); + scales = [0.25, 1.6]; + doc[addEvent](type, fix, true); + } +}(document)); + +/*! SWFObject v2.2 modified by Brandon Mathis to contain only what is necessary to dynamically embed flash objects + * Uncompressed source in javascripts/libs/swfobject-dynamic.js + * + released under the MIT License +*/ +var swfobject=function(){function s(a,b,d){var q,k=n(d);if(g.wk&&g.wk<312)return q;if(k){if(typeof a.id==l)a.id=d;if(g.ie&&g.win){var e="",c;for(c in a)if(a[c]!=Object.prototype[c])c.toLowerCase()=="data"?b.movie=a[c]:c.toLowerCase()=="styleclass"?e+=' class="'+a[c]+'"':c.toLowerCase()!="classid"&&(e+=" "+c+'="'+a[c]+'"');c="";for(var f in b)b[f]!=Object.prototype[f]&&(c+='');k.outerHTML='"+c+ +"";q=n(a.id)}else{f=i.createElement(o);f.setAttribute("type",m);for(var h in a)a[h]!=Object.prototype[h]&&(h.toLowerCase()=="styleclass"?f.setAttribute("class",a[h]):h.toLowerCase()!="classid"&&f.setAttribute(h,a[h]));for(e in b)b[e]!=Object.prototype[e]&&e.toLowerCase()!="movie"&&(a=f,c=e,h=b[e],d=i.createElement("param"),d.setAttribute("name",c),d.setAttribute("value",h),a.appendChild(d));k.parentNode.replaceChild(f,k);q=f}}return q}function n(a){var b=null;try{b=i.getElementById(a)}catch(d){}return b} +function t(a){var b=g.pv,a=a.split(".");a[0]=parseInt(a[0],10);a[1]=parseInt(a[1],10)||0;a[2]=parseInt(a[2],10)||0;return b[0]>a[0]||b[0]==a[0]&&b[1]>a[1]||b[0]==a[0]&&b[1]==a[1]&&b[2]>=a[2]?!0:!1}function u(a){return/[\\\"<>\.;]/.exec(a)!=null&&typeof encodeURIComponent!=l?encodeURIComponent(a):a}var l="undefined",o="object",m="application/x-shockwave-flash",v=window,i=document,j=navigator,g=function(){var a=typeof i.getElementById!=l&&typeof i.getElementsByTagName!=l&&typeof i.createElement!=l, +b=j.userAgent.toLowerCase(),d=j.platform.toLowerCase(),g=d?/win/.test(d):/win/.test(b),d=d?/mac/.test(d):/mac/.test(b),b=/webkit/.test(b)?parseFloat(b.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):!1,k=!+"\u000b1",e=[0,0,0],c=null;if(typeof j.plugins!=l&&typeof j.plugins["Shockwave Flash"]==o){if((c=j.plugins["Shockwave Flash"].description)&&!(typeof j.mimeTypes!=l&&j.mimeTypes[m]&&!j.mimeTypes[m].enabledPlugin))k=!1,c=c.replace(/^.*\s+(\S+\s+\S+$)/,"$1"),e[0]=parseInt(c.replace(/^(.*)\..*$/,"$1"), +10),e[1]=parseInt(c.replace(/^.*\.(.*)\s.*$/,"$1"),10),e[2]=/[a-zA-Z]/.test(c)?parseInt(c.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}else if(typeof v.ActiveXObject!=l)try{var f=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");if(f&&(c=f.GetVariable("$version")))k=!0,c=c.split(" ")[1].split(","),e=[parseInt(c[0],10),parseInt(c[1],10),parseInt(c[2],10)]}catch(h){}return{w3:a,pv:e,wk:b,ie:k,win:g,mac:d}}();return{embedSWF:function(a,b,d,i,k,e,c,f,h){var j={success:!1,id:b};if(g.w3&&!(g.wk&&g.wk<312)&& +a&&b&&d&&i&&k){d+="";i+="";var p={};if(f&&typeof f===o)for(var m in f)p[m]=f[m];p.data=a;p.width=d;p.height=i;a={};if(c&&typeof c===o)for(var n in c)a[n]=c[n];if(e&&typeof e===o)for(var r in e)typeof a.flashvars!=l?a.flashvars+="&"+r+"="+e[r]:a.flashvars=r+"="+e[r];if(t(k))b=s(p,a,b),j.success=!0,j.ref=b}h&&h(j)},ua:g,getFlashPlayerVersion:function(){return{major:g.pv[0],minor:g.pv[1],release:g.pv[2]}},hasFlashPlayerVersion:t,createSWF:function(a,b,d){if(g.w3)return s(a,b,d)},getQueryParamValue:function(a){var b= +i.location.search||i.location.hash;if(b){/\?/.test(b)&&(b=b.split("?")[1]);if(a==null)return u(b);for(var b=b.split("&"),d=0;d 0 && config.circle.layer > 0){ + fctx1.clearRect(0, 0, wWidth, wHeight); + for (var i=0, len = circles.length; i wWidth + radius){ + x = -radius; + } else if (x < -radius){ + x = wWidth + radius + } else { + x += sin*speed; + } + + if (y > wHeight + radius){ + y = -radius; + } else if (y < -radius){ + y = wHeight + radius; + } else { + y -= cos*speed; + } + + item.x = x; + item.y = y; + drawCircle(x, y, radius, item.color, item.alpha); + } + } + + if (config.line.amount > 0 && config.line.layer > 0){ + fctx2.clearRect(0, 0, wWidth, wHeight); + for (var j=0, len = lines.length; j wWidth + width * sin){ + x = -width * sin; + } else if (x < -width * sin){ + x = wWidth + width * sin; + } else { + x += sin*speed; + } + + if (y > wHeight + width * cos){ + y = -width * cos; + } else if (y < -width * cos){ + y = wHeight + width * cos; + } else { + y -= cos*speed; + } + + item.x = x; + item.y = y; + drawLine(x, y, width, item.color, item.alpha); + } + } + + timer = requestAnimationFrame(animate); + }; + + var createItem = function(){ + circles = []; + lines = []; + + if (config.circle.amount > 0 && config.circle.layer > 0){ + for (var i=0; i 0 && config.line.layer > 0){ + for (var m=0; m'); + (function(){ + var pinboardLinkroll = document.createElement('script'); + pinboardLinkroll.type = 'text/javascript'; + pinboardLinkroll.async = true; + pinboardLinkroll.src = url; + document.getElementsByTagName('head')[0].appendChild(pinboardLinkroll); + })(); +} + +function pinboardNS_show_bmarks(r) { + var lr = new Pinboard_Linkroll(); + lr.set_items(r); + lr.show_bmarks(); +} + +function Pinboard_Linkroll() { + var items; + + this.set_items = function(i) { + this.items = i; + } + this.show_bmarks = function() { + var lines = []; + for (var i = 0; i < this.items.length; i++) { + var item = this.items[i]; + var str = this.format_item(item); + lines.push(str); + } + document.getElementById(linkroll).innerHTML = lines.join("\n"); + } + this.cook = function(v) { + return v.replace('<', '<').replace('>', '>>'); + } + + this.format_item = function(it) { + var str = "
  • "; + if (!it.d) { return; } + str += "

    " + this.cook(it.d) + ""; + if (it.n) { + str += "" + this.cook(it.n) + "\n"; + } + if (it.t.length > 0) { + for (var i = 0; i < it.t.length; i++) { + var tag = it.t[i]; + str += " " + this.cook(tag).replace(/^\s+|\s+$/g, '') + " "; + } + } + str += "

  • \n"; + return str; + } +} +Pinboard_Linkroll.prototype = new Pinboard_Linkroll(); +pinboardNS_fetch_script("https://feeds.pinboard.in/json/v1/u:"+pinboard_user+"/?cb=pinboardNS_show_bmarks\&count="+pinboard_count); + diff --git a/source/javascripts/twitter.js b/source/javascripts/twitter.js new file mode 100644 index 0000000..3e2dd0d --- /dev/null +++ b/source/javascripts/twitter.js @@ -0,0 +1,78 @@ +// JSON-P Twitter fetcher for Octopress +// (c) Brandon Mathis // MIT License + +/* Sky Slavin, Ludopoli. MIT license. * based on JavaScript Pretty Date * Copyright (c) 2008 John Resig (jquery.com) * Licensed under the MIT license. */ +function prettyDate(time) { + if (navigator.appName === 'Microsoft Internet Explorer') { + return ""; // because IE date parsing isn't fun. + } + var say = { + just_now: " now", + minute_ago: "1m", + minutes_ago: "m", + hour_ago: "1h", + hours_ago: "h", + yesterday: "1d", + days_ago: "d", + last_week: "1w", + weeks_ago: "w" + }; + + var current_date = new Date(), + current_date_time = current_date.getTime(), + current_date_full = current_date_time + (1 * 60000), + date = new Date(time), + diff = ((current_date_full - date.getTime()) / 1000), + day_diff = Math.floor(diff / 86400); + + if (isNaN(day_diff) || day_diff < 0) { return ""; } + + return day_diff === 0 && ( + diff < 60 && say.just_now || + diff < 120 && say.minute_ago || + diff < 3600 && Math.floor(diff / 60) + say.minutes_ago || + diff < 7200 && say.hour_ago || + diff < 86400 && Math.floor(diff / 3600) + say.hours_ago) || + day_diff === 1 && say.yesterday || + day_diff < 7 && day_diff + say.days_ago || + day_diff === 7 && say.last_week || + day_diff > 7 && Math.ceil(day_diff / 7) + say.weeks_ago; +} + +function linkifyTweet(text, url) { + // Linkify urls, usernames, hashtags + text = text.replace(/(https?:\/\/)([\w\-:;?&=+.%#\/]+)/gi, '$2') + .replace(/(^|\W)@(\w+)/g, '$1@$2') + .replace(/(^|\W)#(\w+)/g, '$1#$2'); + + // Use twitter's api to replace t.co shortened urls with expanded ones. + for (var u in url) { + if(url[u].expanded_url != null){ + var shortUrl = new RegExp(url[u].url, 'g'); + text = text.replace(shortUrl, url[u].expanded_url); + var shortUrl = new RegExp(">"+(url[u].url.replace(/https?:\/\//, '')), 'g'); + text = text.replace(shortUrl, ">"+url[u].display_url); + } + } + return text +} + +function showTwitterFeed(tweets, twitter_user) { + var timeline = document.getElementById('tweets'), + content = ''; + + for (var t in tweets) { + content += '
  • '+'

    '+''+prettyDate(tweets[t].created_at)+''+linkifyTweet(tweets[t].text.replace(/\n/g, '
    '), tweets[t].entities.urls)+'

    '+'
  • '; + } + timeline.innerHTML = content; +} + +function getTwitterFeed(user, count, replies) { + count = parseInt(count, 10); + $.ajax({ + url: "https://api.twitter.com/1/statuses/user_timeline/" + user + ".json?trim_user=true&count=" + (count + 20) + "&include_entities=1&exclude_replies=" + (replies ? "0" : "1") + "&callback=?" + , type: 'jsonp' + , error: function (err) { $('#tweets li.loading').addClass('error').text("Twitter's busted"); } + , success: function(data) { showTwitterFeed(data.slice(0, count), user); } + }) +} diff --git a/source/my-career/index.md b/source/my-career/index.md new file mode 100644 index 0000000..09cb89d --- /dev/null +++ b/source/my-career/index.md @@ -0,0 +1,16 @@ +--- +title: My Career +author: wahyd4 +layout: page +--- +### **java-sorting** + +自己通过看数据结构中的一些经典排序算法,使用Java重新实现这些算法。代码放在github上。代码其实和网上的差不太多,有时候也会参考他们的代码,但是终归是自己思考过后的实现。 + +github项目地址: + +**Ocelots** + +一个基于团队的社交网络。帮助团队成员更好地了解其他成员。 + +github项目地址: \ No newline at end of file diff --git a/source/recommend/index.md b/source/recommend/index.md new file mode 100644 index 0000000..ec4a845 --- /dev/null +++ b/source/recommend/index.md @@ -0,0 +1,56 @@ +--- +title: 我推荐 +author: wahyd4 +layout: page +--- +我希望把我日常生活中看到的、学到的一些好资料、东西分享给大家!希望和大家一起学习、成长! + +**博客:** + +酷壳       + +阮一峰的博客   + +腾讯CDC        + +月光博客        + +老赵的点滴     + +司徒正美         + +**资料:** + +Javascript 秘密花园       + +排序算法舞蹈                    + +Understanding javascript oop    + +Node.js 入门                    + +深入探讨Java类加载机制   + +Ruby on Rails Guides(中文) + +Code Conventions for the JavaScript Programming Language :  + +Google JavaScript Style Guide :   + +**书籍:** + +《浪潮之巅》 + +《深入浅出设计模式》 + +《Javascript语言精粹》 + +《Thinking in java》 + +《编程珠玑》 + +**网站:** + +CDNJS: (托管很多著名的js,css,甚至其包含的图片,你还可以提交自己的js)  + +updated 2012/12/13 \ No newline at end of file