diff --git a/Douban.js b/Douban.js index 412f5829..0265189b 100644 --- a/Douban.js +++ b/Douban.js @@ -2,14 +2,14 @@ "translatorID": "fc353b26-8911-4c34-9196-f6f567c93901", "label": "Douban", "creator": "不是船长, Ace Strong, Zeping Lee", - "target": "^https?://(www|book|read)\\.douban\\.com/(subject|doulist|people/[a-zA-Z._]*/(do|wish|collect)|.*?status=(do|wish|collect)|group/[0-9]*?/collection|tag|ebook)", + "target": "^https?://\\w+\\.douban\\.com", "minVersion": "2.0rc1", "maxVersion": "", "priority": 100, "inRepository": true, "translatorType": 4, "browserSupport": "gcsibv", - "lastUpdated": "2023-03-22 18:46:52" + "lastUpdated": "2023-12-28 10:24:51" } /* @@ -35,207 +35,324 @@ ***** END LICENSE BLOCK ***** */ -// ####################### -// ##### Sample URLs ##### -// ####################### - -/* - * The starting point for an search is the URL below. - * In testing, I tried the following: - * - * - A search listing of books - * - A book html - * - A doulist html - * - A do html - * - A wish html - * - A collect html - */ -// http://book.douban.com/ - +const typeMap = { + 'book.douban.com/subject': 'book', + 'movie.douban.com/subject': 'film', + 'music.douban.com/subject': 'audioRecording', + 'read.douban.com/ebook': 'book' +}; function detectWeb(doc, url) { - var pattern = /subject_search|doulist|people\/[a-zA-Z._]*?\/(?:do|wish|collect)|.*?status=(?:do|wish|collect)|group\/[0-9]*?\/collection|tag/; - - if (pattern.test(url)) { - return "multiple"; + Z.debug('---------- Douban 2023-12-28 18:23:36 ----------'); + let typeKey = Object.keys(typeMap).find(key => new RegExp(`${key}/\\d+/`).test(url)); + if (typeKey) { + return typeMap[typeKey]; } - else { - return "book"; + else if (getSearchResults(doc, true)) { + return 'multiple'; } + return false; } -function detectTitles(doc, url) { - var pattern = /\.douban\.com\/tag\//; - if (pattern.test(url)) { - return ZU.xpath(doc, '//div[@class="info"]/h2/a'); - } - else { - return ZU.xpath(doc, '//div[@class="title"]/a'); +function getSearchResults(doc, checkOnly) { + var items = {}; + var found = false; + // h2见于read.douban.com/ebook + // td > .pl2见于music.douban.com/top250 + var rows = Array.from(doc.querySelectorAll('.title > a, h2 > a, td > .pl2 > a, a.album-title')).filter(row => Object.keys(typeMap).some(key => new RegExp(`${key}/\\d+/`).test(row.href)) + ); + for (let row of rows) { + let href = row.href; + let title = ZU.trimInternal(row.textContent); + if (!href || !title) continue; + if (checkOnly) return true; + found = true; + items[href] = title; } + return found ? items : false; } -function doWeb(doc, url) { - let r = /douban.com\/url\//; - if (detectWeb(doc, url) == "multiple") { - // also searches but they don't work as test cases in Scaffold - // e.g. https://book.douban.com/subject_search?search_text=Murakami&cat=1001 - var items = {}; - // var titles = ZU.xpath(doc, '//div[@class="title"]/a'); - var titles = detectTitles(doc, url); - for (let i = 0; i < titles.length; i++) { - let title = titles[i]; - // Zotero.debug({ href: title.href, title: title.textContent }); - if (r.test(title.href)) { // Ignore links - continue; - } - items[title.href] = title.textContent; +async function doWeb(doc, url) { + if (detectWeb(doc, url) == 'multiple') { + let items = await Zotero.selectItems(getSearchResults(doc, false)); + if (!items) return; + for (let url of Object.keys(items)) { + await scrape(await requestDocument(url)); } - Zotero.selectItems(items, function (items) { - if (items) { - ZU.processDocuments(Object.keys(items), scrape); - } - }); } else { - scrape(doc, url); + await scrape(doc, url); } } - -// ############################# -// ##### Scraper functions ##### -// ############################# - -function isChinese(str) { - return Boolean(str.match(/[\u4E00-\u9FCC]/)); -} - -function processName(item, name, type, extraContents) { - let originalAuthor; - let country; - // 处理国别,"【美】林南 著" => "[美]林南 著" - let matched = name.match(/^(\(.*?\)|\[.*?\]|(.*?)|【.*?】)\s*(.*)$/); - if (matched) { - country = matched[1].slice(1, -1); - name = matched[2]; - if (country.match(/^.国$/)) { - country = country[0]; +async function scrape(doc, url = doc.location.href) { + var newItem = new Z.Item(detectWeb(doc, url)); + newItem.extra = ''; + var creators; + const isRead = url.includes('read.douban.com/ebook'); + // .article-meta for read + var labels = isRead + ? new Labels(doc, '.article-meta > p') + : new TextLabels(doc, '#info'); + Z.debug(isRead ? labels.innerData.map(arr => [arr[0], arr[1].innerText]) : labels.innerData); + var title = text(doc, 'h1'); + switch (newItem.itemType) { + case 'book': { + Z.debug('this is a book'); + if (title.match(/[((].*第.*?(?:版|卷)[))]$/)) { + newItem.title = tryMatch(title, /(.+)\s*[((].*第.*?(?:版|卷)[))]/, 1); + newItem.edition = toArabicNum(tryMatch(title, /[((].*第(.*?)版[))]/, 1)); + newItem.volume = toArabicNum(tryMatch(title, /[((].*第(.*?)卷[))]/, 1)); + } + else { + newItem.title = title; + } + let subtitle = labels.getWith('副标题'); + if (subtitle) { + newItem.shortTitle = newItem.title; + newItem.title = `${newItem.title}${/[\u4E00-\u9FCC]/.test(newItem.title) ? ':' : ': '}${subtitle}`; + } + // https://book.douban.com/subject/21294724/ + newItem.abstractNote = text(doc, '#link-report .hidden .intro') || text(doc, '#link-report .intro'); + newItem.series = labels.getWith('丛书'); + newItem.publisher = isRead + ? labels.getWith('出版社').split(' / ')[0] + : labels.getWith('出版社'); + // https://book.douban.com/subject/1451400/ + newItem.date = isRead + ? tryMatch(labels.getWith('出版社'), /[\d.-]+/) + : labels.getWith('出版年').replace(/\./g, '-'); + newItem.numPages = labels.getWith('页数'); + newItem.ISBN = labels.getWith('ISBN'); + newItem.shortTitle = tryMatch(newItem.title, /[::] (.+)$/, 1); + let authors = isRead + ? Array.from(labels.getWith('作者', true).querySelectorAll('.author-item')) + .map(creator => processName(ZU.trimInternal(creator.textContent), 'author')) + : labels.getWith('作者').split(' / ') + .map(creator => processName(creator, 'author')); + let translators = isRead + ? Array.from(labels.getWith('译者', true).querySelectorAll('.author-item')) + .map(translator => processName(ZU.trimInternal(translator.textContent), 'translator')) + : labels.getWith('译者').split(' / ') + .map(translator => processName(translator, 'translator')); + creators = [...authors, ...translators]; + // 仅在read中有效 + doc.querySelectorAll('.tags a > span:first-child').forEach((tag) => { + newItem.tags.push(tag.innerText); + }); + let contents = doc.querySelector('[id*="dir_"][id*="_full"], .table-of-contents'); + if (contents) { + newItem.notes.push(`《${newItem.title}》\n` + contents.innerText.replace(/ · · · [\s\S]*$/, '').replace(/展开全部$/, '')); + } + // https://book.douban.com/subject/26604008/ + newItem.extra += addExtra('original-title', labels.getWith('原作名')); + newItem.extra += addExtra('price', labels.getWith('定价')); + break; } - } - - let roles = { - 著: 'author', - 编: 'author', - 主编: 'editor', - 译: 'translator', - // 以下类型没有 Zotero 对应的字段,所以不录入 - 校: null, - 审校: null, - 审: null, - 校注: null, - 注: null, - }; - - // 去掉括号中的内容,如 "戴维 A.帕特森 (David A.Patterson)" - matched = name.replace(/(/g, '(').replace(/)/g, ')').match(/^(.*?)\s*\(([^(]*)\)$/); - if (matched) { - name = matched[1]; - let parenthetical = matched[2]; - if (parenthetical in roles) { - type = roles[parenthetical]; - if (!type) { - return; + case 'film': { + Z.debug('this is a film'); + if (/[\u4E00-\u9FCC]/.test(title) && title.includes(' ')) { + newItem.title = tryMatch(title, /(.+?) /, 1); + newItem.extra += addExtra('original-title', tryMatch(title, / (.+)/, 1)); } + else { + newItem.title = title; + } + newItem.abstractNote = text('.related-info .all'); + newItem.date = tryMatch(labels.getWith('上映日期'), /[\d-]+/); + newItem.genre = 'Film'; + newItem.runningTime = labels.getWith('片长').replace('分钟', ' min'); + newItem.extra += addExtra('place', labels.getWith('制片国家')); + newItem.extra += addExtra('alias', labels.getWith('又名')); + newItem.extra += addExtra('IMDb', labels.getWith('IMDb')); + newItem.extra += addExtra('style', labels.getWith('类型')); + let directors = labels.getWith('导演').split(' / ').map(director => processName(director, 'director')); + let scriptwriters = labels.getWith('编剧').split(' / ').map(scriptwriter => processName(scriptwriter, 'scriptwriter')); + let contributors = labels.getWith('主演').split(' / ').map(contributor => processName(contributor, 'contributor')); + creators = [...directors, ...scriptwriters, ...contributors]; + break; } - else { - originalAuthor = parenthetical.replace(/\.(\S)/, '. $1'); + case 'audioRecording': { + newItem.title = title; + newItem.abstractNote = text('.related-info .all'); + newItem.audioRecordingFormat = labels.getWith('介质'); + newItem.label = labels.getWith('出版者'); + newItem.date = labels.getWith('发行时间').replace(/\./, '-'); + // runningTime: 时长, + newItem.extra += addExtra('genre', 'Album'); + newItem.extra += addExtra('style', labels.getWith('流派')); + newItem.extra += addExtra('alias', labels.getWith('又名')); + newItem.extra += addExtra('ISRC', labels.getWith('ISRC')); + newItem.extra += addExtra('bar-code', labels.getWith('条形码')); + let performers = labels.getWith('表演者').split(' / ').map(performer => processName(performer, 'performer')); + creators = performers; + let contents = doc.querySelector('.track-list'); + if (contents) { + newItem.notes.push(`《${newItem.title}》\n` + contents.innerText.replace(/ · · · [\s\S]*$/, '').replace(/展开全部$/, '')); + } + break; } + default: + break; } - // Z.debug('"' + name + '"'); - - // 处理姓名类型,"[美]林南 著" => "[美]林南" - if (name.includes(' ')) { - let nameParts = name.split(/\s+/); - // Z.debug(nameParts); + newItem.abstractNote = ZU.trimInternal(newItem.abstractNote); + newItem.language = /[\u4e00-\u9fa5]/.test(newItem.title) + ? 'zh-CN' + : 'en-US'; + newItem.url = url; + newItem.extra += addExtra('rating', text(doc, '.rating_num')); + newItem.extra += addExtra('rating-people', text(doc, '.rating_people')); + newItem.extra += addExtra('comments', tryMatch(text(doc, '#comments-section h2'), /\d+/)); + Z.debug(creators); + newItem.extra += addExtra('creatorsExt', JSON.stringify(creators)); + creators.forEach((creator) => { + newItem.extra += addExtra('original-author', creator.original); + delete creator.country; + delete creator.original; + newItem.creators.push(creator); + }); + newItem.complete(); +} - let lastPart = nameParts[nameParts.length - 1]; - if (lastPart in roles) { - type = roles[lastPart]; - if (!type) { - return; - } - nameParts.pop(); - } +class TextLabels { + constructor(doc, selector) { + // innerText在详情页表现良好,但在多条目表现欠佳,故统一使用经过处理的text + this.innerData = text(doc, selector) + .replace(/^[\s\n]*/gm, '') + .replace(/:\n/g, ': ') + .replace(/\n\/\n/g, ' / ') + // https://book.douban.com/subject/1291204/ + .replace(/\n([^】\]::]+?\n)/g, ' $1') + .split('\n') + .map(keyVal => [ + tryMatch(keyVal, /^[[【]?([\s\S]+?)[】\]::]\s*[\s\S]+$/, 1).replace(/\s/g, ''), + tryMatch(keyVal, /^[[【]?[\s\S]+?[】\]::]\s*([\s\S]+)$/, 1) + ]); + } - // "校注 崔长青" - let firstPart = nameParts[0]; - if (firstPart in roles) { - type = roles[firstPart]; - if (!type) { - return; - } - nameParts.shift(); + getWith(label) { + if (Array.isArray(label)) { + let result = label + .map(aLabel => this.getWith(aLabel)) + .find(value => value); + return result + ? result + : ''; } - - name = nameParts.join(' '); + let pattern = new RegExp(label); + let keyVal = this.innerData.find(element => pattern.test(element[0])); + return keyVal + ? ZU.trimInternal(keyVal[1]) + : ''; } +} - // 按照《法学引注手册》中关于外籍作者的姓名格式,如“[美]理查德·J. 皮尔斯” - if (isChinese(name)) { - name = name.replace(/([\u4E00-\u9FCC]) /g, '$1·'); - name = name.replace(/([A-Z])·/g, '$1. '); - name = name.replace(/([A-Z])\s/g, '$1. '); - name = name.replace(/\.(\S)/g, '. $1'); +class Labels { + constructor(doc, selector) { + this.innerData = []; + Array.from(doc.querySelectorAll(selector)) + .filter(element => element.firstElementChild) + .forEach((element) => { + let elementCopy = element.cloneNode(true); + let key = elementCopy.removeChild(elementCopy.firstElementChild).innerText.replace(/\s/g, ''); + this.innerData.push([key, elementCopy]); + }); } - if (country && isChinese(name)) { - name = '[' + country + ']' + name; + getWith(label, element = false) { + if (Array.isArray(label)) { + let result = label + .map(aLabel => this.getWith(aLabel, element)); + result = element + ? result.find(element => element.childNodes.length) + : result.find(element => element); + return result + ? result + : element + ? document.createElement('div') + : ''; + } + let pattern = new RegExp(label); + let keyValPair = this.innerData.find(element => pattern.test(element[0])); + if (element) return keyValPair ? keyValPair[1] : document.createElement('div'); + return keyValPair + ? ZU.trimInternal(keyValPair[1].innerText) + : ''; } +} - if (isChinese(name)) { - item.creators.push({ - lastName: name, - creatorType: type - }); - } - else { - item.creators.push(ZU.cleanAuthor(name, type)); - } +function addExtra(key, value) { + return value + ? `${key}: ${value}\n` + : ''; +} - if (originalAuthor && type === 'author') { - extraContents.push('Original Author: ' + originalAuthor); +function tryMatch(string, pattern, index = 0) { + let match = string.match(pattern); + if (match && match[index]) { + return match[index]; } + return ''; } -function processParenthetical(item, parenthetical) { - if (parenthetical.endsWith('版') && !item.edition) { - let edition = parenthetical; - let matched = parenthetical.match(/第\s*(.*)\s*版/); - if (matched) { - edition = matched[1]; - if (isChinese(edition)) { - edition = transformChineseNumber(edition).toString(); - } - } - item.edition = edition; +function processName(fullName, defaultType) { + var creatorType, country, original; + // 当多个人名折叠时,最后一个人名可能带有“更多”。 + fullName = fullName.replace(/更多\.\.\.$/, ''); + // https://book.douban.com/subject/35152294/ + country = tryMatch(fullName, /^[[((【](.+?)国?[】))\]]/, 1); + fullName = fullName.replace(/^[[((【].+?国?[】))\]]/, ''); + + const role = { + 著: 'author', + 编: 'author', + 主编: 'editor', + 译: 'translator', + 校: 'contributor', + 审校: 'contributor', + 审: 'contributor', + 校注: 'contributor', + 注: 'contributor' + }; + let remark = tryMatch(fullName, /[(()](.+)[))]$/, 1); + fullName = fullName.replace(/[(()](.+)[))]$/, ''); + if (remark in role) { + creatorType = role[remark]; } - else if (parenthetical.endsWith('卷') && !item.volume) { - let volume = parenthetical; - let matched = parenthetical.match(/第\s*(.*)\s*卷/); - if (matched) { - volume = matched[1]; - if (isChinese(volume)) { - volume = transformChineseNumber(volume).toString(); + else { + // https://book.douban.com/subject/26604008/ + original = remark; + for (const key in role) { + let rolePattern = new RegExp(`(${key} )|( ${key})`); + if (rolePattern.test(fullName)) { + creatorType = role[key]; + fullName = fullName.replace(key, ''); + break; } } - item.volume = volume; } + creatorType = creatorType || defaultType; + let creator = ZU.cleanAuthor(fullName, creatorType); + // https://book.douban.com/subject/26604008/ + if (/[\u4e00-\u9fa5]/.test(creator.lastName)) { + creator.lastName = creator.firstName + creator.lastName; + creator.lastName = creator.lastName.replace(/([\u4e00-\u9fa5])([a-z])/gi, '$1·$2'); + creator.lastName = creator.lastName.replace(/\.(\S)/gi, '. $1'); + // https://book.douban.com/subject/25807982/ + creator.lastName = creator.lastName.replace(/•/gi, '·'); + creator.firstName = ''; + creator.fieldMode = 1; + } + creator.country = country; + creator.original = original; + return creator; } -function transformChineseNumber(number) { +function toArabicNum(zhNum) { + if (!zhNum) return ''; let res = 0; let lastDigit = 0; - let digits = { + const digitMap = { 一: 1, 二: 2, 三: 3, @@ -246,22 +363,22 @@ function transformChineseNumber(number) { 八: 8, 九: 9, }; - let multipliers = { + const unitMap = { 十: 10, 百: 100, 千: 1000, 万: 10000, }; - for (let char of number) { - if (char in digits) { - lastDigit = digits[char]; + for (let char of zhNum) { + if (char in digitMap) { + lastDigit = digitMap[char]; } - else if (char in multipliers) { + else if (char in unitMap) { if (lastDigit > 0) { - res += lastDigit * multipliers[char]; + res += lastDigit * unitMap[char]; } else { - res += multipliers[char]; + res += unitMap[char]; } lastDigit = 0; } @@ -270,913 +387,373 @@ function transformChineseNumber(number) { return res; } -function isRead(url){ - Z.debug(url); - if(url.includes('read.douban')){ - return true; - } - return false; -} - -function scrape(doc, url) { - // 类型 & URL - var itemType = "book"; - var newItem = new Zotero.Item(itemType); - var read = isRead(url); - newItem.url = url; - let extraContents = []; - - // 标题 - var title = doc.querySelector('h1').textContent.trim(); - - // 处理标题中的括号,如 “(原书第5版)” - let parenthetical; - let matched = title.match(/^(.*)\s*(\([^(]*\)|([^(]*))$/); - if (matched) { - title = matched[1]; - parenthetical = matched[2].slice(1, -1); - processParenthetical(newItem, parenthetical); - } - - newItem.title = title; - if (isChinese(title)) { - newItem.language = 'zh'; - } - else { - newItem.language = 'en'; - } - - let info = doc.querySelector(read ? '.article-meta' : '#info'); - let items = []; - let itemText = ''; - if(read){ - for (let node of info.childNodes) { - if (node.tagName === 'P') { - let label = node.querySelector('.label').textContent; - let text = node.querySelector('.labeled-text').innerHTML; - - mix_text = text.match(/<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]+.*?>/g); - if(mix_text){ - let contentInfo=[]; - for (let i = 0; i < mix_text.length; i++) { - let match = mix_text[i].match(/<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]+.*?>/); - contentInfo.push(match[1]); - } - text = contentInfo.join(" / "); - }else{ - text = node.querySelector('.labeled-text').textContent; - } - - if(label == '出版社'){ - let m = text.match(/([^\/]*)\/(.+)/); - if (m){ - text = m[1]; - items.push(ZU.trimInternal('出版年:'+m[2])); - } - } - Z.debug(label+':'+text); - - items.push(ZU.trimInternal(label+':'+text)); - itemText = ''; - } - else { - itemText += node.textContent; - } - } - let subtitle = doc.querySelector('.subtitle'); - if(subtitle){ - items.push(ZU.trimInternal('副标题:'+subtitle.textContent)); - } - }else{ - for (let node of info.childNodes) { - if (node.tagName === 'BR') { - items.push(ZU.trimInternal(itemText)); - itemText = ''; - } - else { - itemText += node.textContent; - } - } - } - - - for (let item of items) { - let parts = item.match(/^([^:]*):\s*(.*)$/); - let key = parts[1]; - let value = parts[2]; - - switch (key) { - case '作者': - for (let name of value.split(' / ')) { - processName(newItem, name, 'author', extraContents); - } - break; - case '出版社': - newItem.publisher = value; - break; - case '副标题': - // 处理标题中的括号,如 “(原书第5版)” - parenthetical = null; - matched = value.match(/^(.*)\s*(\([^(]*\)|([^(]*))$/); - if (matched) { - value = matched[1]; - parenthetical = matched[2].slice(1, -1); - processParenthetical(newItem, parenthetical); - } - - newItem.shortTitle = newItem.title; - if (isChinese(newItem.title)) { - newItem.title += ':' + value; - } - else { - newItem.title += ': ' + value; - } - break; - case '原作名': - extraContents.push('Original Title: ' + value); - break; - case '译者': - for (let name of value.split(' / ')) { - processName(newItem, name, 'translator', extraContents); - } - break; - case '出版年': - if (value.includes('.')) { - // 2016.9 - value = value.replace(/\./g, '-'); - } - var dateParts = value.split('-'); - for (let i = 1; i <= 2; ++i) { - if (dateParts[i] && dateParts[i].length == 1) { - dateParts[i] = '0' + dateParts[i]; - } - } - newItem.date = dateParts.join('-'); - break; - case '页数': - newItem.numPages = value; - break; - // case '定价': - // break; - // case '装帧': - // break; - case '丛书': - newItem.series = value; - break; - case 'ISBN': - newItem.ISBN = value; - break; - } - } - - if (!newItem.shortTitle) { - if (isChinese(newItem.title)) { - newItem.shortTitle = newItem.title.replace(/:.*$/, ''); - } - } - - newItem.extra = extraContents.join('\n'); - - // 目录 - let toc = ZU.xpath(doc, "//div[@class='indent' and contains(@id, 'dir_') and contains(@id, 'full')]"); - if (toc.length > 0) { - toc = toc[0]; - if (toc.textContent.match(/· · · ·\s*\(收起\)\s*$/)) { - for (let i = 0; i != 3; ++i) { - toc.removeChild(toc.lastChild); - } - } - - let note = '

'; - if (isChinese(title)) { - note += '《' + title + '》'; - } - else { - note += '' + title + ''; - } - note += ' - 目录

\n' + toc.innerHTML; - newItem.notes.push({ note: note }); - } - if(read){ - let toc = doc.querySelector('.article-profile-intro.table-of-contents.collapse-context'); - if(toc){ - let text=toc.querySelector('.bd.collapse-content ol'); - if(text){ - text = text.innerText.replace(/\n/g, '
\n'); - let note = '

'; - if (isChinese(title)) { - note += '《' + title + '》'; - } - else { - note += '' + title + ''; - } - note += ' - 目录

\n' + text; - newItem.notes.push({ note: note }); - } - } - } - - // 标签 - var tags = ZU.xpath(doc, '//div[@id="db-tags-section"]/div[@class="indent"]/span/a[contains(@class, "tag") ]'); - for (let i in tags) { - newItem.tags.push(tags[i].text); - } - - // // 作者简介 - // let authorInfoList = ZU.xpath(doc, "//span[text()='作者简介']/parent::h2/following-sibling::div//div[@class='intro']"); - // // 这里会获取平级的元素,当有多个时(有展开全部按钮)取最后一个 - // let authorInfo = ""; - // let authorInfotwo = ""; - // if (authorInfoList.length > 0) { - // authorInfo = authorInfoList[authorInfoList.length - 1].innerHTML; - // // 正则提取

标签里面的元素,并添加换行 - // authorInfo = authorInfo.match(/<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]+.*?>/g); - // for (let i = 0; i < authorInfo.length; i++) { - // authorInfo[i] = authorInfo[i].match(/<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]+.*?>/g); - // authorInfotwo = authorInfotwo + RegExp.$1 + "\n"; - // } - // } - - - // 内容简介 - // 获取展开全部按钮里面的内容 - let contentInfoList = ZU.xpath(doc, "//span[text()='内容简介']/parent::h2/following-sibling::div[@id='link-report']//div[@class='intro']"); - let contentInfo = ""; - let contentInfoTwo = ""; - if (contentInfoList.length > 0) { - contentInfo = contentInfoList[contentInfoList.length - 1].innerHTML; - contentInfo = contentInfo.match(/<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]+.*?>/g); - for (let i = 0; i < contentInfo.length; i++) { - contentInfo[i] = contentInfo[i].match(/<[a-zA-Z]+.*?>([\s\S]*?)<\/[a-zA-Z]+.*?>/g); - contentInfoTwo = contentInfoTwo + RegExp.$1 + "\n"; - } - } - - if(read){ - contentInfoList = doc.querySelector("div[itemprop='description']").querySelectorAll(".info"); - if(contentInfoList && contentInfoList.length>1){ - for(let i=0; i《计算机组成与设计》 - 目录\n\n 出版者的话
\n 本书赞誉
\n 译者序
\n 前言
\n 作者简介
\n 第1章 计算机概要与技术1
\n 1.1 引言1
\n 1.1.1 计算应用的分类及其特性2
\n 1.1.2 欢迎来到后PC时代3
\n 1.1.3 你能从本书学到什么4
\n 1.2 计算机系统结构中的8个伟大思想6
\n 1.2.1 面向摩尔定律的设计6
\n 1.2.2 使用抽象简化设计6
\n 1.2.3 加速大概率事件6
\n 1.2.4 通过并行提高性能7
\n 1.2.5 通过流水线提高性能7
\n 1.2.6 通过预测提高性能7
\n 1.2.7 存储器层次7
\n 1.2.8 通过冗余提高可靠性7
\n 1.3 程序概念入门7
\n 1.4 硬件概念入门10
\n 1.4.1 显示器11
\n 1.4.2 触摸屏12
\n 1.4.3 打开机箱12
\n 1.4.4 数据安全15
\n 1.4.5 与其他计算机通信16
\n 1.5 处理器和存储器制造技术17
\n 1.6 性能20
\n 1.6.1 性能的定义20
\n 1.6.2 性能的度量22
\n 1.6.3 CPU性能及其因素23
\n 1.6.4 指令的性能24
\n 1.6.5 经典的CPU性能公式25
\n 1.7 功耗墙27
\n 1.8 沧海巨变:从单处理器向多处理器转变29
\n 1.9 实例:Intel Core i7基准31
\n 1.9.1 SPEC CPU基准测试程序31
\n 1.9.2 SPEC功耗基准测试程序32
\n 1.10 谬误与陷阱33
\n 1.11 本章小结35
\n 1.12 历史观点和拓展阅读36
\n 1.13 练习题36
\n 第2章 指令:计算机的语言40
\n 2.1 引言40
\n 2.2 计算机硬件的操作43
\n 2.3 计算机硬件的操作数44
\n 2.3.1 存储器操作数45
\n 2.3.2 常数或立即数操作数47
\n 2.4 有符号数和无符号数48
\n 2.5 计算机中指令的表示53
\n 2.6 逻辑操作58
\n 2.7 决策指令60
\n 2.7.1 循环61
\n 2.7.2 case/switch语句63
\n 2.8 计算机硬件对过程的支持64
\n 2.8.1 使用更多的寄存器66
\n 2.8.2 嵌套过程67
\n 2.8.3 在栈中为新数据分配空间69
\n 2.8.4 在堆中为新数据分配空间70
\n 2.9 人机交互72
\n 2.10 MIPS中32位立即数和寻址75
\n 2.10.1 32位立即数75
\n 2.10.2 分支和跳转中的寻址76
\n 2.10.3 MIPS寻址模式总结78
\n 2.10.4 机器语言解码79
\n 2.11 并行与指令:同步81
\n 2.12 翻译并执行程序83
\n 2.12.1 编译器83
\n 2.12.2 汇编器84
\n 2.12.3 链接器85
\n 2.12.4 加载器87
\n 2.12.5 动态链接库87
\n 2.12.6 启动一个Java程序89
\n 2.13 以一个C排序程序作为完整的例子90
\n 2.13.1 swap过程90
\n 2.13.2 sort过程91
\n 2.14 数组与指针96
\n 2.14.1 用数组实现clear96
\n 2.14.2 用指针实现clear97
\n 2.14.3 比较两个版本的clear97
\n 2.15 高级内容:编译C语言和解释Java语言98
\n 2.16 实例:ARMv7(32位)指令集98
\n 2.16.1 寻址模式99
\n 2.16.2 比较和条件分支100
\n 2.16.3 ARM的特色100
\n 2.17 实例:x86指令集102
\n 2.17.1 Intel x86的改进102
\n 2.17.2 x86寄存器和数据寻址模式103
\n 2.17.3 x86整数操作105
\n 2.17.4 x86指令编码107
\n 2.17.5 x86总结108
\n 2.18 实例:ARMv8(64位)指令集108
\n 2.19 谬误与陷阱109
\n 2.20 本章小结110
\n 2.21 历史观点和拓展阅读111
\n 2.22 练习题112
\n 第3章 计算机的算术运算117
\n 3.1 引言117
\n 3.2 加法和减法117
\n 3.3 乘法121
\n 3.3.1 顺序的乘法算法和硬件121
\n 3.3.2 有符号乘法124
\n 3.3.3 更快速的乘法124
\n 3.3.4 MIPS中的乘法124
\n 3.3.5 小结125
\n 3.4 除法125
\n 3.4.1 除法算法及其硬件结构125
\n 3.4.2 有符号除法128
\n 3.4.3 更快速的除法128
\n 3.4.4 MIPS中的除法129
\n 3.4.5 小结129
\n 3.5 浮点运算130
\n 3.5.1 浮点表示131
\n 3.5.2 浮点加法135
\n 3.5.3 浮点乘法138
\n 3.5.4 MIPS中的浮点指令139
\n 3.5.5 算术精确性145
\n 3.5.6 小结146
\n 3.6 并行性和计算机算术:子字并行148
\n 3.7 实例:x86中流处理SIMD扩展和高级向量扩展149
\n 3.8 加速:子字并行和矩阵乘法150
\n 3.9 谬误与陷阱153
\n 3.10 本章小结155
\n 3.11 历史观点和拓展阅读158
\n 3.12 练习题159
\n 第4章 处理器162
\n 4.1 引言162
\n 4.2 逻辑设计的一般方法165
\n 4.3 建立数据通路167
\n 4.4 一个简单的实现机制173
\n 4.4.1 ALU控制173
\n 4.4.2 主控制单元的设计175
\n 4.4.3 为什么不使用单周期实现方式181
\n 4.5 流水线概述182
\n 4.5.1 面向流水线的指令集设计186
\n 4.5.2 流水线冒险186
\n 4.5.3 对流水线概述的小结191
\n 4.6 流水线数据通路及其控制192
\n 4.6.1 图形化表示的流水线200
\n 4.6.2 流水线控制203
\n 4.7 数据冒险:旁路与阻塞206
\n 4.8 控制冒险214
\n 4.8.1 假定分支不发生215
\n 4.8.2 缩短分支的延迟215
\n 4.8.3 动态分支预测216
\n 4.8.4 流水线小结220
\n 4.9 异常221
\n 4.9.1 MIPS体系结构中的异常处理221
\n 4.9.2 在流水线实现中的异常222
\n 4.10 指令级并行226
\n 4.10.1 推测的概念227
\n 4.10.2 静态多发射处理器227
\n 4.10.3 动态多发射处理器231
\n 4.10.4 能耗效率与高级流水线233
\n 4.11 实例:ARM Cortex-A8和Intel Core i7流水线234
\n 4.11.1 ARM Cortex-A8235
\n 4.11.2 Intel Core i7 920236
\n 4.11.3 Intel Core i7 920的性能238
\n 4.12 运行更快:指令级并行和矩阵乘法240
\n 4.13 高级主题:通过硬件设计语言描述和建模流水线来介绍数字设计以及更多流水线示例242
\n 4.14 谬误与陷阱242
\n 4.15 本章小结243
\n 4.16 历史观点和拓展阅读243
\n 4.17 练习题243
\n 第5章 大容量和高速度:开发存储器层次结构252
\n 5.1 引言252
\n 5.2 存储器技术255
\n 5.2.1 SRAM技术256
\n 5.2.2 DRAM技术256
\n 5.2.3 闪存258
\n 5.2.4 磁盘存储器258
\n 5.3 cache的基本原理259
\n 5.3.1 cache访问261
\n 5.3.2 cache缺失处理265
\n 5.3.3 写操作处理266
\n 5.3.4 一个cache的例子:内置FastMATH处理器267
\n 5.3.5 小结269
\n 5.4 cache性能的评估和改进270
\n 5.4.1 通过更灵活地放置块来减少cache缺失272
\n 5.4.2 在cache中查找一个块275
\n 5.4.3 替换块的选择276
\n 5.4.4 使用多级cache结构减少缺失代价277
\n 5.4.5 通过分块进行软件优化280
\n 5.4.6 小结283
\n 5.5 可信存储器层次283
\n 5.5.1 失效的定义283
\n 5.5.2 纠正一位错、检测两位错的汉明编码(SEC/DED)284
\n 5.6 虚拟机287
\n 5.6.1 虚拟机监视器的必备条件289
\n 5.6.2 指令集系统结构(缺乏)对虚拟机的支持289
\n 5.6.3 保护和指令集系统结构289
\n 5.7 虚拟存储器290
\n 5.7.1 页的存放和查找293
\n 5.7.2 缺页故障294
\n 5.7.3 关于写297
\n 5.7.4 加快地址转换:TLB297
\n 5.7.5 集成虚拟存储器、TLB和cache 300
\n 5.7.6 虚拟存储器中的保护302
\n 5.7.7 处理TLB缺失和缺页303
\n 5.7.8 小结307
\n 5.8 存储器层次结构的一般框架309
\n 5.8.1 问题1:一个块可以被放在何处309
\n 5.8.2 问题2:如何找到一个块310
\n 5.8.3 问题3:当cache缺失时替换哪一块311
\n 5.8.4 问题4:写操作如何处理311
\n 5.8.5 3C:一种理解存储器层次结构行为的直观模型312
\n 5.9 使用有限状态机来控制简单的cache314
\n 5.9.1 一个简单的cache314
\n 5.9.2 有限状态机315
\n 5.9.3 一个简单的cache控制器的有限状态机316
\n 5.10 并行与存储器层次结构:cache一致性317
\n 5.10.1 实现一致性的基本方案318
\n 5.10.2 监听协议319
\n 5.11 并行与存储器层次结构:冗余廉价磁盘阵列320
\n 5.12 高级内容:实现cache控制器320
\n 5.13 实例:ARM Cortex-A8和Intel Core i7的存储器层次结构320
\n 5.14 运行更快:cache分块和矩阵乘法324
\n 5.15 谬误和陷阱326
\n 5.16 本章小结329
\n 5.17 历史观点和拓展阅读329
\n 5.18 练习题329
\n 第6章 从客户端到云的并行处理器340
\n 6.1 引言340
\n 6.2 创建并行处理程序的难点342
\n 6.3 SISD、MIMD、SIMD、SPMD和向量机345
\n 6.3.1 在x86中的SIMD:多媒体扩展346
\n 6.3.2 向量机346
\n 6.3.3 向量与标量的对比347
\n 6.3.4 向量与多媒体扩展的对比348
\n 6.4 硬件多线程350
\n 6.5 多核和其他共享内存多处理器352
\n 6.6 图形处理单元简介355
\n 6.6.1 NVIDIA GPU体系结构简介356
\n 6.6.2 NVIDIA GPU存储结构357
\n 6.6.3 GPU展望358
\n 6.7 集群、仓储级计算机和其他消息传递多处理器360
\n 6.8 多处理器网络拓扑简介363
\n 6.9 与外界通信:集群网络366
\n 6.10 多处理器测试集程序和性能模型366
\n 6.10.1 性能模型368
\n 6.10.2 Roofline模型369
\n 6.10.3 两代Opteron的比较370
\n 6.11 实例:评测Intel Core i7 960和NVIDIA Tesla GPU的Roofline模型373
\n 6.12 运行更快:多处理器和矩阵乘法376
\n 6.13 谬误与陷阱378
\n 6.14 本章小结379
\n 6.15 历史观点和拓展阅读381
\n 6.16 练习题382
\n 附录A 汇编器、链接器和SPIM仿真器389
\n 附录B 逻辑设计基础437
\n 索引494
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/30280001/", - "items": [ - { - "itemType": "book", - "title": "计算机网络:自顶向下方法", - "creators": [ - { - "firstName": "James F.", - "lastName": "Kurose", - "creatorType": "author" - }, - { - "firstName": "Keith W.", - "lastName": "Ross", - "creatorType": "author" - }, - { - "lastName": "陈鸣", - "creatorType": "translator" - } - ], - "date": "2018-06", - "ISBN": "9787111599715", - "abstractNote": "本书是经典的计算机网络教材,采用作者独创的自顶向下方法来讲授计算机网络的原理及其协议,自第1版出版以来已经被数百所大学和学院选作教材,被译为14种语言。\n第7版保持了以前版本的特色,继续关注因特网和计算机网络的现代处理方式,注重原理和实践,为计算机网络教学提供一种新颖和与时俱进的方法。同时,第7版进行了相当多的修订和更新,首次改变了各章的组织结构,将网络层分成两章(第4章关注网络层的数据平面,第5章关注网络层的控制平面),并将网络管理主题放入新的第5章中。此外,为了反映自第6版以来计算机网络领域的新变化,对其他章节也进行了更新,删除了FTP和分布式散列表的材料,用流行的因特网显式拥塞通告(ECN)材料代替了ATM网络的材料,更新了有关802.11(即WiFi)网络和蜂窝网络(包括4G和LTE)的材料,全面修订并增加了新的课后习题,等等。\n本书适合作为计算机、电气工程等专业本科生的“计算机网络”课程教科书,同时也适合网络技术人员、专业研究人员阅读。", - "edition": "7", - "extra": "Original Title: Computer Networking: A Top-Down Approach", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "480", - "publisher": "机械工业出版社", - "series": "计算机科学丛书", - "shortTitle": "计算机网络", - "url": "https://book.douban.com/subject/30280001/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《计算机网络》 - 目录

\n\n 目录
\n 出版者的话
\n 作译者简介
\n 译者序
\n 前言
\n 第1章 计算机网络和因特网1
\n 1.1 什么是因特网1
\n 1.1.1 具体构成描述1
\n 1.1.2 服务描述4
\n 1.1.3 什么是协议5
\n 1.2 网络边缘6
\n 1.2.1 接入网8
\n 1.2.2 物理媒体13
\n 1.3 网络核心15
\n 1.3.1 分组交换15
\n 1.3.2 电路交换19
\n 1.3.3 网络的网络22
\n 1.4 分组交换网中的时延、丢包和吞吐量24
\n 1.4.1 分组交换网中的时延概述24
\n 1.4.2 排队时延和丢包27
\n 1.4.3 端到端时延28
\n 1.4.4 计算机网络中的吞吐量30
\n 1.5 协议层次及其服务模型32
\n 1.5.1 分层的体系结构32
\n 1.5.2 封装36
\n 1.6 面对攻击的网络37
\n 1.7 计算机网络和因特网的历史40
\n 1.7.1 分组交换的发展:1961~197241
\n 1.7.2 专用网络和网络互联:1972~198042
\n 1.7.3 网络的激增:1980~199042
\n 1.7.4 因特网爆炸:20世纪90年代43
\n 1.7.5 最新发展44
\n 1.8 小结44
\n 课后习题和问题46
\n 复习题46
\n 习题47
\n Wireshark实验51
\n 人物专访52
\n 第2章 应用层54
\n 2.1 应用层协议原理54
\n 2.1.1 网络应用程序体系结构55
\n 2.1.2 进程通信57
\n 2.1.3 可供应用程序使用的运输服务59
\n 2.1.4 因特网提供的运输服务60
\n 2.1.5 应用层协议63
\n 2.1.6 本书涉及的网络应用63
\n 2.2 Web和HTTP64
\n 2.2.1 HTTP概况64
\n 2.2.2 非持续连接和持续连接65
\n 2.2.3 HTTP报文格式67
\n 2.2.4 用户与服务器的交互:cookie70
\n 2.2.5 Web缓存72
\n 2.2.6 条件GET方法74
\n 2.3 因特网中的电子邮件75
\n 2.3.1 SMTP76
\n 2.3.2 与HTTP的对比78
\n 2.3.3 邮件报文格式79
\n 2.3.4 邮件访问协议79
\n 2.4 DNS:因特网的目录服务83
\n 2.4.1 DNS提供的服务83
\n 2.4.2 DNS工作机理概述85
\n 2.4.3 DNS记录和报文89
\n 2.5 P2P文件分发92
\n 2.6 视频流和内容分发网97
\n 2.6.1 因特网视频97
\n 2.6.2 HTTP流和DASH98
\n 2.6.3 内容分发网98
\n 2.6.4 学习案例:Netflix、YouTube和“看看”101
\n 2.7 套接字编程:生成网络应用104
\n 2.7.1 UDP套接字编程105
\n 2.7.2 TCP套接字编程109
\n 2.8 小结112
\n 课后习题和问题113
\n 复习题113
\n 习题114
\n 套接字编程作业118
\n Wireshark实验:HTTP119
\n Wireshark实验:DNS120
\n 人物专访120
\n 第3章 运输层121
\n 3.1 概述和运输层服务121
\n 3.1.1 运输层和网络层的关系122
\n 3.1.2 因特网运输层概述123
\n 3.2 多路复用与多路分解125
\n 3.3 无连接运输:UDP130
\n 3.3.1 UDP报文段结构132
\n 3.3.2 UDP检验和133
\n 3.4 可靠数据传输原理134
\n 3.4.1 构造可靠数据传输协议135
\n 3.4.2 流水线可靠数据传输协议143
\n 3.4.3 回退N步145
\n 3.4.4 选择重传148
\n 3.5 面向连接的运输:TCP152
\n 3.5.1 TCP连接152
\n 3.5.2 TCP报文段结构154
\n 3.5.3 往返时间的估计与超时157
\n 3.5.4 可靠数据传输159
\n 3.5.5 流量控制164
\n 3.5.6 TCP连接管理166
\n 3.6 拥塞控制原理170
\n 3.6.1 拥塞原因与代价171
\n 3.6.2 拥塞控制方法175
\n 3.7 TCP拥塞控制176
\n 3.7.1 公平性183
\n 3.7.2 明确拥塞通告:网络辅助拥塞控制184
\n 3.8 小结185
\n 课后习题和问题187
\n 复习题187
\n 习题189
\n 编程作业195
\n Wireshark实验:探究TCP196
\n Wireshark实验:探究UDP196
\n 人物专访196
\n 第4章 网络层:数据平面198
\n 4.1 网络层概述198
\n 4.1.1 转发和路由选择:数据平面和控制平面199
\n 4.1.2 网络服务模型202
\n 4.2 路由器工作原理203
\n 4.2.1 输入端口处理和基于目的地转发205
\n 4.2.2 交换207
\n 4.2.3 输出端口处理209
\n 4.2.4 何处出现排队209
\n 4.2.5 分组调度211
\n 4.3 网际协议:IPv4、寻址、IPv6及其他214
\n 4.3.1 IPv4数据报格式214
\n 4.3.2 IPv4数据报分片216
\n 4.3.3 IPv4编址217
\n 4.3.4 网络地址转换225
\n 4.3.5 IPv6227
\n 4.4 通用转发和SDN231
\n 4.4.1 匹配233
\n 4.4.2 动作234
\n 4.4.3 匹配加动作操作中的OpenFlow例子234
\n 4.5 小结236
\n 课后习题和问题236
\n 复习题236
\n 习题237
\n Wireshark实验240
\n 人物专访241
\n 第5章 网络层:控制平面242
\n 5.1 概述242
\n 5.2 路由选择算法244
\n 5.2.1 链路状态路由选择算法246
\n 5.2.2 距离向量路由选择算法248
\n 5.3 因特网中自治系统内部的路由选择:OSPF254
\n 5.4 ISP之间的路由选择:BGP256
\n 5.4.1 BGP的作用257
\n 5.4.2 通告BGP路由信息257
\n 5.4.3 确定最好的路由259
\n 5.4.4 IP任播261
\n 5.4.5 路由选择策略262
\n 5.4.6 拼装在一起:在因特网中呈现264
\n 5.5 SDN控制平面265
\n 5.5.1 SDN控制平面:SDN控制器和SDN网络控制应用程序266
\n 5.5.2 OpenFlow协议267
\n 5.5.3 数据平面和控制平面交互的例子269
\n 5.5.4 SDN的过去与未来270
\n 5.6 ICMP:因特网控制报文协议272
\n 5.7 网络管理和SNMP274
\n 5.7.1 网络管理框架274
\n 5.7.2 简单网络管理协议275
\n 5.8 小结277
\n 课后习题和问题278
\n 复习题278
\n 习题279
\n 套接字编程作业281
\n 编程作业282
\n Wireshark实验282
\n 人物专访283
\n 第6章 链路层和局域网285
\n 6.1 链路层概述285
\n 6.1.1 链路层提供的服务287
\n 6.1.2 链路层在何处实现287
\n 6.2 差错检测和纠正技术288
\n 6.2.1 奇偶校验289
\n 6.2.2 检验和方法290
\n 6.2.3 循环冗余检测291
\n 6.3 多路访问链路和协议292
\n 6.3.1 信道划分协议294
\n 6.3.2 随机接入协议295
\n 6.3.3 轮流协议301
\n 6.3.4 DOCSIS:用于电缆因特网接入的链路层协议301
\n 6.4 交换局域网302
\n 6.4.1 链路层寻址和ARP303
\n 6.4.2 以太网308
\n 6.4.3 链路层交换机312
\n 6.4.4 虚拟局域网317
\n 6.5 链路虚拟化:网络作为链路层319
\n 6.6 数据中心网络322
\n 6.7 回顾:Web页面请求的历程326
\n 6.7.1 准备:DHCP、UDP、IP和以太网326
\n 6.7.2 仍在准备:DNS和ARP327
\n 6.7.3 仍在准备:域内路由选择到DNS服务器328
\n 6.7.4 Web客户-服务器交互:TCP和HTTP329
\n 6.8 小结330
\n 课后习题和问题331
\n 复习题331
\n 习题331
\n Wireshark实验335
\n 人物专访336
\n 第7章 无线网络和移动网络338
\n 7.1 概述339
\n 7.2 无线链路和网络特征341
\n 7.3 WiFi:802.11无线LAN346
\n 7.3.1 802.11体系结构347
\n 7.3.2 802.11 MAC协议350
\n 7.3.3 IEEE 802.11帧353
\n 7.3.4 在相同的IP子网中的移动性355
\n 7.3.5 802.11中的高级特色356
\n 7.3.6 个人域网络:蓝牙和ZigBee357
\n 7.4 蜂窝因特网接入358
\n 7.4.1 蜂窝网体系结构概述359
\n 7.4.2 3G蜂窝数据网:将因特网扩展到蜂窝用户360
\n 7.4.3 走向4G:LTE362
\n 7.5 移动管理:原理364
\n 7.5.1 寻址367
\n 7.5.2 路由选择到移动节点367
\n 7.6 移动IP371
\n 7.7 管理蜂窝网中的移动性374
\n 7.7.1 对移动用户呼叫的路由选择375
\n 7.7.2 GSM中的切换376
\n 7.8 无线和移动性:对高层协议的影响378
\n 7.9 小结380
\n 课后习题和问题380
\n 复习题380
\n 习题381
\n Wireshark实验383
\n 人物专访383
\n 第8章 计算机网络中的安全385
\n 8.1 什么是网络安全385
\n 8.2 密码学的原则387
\n 8.2.1 对称密钥密码体制388
\n 8.2.2 公开密钥加密392
\n 8.3 报文完整性和数字签名396
\n 8.3.1 密码散列函数397
\n 8.3.2 报文鉴别码398
\n 8.3.3 数字签名399
\n 8.4 端点鉴别404
\n 8.4.1 鉴别协议ap1.0404
\n 8.4.2 鉴别协议ap2.0405
\n 8.4.3 鉴别协议ap3.0405
\n 8.4.4 鉴别协议ap3.1406
\n 8.4.5 鉴别协议ap4.0406
\n 8.5 安全电子邮件407
\n 8.5.1 安全电子邮件407
\n 8.5.2 PGP409
\n 8.6 使TCP连接安全:SSL410
\n 8.6.1 宏观描述411
\n 8.6.2 更完整的描述413
\n 8.7 网络层安全性:IPsec和虚拟专用网415
\n 8.7.1 IPsec和虚拟专用网415
\n 8.7.2 AH协议和ESP协议416
\n 8.7.3 安全关联416
\n 8.7.4 IPsec数据报417
\n 8.7.5 IKE:IPsec中的密钥管理420
\n 8.8 使无线LAN安全420
\n 8.8.1 有线等效保密421
\n 8.8.2 IEEE 802.11i422
\n 8.9 运行安全性:防火墙和入侵检测系统424
\n 8.9.1 防火墙424
\n 8.9.2 入侵检测系统429
\n 8.10 小结431
\n 课后习题和问题432
\n 复习题432
\n 习题434
\n Wireshark实验437
\n IPsec实验437
\n 人物专访438
\n 第9章 多媒体网络439
\n 9.1 多媒体网络应用439
\n 9.1.1 视频的性质439
\n 9.1.2 音频的性质440
\n 9.1.3 多媒体网络应用的类型441
\n 9.2 流式存储视频443
\n 9.2.1 UDP流444
\n 9.2.2 HTTP流444
\n 9.3 IP语音447
\n 9.3.1 尽力而为服务的限制448
\n 9.3.2 在接收方消除音频的时延抖动449
\n 9.3.3 从丢包中恢复451
\n 9.3.4 学习案例:使用Skype的VoIP453
\n 9.4 实时会话式应用的协议455
\n 9.4.1 RTP455
\n 9.4.2 SIP457
\n 9.5 支持多媒体的网络461
\n 9.5.1 定制尽力而为网络462
\n 9.5.2 提供多种类型的服务463
\n 9.5.3 区分服务468
\n 9.5.4 每连接服务质量保证:资源预约和呼叫准入470
\n 9.6 小结472
\n 课后习题和问题473
\n 复习题473
\n 习题473
\n 编程作业477
\n 人物专访478
\n 参考文献480
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/35152294/", - "items": [ - { - "itemType": "book", - "title": "社会资本:关于社会结构与行动的理论", - "creators": [ - { - "lastName": "[美]林南", - "creatorType": "author" - }, - { - "lastName": "张磊", - "creatorType": "translator" - } - ], - "date": "2020-07", - "ISBN": "9787509782149", - "abstractNote": "林南将社会资本理论放在资本理论(古典资本理论与新古典资本理论)的体系之中,详细阐述了社会资本的要素、命题和理论发现,介绍了研究计划与研究议程,对个体行动与社会结构之间的互动意义进行了理论说明(在对首属群体、社会交换、组织、制度转型和数码网络的论述中)。林南开创性地提出并且令人信服地解释了为什么“你认识谁“和“你知道什么“在生活与社会中具有重要意义。", - "language": "zh", - "libraryCatalog": "Douban", - "publisher": "社会科学文献出版社", - "shortTitle": "社会资本", - "url": "https://book.douban.com/subject/35152294/", - "attachments": [], - "tags": [], - "notes": [], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/24720345/", - "items": [ - { - "itemType": "book", - "title": "反叛的科学家", - "creators": [ - { - "lastName": "[美]弗里曼·戴森", - "creatorType": "author" - }, - { - "lastName": "肖明波", - "creatorType": "translator" - }, - { - "lastName": "杨光松", - "creatorType": "translator" - } - ], - "date": "2013-06-01", - "ISBN": "9787308112246", - "abstractNote": "从伽利略到今天的业余天文观测者,科学家们都有反叛精神,戴森如是说。在追求大自然真理时,他们受理性更受想象力的指引,他们最伟大的理论就具有伟大艺术作品的独特性与美感。\n戴森以生动优美的语言讲述了科学家在工作中的故事,从牛顿专心致志于物理学、炼金术、神学和政治,到卢瑟福发现原子结构,再到爱因斯坦固执地反对黑洞观念。他还以切身经历回忆了他的老师和朋友特勒与费曼等聪明绝顶的科学家。书里充满了有趣的逸事和对人心的深刻体察,反映了作者的怀疑精神。\n这组文章出自卓越的科学家同时也是文笔生动的作家之手,展现出对科学史的深刻洞察,以及当代人探讨科学、伦理与信仰的新视角。", - "extra": "Original Author: Freeman Dyson\nOriginal Title: The Scientist as Rebel", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "396", - "publisher": "浙江大学出版社", - "series": "启真·科学", - "url": "https://book.douban.com/subject/24720345/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《反叛的科学家》 - 目录

\n\n 目  录
\n 译本序(尹传红) 1
\n 作者序 1
\n 第一部分 当代科学中的问题
\n 1 反叛的科学家 13
\n 2 科学可以合乎道德吗? 31
\n 3 现代异教徒 46
\n 4 未来需要我们 53
\n 5 好一个大千世界! 68
\n 6 一场悲剧的见证 83
\n 第二部分 战争与和平
\n 7 炸弹与土豆 89
\n 8 将军 94
\n 9  俄罗斯人 112
\n 10 和平主义者 125
\n 11 军备竞赛结束了 144
\n 12 理性的力量 150
\n 13 血战到底 157
\n 第三部分 科学史与科学家
\n 14 两种历史 177
\n 15 爱德华• 特勒的《回忆录》 186
\n 16 业余科学家礼赞 192
\n 17 老牛顿,新印象 205
\n 18 时钟的科学 219
\n 19 弦上的世界 231
\n 20 奥本海默:科学家、管理者与诗人 247
\n 21 看到不可见的东西 263
\n 22 一位天才人物的悲惨故事 276
\n 23 智者 291
\n 第四部分 个人与哲学随笔
\n 24 世界、肉体与魔鬼 309
\n 25 实验室里有上帝吗? 327
\n 26 我的偶像崇拜 338
\n 27 百万分之一的可能性 344
\n 28 众多世界 357
\n 29 从局外看宗教 363
\n 第五部分
\n 书目注释 379
\n 附录:一个保守的革命者 383
\n 译后记 391
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/1291204/", - "items": [ - { - "itemType": "book", - "title": "哥德尔、艾舍尔、巴赫:集异璧之大成", - "creators": [ - { - "lastName": "[美]侯世达", - "creatorType": "author" - }, - { - "lastName": "严勇", - "creatorType": "translator" - }, - { - "lastName": "刘皓明", - "creatorType": "translator" - }, - { - "lastName": "莫大伟", - "creatorType": "translator" - } - ], - "date": "1997-05", - "ISBN": "9787100013239", - "abstractNote": "集异璧-GEB,是数学家哥德尔、版画家艾舍尔、音乐家巴赫三个名字的前缀。《哥德尔、艾舍尔、巴赫书:集异璧之大成》是在英语世界中有极高评价的科普著作,曾获得普利策非小说奖。它通过对哥德尔的数理逻辑,艾舍尔的版画和巴赫的音乐三者的综合阐述,引人入胜地介绍了数理逻辑 学、可计算理 论、人工智能学、语言学、遗传学、音乐、绘画的理论等方面,构思精巧、含义深刻、视野广阔、富于哲学韵味。\n中译本前后费时十余年,译者都是数学和哲学的专家,还得到原作者的直接参与,译文严谨通达,特别是在原作者的帮助下,把西方的文化典故和说法,尽可能转换为中国文化的典故和说法,使这部译本甚至可看作是一部新的创作,也是中外翻译史上的一个创举。", - "extra": "Original Title: Gödel, Escher, Bach: An Eternal Golden Braid", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "1053", - "publisher": "商务印书馆", - "shortTitle": "哥德尔、艾舍尔、巴赫", - "url": "https://book.douban.com/subject/1291204/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《哥德尔、艾舍尔、巴赫》 - 目录

\n\n 作者为中文版所写的前言
\n 译校者的话
\n 概览
\n 插图目示
\n 鸣谢
\n 上篇:集异璧 GEB
\n 导言 一首音乐--逻辑的奉献:三部创意曲
\n 第一章 wu谜题:二部创意曲
\n 第二章 数学中的意义与形式:无伴奏阿基里斯奏鸣曲
\n 第三章 图形与衬底:对位藏头诗
\n 第四章 一致性、完全性与几何学:和声小迷宫
\n 第五章 递归结构和递归过程:音程增值的卡农
\n 第六章 意义位于何处:半音阶幻想曲,及互格
\n 第七章 命题演算:螃蟹卡农
\n 第八章 印符数论:一首无的奉献
\n 第九章 无门与歌德尔
\n 下篇:异集璧 EGB
\n 前奏曲
\n 第十章 描述的层次和计算机系统:蚂蚁赋格
\n 第十一章 大脑和思维:英、法、德、中组曲
\n 第十二章 心智和思维:咏叹调及其种种变奏
\n 第十三章 bloop和floop和gloop:g弦上的咏叹调
\n 第十四章 论tnt及有关系统中形式上不可判定的命题:生日大合唱哇哇哇乌阿乌阿乌阿
\n 第十五章 跳出系统:一位烟民富于启发性的思想
\n 第十六章 自指和自复制:的确该赞美螃蟹
\n 第十七章 丘奇、图灵、塔斯基及别的人:施德鲁,人设计的玩具
\n 第十八章 人工智能:回顾:对实
\n 第十九章 人工智能:展望:树懒卡农
\n 第二十章 怪圈,或缠结的层次结构:六部无插入赋格
\n 注释
\n 文献目录
\n 索引
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/25807982/", - "items": [ - { - "itemType": "book", - "title": "创新者的窘境", - "creators": [ - { - "lastName": "[美]克莱顿·克里斯坦森", - "creatorType": "author" - }, - { - "lastName": "胡建桥", - "creatorType": "translator" - } - ], - "date": "2014-01-01", - "ISBN": "9787508642802", - "abstractNote": "全球商业领域中,许多企业曾叱咤风云,但面对市场变化及新技术的挑战,最终惨遭淘汰。究其原因,竟然是因为它们精于管理,信奉客户至上等传统商业观念。这就是所有企业如今都正面临的“创新者的窘境”。\n在《创新者的窘境》中,管理大师克里斯坦森指出,一些看似很完美的商业动作——对主流客户所需、赢利能力最强的产品进行精准投资和技术研发——最终却很可能毁掉一家优秀的企业。他分析了计算机、汽车、钢铁等多个行业的创新模式,发现正是那些暂时遭到主流客户拒绝的关键的、突破性的技术,逐渐演变成了主导新市场的“破坏性创新”。如果企业过于注重客户当下的需求,就会导致创新能力下降,从而无法开拓新市场,常常在不经意间与宝贵机遇失之交臂。而更灵活、更具创业精神的企业则能立足创新,把握产业增长的下一波浪潮。\n克里斯坦森根据大量企业的成败经验,提出将破坏性创新进行资本化运作的一系列规则——何时不应盲从客户,何时应投向性能较低、利润空间较小的产品,何时需舍弃看似规模更大、利润更高的市场,转而发展细分市场。《创新者的窘境》将助你预知即将来临的变化,在险象环生的商业竞争中实现基业长青。", - "edition": "全新修订版", - "extra": "Original Title: The Innovator's Dilemma: When New Technologies Cause Great Firms to Fail", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "296", - "publisher": "中信出版社", - "url": "https://book.douban.com/subject/25807982/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《创新者的窘境》 - 目录

\n\n 引言
\n 第一部分 大企业为什么会失败
\n 第1章 大企业为什么会失败?从硬盘驱动器行业获得的启示
\n 硬盘驱动器的工作原理
\n 最早的硬盘驱动器的出现
\n 技术变革的影响
\n 延续性技术变革
\n 在破坏性技术创新来临时遭遇失败
\n 小结
\n 附件1.1
\n 注释
\n 第2章 价值网络和创新推动力
\n 从组织和管理上解释为什么企业会遭遇失败
\n 能力和突破性技术可能是一种解释
\n 价值网络和对导致失败的各种因素的新看法
\n 技术S形曲线和价值网络
\n 管理决策过程和破坏性技术变革
\n 闪存和价值网络
\n 价值网络体系对创新的意义
\n 注释
\n 第3章 机械挖掘机行业的破坏性技术变革
\n 在延续性技术变革中的领导地位
\n 破坏性液压技术的影响
\n 成熟挖掘机制造商为应对液压技术采取的措施
\n 在缆索与液压之间做出选择
\n 液压技术的崛起所产生的结果和影响
\n 注释
\n 第4章 回不去的低端市场
\n 硬盘驱动器行业的“右上方向大迁移”
\n 价值网络和典型的成本结构
\n 资源分配和向上迁移
\n 案例:1.8英寸硬盘驱动器
\n 价值网络和市场可预见性
\n 综合性钢铁企业的“右上角”移动
\n 小型钢铁厂薄板坯连铸技术
\n 注释
\n 第二部分 管理破坏性技术变革
\n 导言
\n 第5章 把开发破坏性技术的职责赋予存在客户需求的机构
\n 创新和资源分配
\n 开发破坏性硬盘驱动器技术的成功案例
\n 破坏性技术和资源依赖理论
\n 数字设备公司、IBM公司和个人电脑
\n 克雷斯吉公司、伍尔沃思公司和折扣零售
\n 自杀以求生存:惠普公司的激光喷射打印机和喷墨打印机
\n 注释
\n 第6章 如何使机构与市场的规模相匹配
\n 先锋企业是否真的时刻做好了准备
\n 企业规模和破坏性技术变革中的领先地位
\n 案例研究:推动新兴市场的增长率
\n 案例研究:等到市场发展到一定规模时再进入
\n 案例研究:让小机构去利用小机遇
\n 小结
\n 注释
\n 第7章 发现新兴市场
\n 对延续性技术和破坏性技术市场的预测
\n 为惠普公司的1.3英寸Kittyhawk硬盘驱动器寻找市场
\n 本田公司对北美摩托车行业的冲击
\n 英特尔公司是如何发现微处理器市场的
\n 成熟企业面临的不可预见性和向下游市场移动的难度
\n 注释
\n 第8章 如何评估机构的能力与缺陷
\n 机构能力框架
\n 流程与价值观的关系,以及如何成功应对延续性技术与破坏性技术
\n 能力的转移
\n 创造新能力应对变革
\n 小结
\n 注释
\n 第9章 产品性能、市场需求和生命周期
\n 性能过度供给和竞争基础的变化
\n 产品何时演变为商品
\n 性能过度供给和产品竞争的演变
\n 破坏性技术的其他普遍特征
\n 发生在会计软件市场的性能过度供给
\n 发生在胰岛素产品生命周期中的性能过度供给
\n 控制产品竞争的演变
\n 正确的战略和错误的战略
\n 注释
\n 第10章 管理破坏性技术变革:案例研究
\n 我们怎样才能判断出某项技术是否具有破坏性
\n 电动汽车的市场到底在哪儿
\n 我们应采取什么样的产品技术和经销策略
\n 什么样的机构最适合进行破坏性创新
\n 注释
\n 第11章 创新者的窘境:概要
\n 后记 创新者的窘境:阅读分类指南
\n 致谢
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/25817381/", - "items": [ - { - "itemType": "book", - "title": "普林斯顿数学指南", - "creators": [ - { - "firstName": "Timothy", - "lastName": "Gowers", - "creatorType": "editor" - }, - { - "lastName": "齐民友", - "creatorType": "translator" - } - ], - "date": "2014-01", - "ISBN": "9787030393210", - "abstractNote": "《数学名著译丛:普林斯顿数学指南(第1卷)》是由Fields奖得主T.Gowers主编、133位著名数学家共同参与撰写的大型文集,全书由288篇长篇论文和短篇条目构成,目的是对20世纪最后一二十年纯粹数学的发展给出一个概览,以帮助青年数学家学习和研究其最活跃的部分,这些论文和条目都可以独立阅读,原书有八个部分,除第1部分是一个简短的引论、第Ⅷ部分是全书的“终曲”以外,全书分为三大板块,核心是第Ⅳ部分“数学的各个分支”,共26篇长文,介绍了20世纪最后一二十年纯粹数学研究中最重要的成果和最活跃的领域,第Ⅲ部分“数学概念”和第V部分“定理与问题”都是为它服务的短条目,第二个板块是数学的历史,由第Ⅱ部分“现代数学的起源”(共7篇长文)和第Ⅵ部分“数学家传记”(96位数学家的短篇传记)组成,第三个板块是数学的应用,即第Ⅶ部分“数学的影响”(14篇长文章)。作为全书“终曲”的第Ⅷ部分“结束语:一些看法”则是对青年数学家的建议等7篇文章。\n中译本分为三卷,第一卷包括第I-Ⅲ部分,第二卷即第Ⅳ部分,第三卷包括第V~Ⅷ部分。\n《数学名著译丛:普林斯顿数学指南(第1卷)》适合于高等院校本科生、研究生、教师和研究人员学习和参考。虽然主要是为了数学专业的师生写的,但是,具有大学数学基础知识,更重要的是对数学有兴趣的读者,都可以从本书得到很大的收获。", - "extra": "Original Title: The Princeton Companion to Mathematics", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "536", - "publisher": "科学出版社", - "series": "数学名著译丛", - "url": "https://book.douban.com/subject/25817381/", - "volume": "1", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《普林斯顿数学指南》 - 目录

\n\n 译者序
\n 序
\n 撰稿人
\n 第1部分引论
\n 1数学是做什么的
\n 2数学的语言和语法
\n 3一些基本的数学定义
\n 4数学研究的一般目的
\n 第2部分现代数学的起源
\n 1从数到数系
\n 2几何学
\n 3抽象代数的发展
\n 4算法
\n 5数学分析的严格性的发展
\n 6证明的概念的发展
\n 7数学基础中的危机
\n 第3部分数学概念
\n 1选择公理
\n 2决定性公理
\n 3贝叶斯分析
\n 4辫群
\n 5厦
\n 6Calabi—Yau流形
\n 7基数
\n 8范畴
\n 9紧性与紧化
\n 10计算复杂性类
\n 11可数与不可数集合
\n 12C*—代数
\n 13曲率
\n 14设计
\n 15行列式
\n 16微分形式和积分
\n 17维
\n 18广义函数
\n 19对偶性
\n 20动力系统和混沌
\n 21椭圆曲线
\n 22欧几里得算法和连分数
\n 23欧拉方程和纳维一斯托克斯方程
\n 24伸展图
\n 25指数和对数函数
\n 26快速傅里叶变换
\n 27傅里叶变换
\n 28富克斯群
\n 29函数空间
\n 30伽罗瓦群
\n 31Gamma函数
\n 32生成函数
\n 33亏格
\n 34图
\n 35哈密顿函数
\n 36热方程
\n 37希尔伯特空间
\n 38同调与上同调
\n 39同伦群
\n 40理想类群
\n 41无理数和超越数
\n 42伊辛模型
\n 43约当法式
\n 44纽结多项式
\n 45K理论
\n 46利奇格网
\n 47L函数
\n 48李的理论
\n 49线性与非线性波以及孤子
\n 50线性算子及其性质
\n 5l数论中的局部与整体
\n 52芒德布罗集合
\n 53流形
\n 54拟阵
\n 55测度
\n 56度量空间
\n 57集合理论的模型
\n 58模算术
\n 59模形式
\n 60模空间
\n 61魔群
\n 62赋范空间与巴拿赫空间
\n 63数域
\n 64优化与拉格朗日乘子
\n 65轨道流形
\n 66序数
\n 67佩亚诺公理
\n 68置换群
\n 69相变
\n 70□
\n 71概率分布
\n 72射影空间
\n 73二次型
\n 74量子计算
\n 75量子群
\n 76四元数,八元数和赋范除法代数
\n 77表示
\n 78里奇流
\n 79黎曼曲面
\n 80黎曼□函数
\n 81环,理想与模
\n 82概型
\n 83薛定谔方程
\n 84单形算法
\n 85特殊函数
\n 86谱
\n 87球面调和
\n 88辛流形
\n 89张量积
\n 90拓扑空间
\n 91变换
\n 92三角函数
\n 93万有覆叠
\n 94变分法
\n 95簇
\n 96向量丛
\n 97冯·诺依曼代数
\n 98小波
\n 99策墨罗弗朗克尔公理
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/24862722/", - "items": [ - { - "itemType": "book", - "title": "链接:商业、科学与生活的新思维", - "creators": [ - { - "lastName": "[美]艾伯特-拉斯洛•巴拉巴西", - "creatorType": "author" - }, - { - "lastName": "沈华伟", - "creatorType": "translator" - } - ], - "date": "2013-08", - "ISBN": "9787213056550", - "abstractNote": "[内容简介]\n★《链接》是《爆发》的作者,艾伯特-拉斯洛•巴拉巴西的成名之作,同时也是复杂网络的奠基之作,社交网络的入门之作。巴拉巴西之前,随机网络理论一直主导者我们的网络思维,是巴拉巴西第一个证明了,我们不是生活在随机世界里,真实网络是无尺度的。\n★巴拉巴西在书中追溯了网络的数学起源,分析了社会学家在此基础上得出的研究成果,最后提出自己的观点:我们周围的复杂网络,从鸡尾酒会、恐怖组织、细胞网络、跨国公司到万维网,等等,所有这些网络都不是随机的,都可以用同一个稳健而普适的架构来刻画。这一发现为我们的网络研究提供了一个全新的视角。\n★虽然《链接》写于十年前,但这本书的精神到现在丝毫没有褪色。它带给了我们一种整体的、关联的、系统论的审视世界的方式,使我们不仅仅将视野局限于孤立的单元。广泛存在的链接是从简单到复杂、从单一到多样、从平凡到璀璨的桥梁。重温《链接》一书,领略科学家们在网络科学伊始对链接泛在性、数据复杂性、规律普适性的认识和思考,对我们在大数据时代抓住机遇、迎接挑战将大有裨益。\n★链接一书可以被视为复杂网络的基石,大数据时代的开端。\n[编辑推荐]\n★复杂网络研究权威 ,无尺度网络创立者,H-指数高达96的论文狂人,诺贝尔奖大热人选,超越《黑天鹅》的惊世之作《爆发》的作者艾伯特-拉斯洛•巴拉巴西经典力作\n★中科院计算所所长助理、中国科学院网络数据科学与技术重点实验室主任程学旗,电子科技大学教授、互联网科学中心主任周涛专文推荐。\n★巴拉巴西博士后,中科院计算所副研究员沈华伟打造唯一权威版本。\n★湛庐文化出品。", - "edition": "十周年纪念版", - "extra": "Original Author: Albert-László Barabási\nOriginal Title: Linked: How Everything Is Connected to Everything Else and What It Means for Business, Science, and Everyday Life", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "369", - "publisher": "浙江人民出版社", - "shortTitle": "链接", - "url": "https://book.douban.com/subject/24862722/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《链接》 - 目录

\n\n 推荐序一链接,大数据之钥
\n 程学旗
\n 中科院计算所所长助理
\n 中科院网络数据科学与技术重点实验室主任
\n 推荐序二链接:泽万物以生机
\n 周涛
\n 电子科技大学教授
\n 互联网科学中心主任
\n 第1链 网络让世界变得不同
\n 让雅虎网站瘫痪的少年黑客
\n 谁在支配网络的结构与演化
\n 当还原论撞上复杂性
\n 探寻下一个大变革
\n 第一部分 复杂网络的起源
\n 第2链 随机宇宙
\n 欧拉的图论与哥尼斯堡七桥问题
\n 网络构造,理解复杂世界的关键
\n 只需30分钟,一个无形社会网络的形成
\n 世界是随机的吗
\n 寻找复杂网络背后的秩序
\n 第3链 六度分隔
\n 《链》与六度分隔的最早表述
\n 任意两个网页之间平均相隔19次点击
\n 对数让大网络缩小了
\n 六度,社会间隔的上限
\n “小世界”,网络的普遍性质
\n 第4链小世界
\n 格兰诺维特与“弱关系的优势”
\n 趋同与聚团
\n 高度聚团的代价,消失的小世界
\n 抛弃随机世界观
\n 第二部分 复杂网络的本质
\n 第5链枢纽节点和连接者
\n 枢纽节点,颠覆“平等网络空间”
\n 贝肯数与埃尔德什数
\n 平均没有意义,多少不是关键
\n 重新思考网络
\n 第6链 幂律
\n 帕累托与80/20定律
\n 幂律,复杂网络背后的规律
\n 有序如何从无序中涌现
\n 从“随机”灌木丛到“自组织”舞台
\n 幂律无处不在
\n 第7链 富者愈富
\n 幂律为什么会出现
\n 生长机制,先发先至
\n 偏好连接,让强者愈强
\n 生长机制和偏好连接,支配真实网络的两大定律
\n 不断完善的无尺度网络理论
\n 第8链 爱因斯坦的馈赠
\n 为什么雅虎选择了谷歌
\n 新星效应打破先发先至
\n 适应度主导一切
\n “适者愈富”与“胜者通吃”
\n 节点永远在为链接而竞争
\n 第9链 阿喀琉斯之踵
\n 美国西部大停电与互联导致的脆弱性
\n 有效的攻击:攻击枢纽节点
\n 丢失枢纽节点,网络变成碎片
\n 健壮性与脆弱性并存
\n 将对网络的认识转化为实践
\n 第三部分 复杂网络的影响
\n 第10链 病毒和时尚
\n 互联网,让一夜成名的梦想变为现实
\n 意见领袖的力量
\n 无尺度拓扑,病毒得以传播和存活的基础
\n 优先治疗枢纽节点,优先对付“毒王”
\n 社会网络的变化影响传播与扩散规律
\n 第11链 觉醒中的互联网
\n 保罗•巴兰与最优的抗击打系统
\n 将互不兼容的机器连起来——互联网的诞生
\n 人类创造的互联网有了自己的生命
\n 互联网中的“权力制衡”
\n 寄生计算,让所有的计算机都为你工作
\n 第12链 分裂的万维网
\n 万维网的结构影响一切最多不一定最好万维网上的四块“大陆”代码与架构不断扩大的互联网黑洞
\n 第13链 生命的地图
\n 寻找“躁郁症”基因的竞赛
\n 破译人类基因组,打造生命之书
\n 细胞网络的无尺度拓扑,少数分子参与多数反应
\n 个性化药物瞄准问题细胞
\n 网络思维引发生物学大变革
\n 第14链 网络新经济
\n AOL吞并时代华纳
\n 公司网络,从树形结构到网状结构
\n 复杂董事网络中的完美“内部人士”
\n 市场,带权有向网络
\n 商业模式的转变,互联网带来的真正财富
\n 第15链 一张没有蜘蛛的网
\n 网络研究的冒险之旅网络理论,描述互联互通世界的新语言开启复杂性科学的世纪
\n 后记 复杂网络的未来 299
\n 一场范式变革应对多任务模块化,补上无尺度网络缺失的一链何时才能驯服复杂性
\n 注释
\n 译者后记
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/4606471/", - "items": [ - { - "itemType": "book", - "title": "设计心理学", - "creators": [ - { - "lastName": "[美]唐纳德·A. 诺曼", - "creatorType": "author" - }, - { - "lastName": "梅琼", - "creatorType": "translator" - } - ], - "date": "2010-03", - "ISBN": "9787508619156", - "abstractNote": "诺曼博士用诙谐的语言讲述了许多我们日常生活中常常会遇到的挫折和危险,帮我们找到了这些问题的关键,即产品设计忽略了使用者在一定情境中的真实需求,甚至违背了认知学原理。诺曼博士本书中强调以使用者为中心的设计哲学,提醒消费者在挑选的物品,必须要方便好用,易于理解,希望设计师在注重设计美感的同时,不要忽略设计的一些必要因素,因为对于产品设计来说,安全好用永远是竞争的关键。", - "extra": "Original Title: The Design of Everyday Things", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "271", - "publisher": "中信出版社", - "series": "设计心理学", - "url": "https://book.douban.com/subject/4606471/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《设计心理学》 - 目录

\n\n 推荐序一:设计是无言的服务
\n 推荐序二:“小”是一种更伟大的关怀
\n 新版序
\n 初版序
\n 第一章 日用品中的设计问题
\n 要想弄明白操作方法,你需要获得工程学学位
\n 日常生活中的烦恼
\n 日用品心理学
\n 易理解性和易使用性的设计原则
\n 可怜的设计人员
\n 技术进步带来的矛盾
\n 注释
\n 第二章 日常操作心理学
\n 替设计人员代过
\n 日常生活中的错误观念
\n 找错怪罪对象
\n 人类思考和解释的本质
\n 采取行动的七个阶段
\n 执行和评估之间的差距
\n 行动的七阶段分析法
\n 注释
\n 第三章 头脑中的知识与外界知识
\n 行为的精确性与知识的不精确性
\n 记忆是储存在头脑中的知识
\n 记忆也是储存于外界的知识
\n 外界知识和头脑中知识之间的权衡
\n 注释
\n 第四章 知道要做什么
\n 常用限制因素的类别
\n 预设用途和限制因素的应用
\n 可视性和反馈
\n 注释
\n 第五章 人非圣贤,孰能无过
\n 失误
\n 错误
\n 日常活动的结构
\n 有意识行为和下意识行为
\n 与差错相关的设计原则
\n 设计哲学
\n 注释
\n 第六章 设计中的挑战
\n 设计的自然演进
\n 设计人员为何误入歧途
\n 设计过程的复杂性
\n 水龙头:设计中所遇到的种种难题
\n 设计人员的两大致命诱惑
\n 注释
\n 第七章 以用户为中心的设计
\n 化繁为简的七个原则
\n 故意增加操作难度
\n 设计的社会功能
\n 日用品的设计
\n 注释
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/21294724/", - "items": [ - { - "itemType": "book", - "title": "人格解码", - "creators": [ - { - "lastName": "[美]塞缪尔•巴伦德斯", - "creatorType": "author" - }, - { - "lastName": "陶红梅", - "creatorType": "translator" - } - ], - "date": "2013-02", - "ISBN": "9787100096966", - "abstractNote": "《人格解码》是由著名的精神病专家和神经科学家塞缪尔·巴伦德斯为普通读者撰写的人格读本,它为我们提供了有效解读一个人的简洁途径。《人格解码》介绍如何运用当代心理学最为著名的“大五”人格模型、“十大”人格类型,以及伦理学的“六大”品格特性,科学而又深刻地剖析你想要了解的一个人的人格特质和类型,快速而又准确地读懂一个人。《人格解码》中贯穿了对克林顿、奥巴马、奥普拉、乔布斯、伯格扎克、富兰克林等名人人格的分析,不仅为我们提供了生动的范例,同时也使我们从科学心理学的视角,更为深入地了解这些名人。", - "extra": "Original Title: Making Sense of People: Decoding the Mysteries of Personality", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "226", - "publisher": "商务印书馆", - "series": "新曲线·心理学丛书", - "url": "https://book.douban.com/subject/21294724/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《人格解码》 - 目录

\n\n 详细目录
\n 导 言/13
\n 第一部分 描述人格差异
\n 1 人格特质/21
\n 当我们用“大五”人格来分析奥巴马和克林顿时,你会发现他们有哪些不同呢?你如何判断奥巴马和克林顿在外向性、自信心和活力等方面的不同?
\n 2 有问题的人格类型/49
\n 玛丽莲•梦露曾自述小时候有过想在教堂脱光自己衣服的冲动:“我非常想赤裸着身体站在神和其他人面前让他们看到我,我只得咬紧牙关,抑制住我的冲动:“我非常想赤裸着身体站在神和其他人面前让他们看到我,我只得咬紧牙关,抑制住我的冲动,这样才不致于去脱光衣服。”你知道在她身上到底发生了什么吗?
\n 第二部分 解释人格差异
\n 3 基因如何使我们各不相同/85
\n 人类心理上的差异反映了各种自然选择力量之间的冲突,进化是令人敬畏的,“如此看待生命,生命是壮观的……从如此简单的形势开始,不断进化成或正在进化成绝无仅有的最美丽和最精彩的生命。”
\n 4 发展个性化的大脑/113
\n 每一个大脑,就如同每张脸,都有它自身特有的构建计划。在每个人的大脑中都有其独特人格和根深蒂固的成分,它们继续指引着我们的余生。
\n 第三部分 整个人,整个生命
\n 5 什么是好品格/145
\n 我们对人的认识不全都是客观的,当我们第一次遇到他人时,我们不会只注意到他们的“大五”人格特质,而同时会对他们的品格形成一种本能的印象。你知道有哪些好品格吗?
\n 6 同一性:编织个人故事/173
\n 我们每个人都会编织自己的故事,随着同一性的形成,一些重要的记忆就无意识地被修改,以便于我们的内在自我形象保持一致。美国著名的节目主持人奥普拉的故事,是一个天赋战胜贫穷、虐待、种族歧视和青少年期所犯错误的一个典型例子,是雄心壮志带来成功机会的故事……而乔布斯的故事告诉我们他“求知若渴,虚心若愚”。
\n 7 一幅整合的画面/195
\n 特质、才能、价值观、环境和运气构成了我们的故事,我们可以在每个人的人格全景中看到每个组成部分的重要作用。为了整合这幅画面,我们要:记住我们共同的人性和人格发展的共同方式,形成一个“大五”人格轮廓,寻找潜在的问题类型,进行道德评价,聆听一个人的故事
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/4864832/", - "items": [ - { - "itemType": "book", - "title": "为什么学生不喜欢上学?", - "creators": [ - { - "firstName": "Daniel T.", - "lastName": "Willingham", - "creatorType": "author" - }, - { - "lastName": "赵萌", - "creatorType": "translator" - } - ], - "date": "2010-05", - "ISBN": "9787534396533", - "abstractNote": "本书是美国弗吉尼亚大学心理学教授威林厄姆的重要著作,是一本深受学生和教师欢迎的教育心理学著作。他用认知心理学的原理,详细分析了学生学习的过程和教师在课堂教学中必须注意的一些问题。书中每一章都运用了一个认知心理学的基本原理,如“事实性的知识先于技能”、“记忆是思考的残留物”、“我们在已知的环境中理解新的事物”、“儿童在学习方面更多的是相似而不是不同”、“教学技能可以通过练习而提高”等等。\n本书是一本关于认知心理学的普及读物,也是一本教育心理学的入门书籍。书中的许多观点新颖而深刻。如开篇伊始关于大脑的作用的分析,作者认为,大脑不是用来思考的,它的真正作用在于使你避免思考。虽然人类生来就具有好奇心,但是我们不是天生的杰出思想者,除非认知环境符合一定的要求,否则我们会尽可能地避免思考。作者指出,学生是否喜欢学校,在很大程度上取决于学校能否持续地让学生体验到解决问题的愉悦感。", - "extra": "Original Title: Why Don't Students Like School?: A Cognitive Scientist Answers Questions About How the Mind Works and What It Means for the Classroom", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "168", - "publisher": "江苏教育出版社", - "url": "https://book.douban.com/subject/4864832/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《为什么学生不喜欢上学?》 - 目录

\n\n 序
\n 中文版序
\n 致谢
\n 导言
\n Chapter1 为什么学生不喜欢上学?
\n 大脑不是用来思考的
\n 好奇心是与生俱来的,但它很脆弱
\n 我们是如何思考的
\n 对课堂的启示
\n Chapter2 教师应如何教授学生所需的技巧?
\n 背景知识对阅读理解来说必不可少
\n 背景知识对于认知能力的必要性
\n 事实性知识可以增强记忆
\n 对课堂的启示
\n Chapter3 为什么学生能记住电视里的所有细节,却记不住
\n 我们告诉他的任何知识?
\n 记忆的重要性
\n 好教师的共性
\n 故事的效用
\n 故事结构的实际应用
\n 无意义的情况
\n 对课堂的启示
\n Chapter4 为什么让学生理解抽象概念这么难?
\n 理解其实是记忆
\n 为什么知识是浅表的
\n 为什么知识不能迁移
\n 对课堂的启示
\n Chapter5 题海战术有用吗?
\n 练习是为了日后更好地学习
\n 练习使记忆更长久
\n 练习促进知识的迁移
\n 对课堂的启示
\n Chapter6 让学生像真正的学者一样思考的秘诀是什么?
\n 科学家、数学家和其他专业人士如何思考
\n 专家的“工具箱”里有些什么
\n 如何让学生像专家一样思考
\n 对课堂的启示
\n Chapter7 我们该如何因材施教?
\n 风格和能力
\n 认知风格
\n 视觉/听觉/运动知觉型的学习者
\n 能力和多元智能
\n 小结
\n 对课堂的启示
\n Chapter8 怎样帮助“慢热型”学生?
\n 什么使人聪明
\n 对于智能,态度很重要
\n 对课堂的启示
\n Chapter9 那么教师呢?
\n 作为认知技能的教学
\n 练习的重要性
\n 获得、给出反馈意见的方法
\n 有意识地提高:自我管理
\n 小步前进
\n 结语
\n 译后记
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/1451400/", - "items": [ - { - "itemType": "book", - "title": "风格的要素", - "creators": [ - { - "lastName": "[美]威廉·斯特伦克", - "creatorType": "author" - }, - { - "lastName": "陈玮", - "creatorType": "translator" - } - ], - "date": "2009-01", - "ISBN": "9787801096418", - "abstractNote": "《风格的要素(全新修订版)(中英对照版)》在中国赴美国的留学生中享有广泛的声誉,经过口口相传,几乎成了每一个出国留学者必备的英文写作指南。一个人必须首先了解规则才能够去打破它。这本经典的指导书是每个学生和写作者的必读之书。《风格的要素(全新修订版)(中英对照版)》以简短的篇幅阐明了英文朴实风格必须具备的基本原则,集中阐释了英语文法应用、写作技巧以及一般人在写作中常犯的错误等。", - "extra": "Original Title: The Elements of Style", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "251", - "publisher": "中央编译出版社", - "url": "https://book.douban.com/subject/1451400/", - "attachments": [], - "tags": [], - "notes": [], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://book.douban.com/subject/25963469/", - "items": [ - { - "itemType": "book", - "title": "好好讲道理:反击谬误的逻辑学训练", - "creators": [ - { - "lastName": "[美]T. 爱德华•戴默", - "creatorType": "author" - }, - { - "lastName": "刀尔登", - "creatorType": "translator" - }, - { - "lastName": "黄琳", - "creatorType": "translator" - } - ], - "date": "2014-08", - "ISBN": "9787308133517", - "abstractNote": "应对蛮不讲理者的60种逻辑学策略\n为什么要讲理?为什么希望别人也讲理?有这么几个实际的理由。\n第一,也是最重要的一点,是好的论证使我们更好地做出自己的决定。那些在生活的方方面面都有理有据的人,无论是实现目标还是完成计划,成功的机会更大。\n第二,遇到艰难的道德选择,好的论证起的作用尤为重要,它不仅帮助我们决定采取什么样的行动,还使我们避开有不良后果的行为。\n第三,好的论证,使我们更愿意只遵从那些我们有充分理由信其为真的、牢固的观念。如果我们要求自己是个讲道理的人,我们就该加强现有的信念,或暴露其不足,以便取舍。\n第四,运用好的论证,还能提升我们在社交、工作及个人事务中思考和行动的水准。要想让别人接受你的某个观点,讲道理通常要比吓唬人、讨好人等办法更有效,至少效果更长远些。\n最后一点,要解决人与人之间的争执,平息冲突,把注意力放到道理上来,是个有效的办法。注意到对方论证中的哪怕一丝道理,我们才能替自己找到更好的立场。\n本书能够帮助你:\n1.更好地应对胡搅蛮缠的妻子或丈夫、蛮不讲理的老板、喜欢抬杠的同事\n2.在交谈中驳回对方的诡辩\n3.提高思维能力,解决实际思维中的逻辑错误\n4.使你的推理更正确、表达更清晰\n5.找出解决问题的方法所在", - "extra": "Original Title: Attacking Faulty Reasoning: A Practical Guide to Fallacy-Free Arguments", - "language": "zh", - "libraryCatalog": "Douban", - "numPages": "416", - "publisher": "浙江大学出版社", - "shortTitle": "好好讲道理", - "url": "https://book.douban.com/subject/25963469/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《好好讲道理》 - 目录

\n\n 引言
\n
\n 第一章\t智识行为规范
\n 程序标准
\n 伦理标准
\n 形成自己智识风格的原则
\n 1. 或谬原则
\n 2. 求真原则
\n 3. 清晰原则
\n 练习
\n 第二章 什么是论证
\n 论点即其他论断所支持的论断
\n 区分论点和意见
\n 4.举证原则
\n 论证的标准形式
\n 5.宽容原则
\n 演绎论证Vs 归纳论证
\n 规范性论证的演绎本质
\n 道德论证
\n 法律论证
\n 审美论证
\n 练习
\n 第三章 什么是好的论证
\n 好论证须符合五个标准
\n 6.结构原则
\n 7.相关原则
\n 8.接受原则
\n 前提的可接受标准
\n 前提不可接受的条件
\n 9.充分原则
\n 10.辩驳原则
\n 改善你的论证
\n 运用论证的规范
\n 11.延迟判断原则
\n 12.终结原则
\n 练习
\n 第四章 什么是谬误
\n 关于谬误的理论
\n 有名称的谬误VS未命名的谬误
\n 谬误的结构
\n 回击谬误
\n 自毁论证
\n 荒谬反证
\n 反证方式
\n 谬误游戏规则
\n 练习
\n 第五章 违反结构原则的谬误
\n 6.结构原则
\n 不当前提的谬误
\n 丐题谬误
\n •回击谬误
\n 复合提问谬误
\n •回击谬误
\n 丐题定义谬误
\n •回击谬误
\n 前提不兼容的谬误
\n •回击谬误
\n 前提和结论矛盾的谬误
\n •回击谬误
\n 规范性前提不明的谬误
\n •回击谬误
\n 练习
\n
\n 演绎推理的谬误
\n 条件推理
\n 否定前件
\n •回击谬误
\n 肯定后件
\n •回击谬误
\n 三段论推理
\n 中词不周延的谬误
\n •回击谬误
\n 端项周延不当的谬误
\n •回击谬误
\n 不当换位
\n •回击谬误
\n 练习
\n 第六章 违反相关原则的谬误
\n 7.相关原则
\n 无关前提的谬误
\n 起源谬误
\n •回击谬误
\n 合理化谬误
\n •回击谬误
\n 得出错误结论
\n •回击谬误
\n 使用理由不当
\n •回击谬误
\n 作业
\n
\n 诉诸不当的谬误
\n 诉诸不当权威
\n •回击谬误
\n 诉诸公议
\n •回击谬误
\n 诉诸强力或威胁
\n •回击谬误
\n 诉诸传统
\n •回击谬误
\n 诉诸自利
\n •回击谬误
\n 操纵情绪
\n •回击谬误
\n 练习
\n 第七章 违反接受原则的谬误
\n 8.接受原则
\n 语义混乱的谬误
\n 模凌两可
\n •回击谬误
\n 暧昧
\n •破解谬误
\n 强调误导
\n •回击谬误
\n 不当反推
\n •回击谬误
\n 滥用模糊
\n •回击谬误
\n 貌异实同
\n •回击谬误
\n 练习
\n 无理预设的谬误
\n 后来居上
\n •回击谬误
\n 连续体谬误
\n •回击谬误
\n 合成谬误
\n •回击谬误
\n 分割谬误
\n •回击谬误
\n 非此即彼
\n •回击谬误
\n 实然/应然之谬
\n •回击谬误
\n 一厢情愿
\n •回击谬误
\n 拒绝例外
\n •回击谬误
\n 折衷谬误
\n •回击谬误
\n 不当类比
\n •回击谬误
\n 练习
\n 第八章 违反充分原则的谬误
\n 9.充分原则
\n 缺失证据的谬误
\n 样本不充分
\n •回击谬误
\n 数据不具代表性
\n •回击谬误
\n 诉诸无知
\n •回击谬误
\n 罔顾事实的假设
\n •回击谬误
\n 诉诸俗见
\n •回击谬误
\n 片面辩护
\n •回击谬误
\n 漏失关键证据
\n •回击谬误
\n 练习
\n 因果谬误
\n 混淆充分与必要条件
\n •回击谬误
\n 因果关系简单化
\n •回击谬误
\n 后此谬误
\n •回击谬误
\n 混淆因果关系
\n •回击谬误
\n 忽视共同原因
\n •回击谬误
\n 多米诺谬误(滑坡谬误)
\n •回击谬误
\n 赌徒谬误
\n •回击谬误
\n 练习
\n 第九章 违反辩驳原则的谬误
\n 10.辩驳原则
\n 有关反证的谬误
\n 否认反证
\n •回击谬误
\n 忽略反证
\n •回击谬误
\n 毛举细故
\n •回击谬误
\n 练习
\n 诉诸人格的谬误
\n 人身攻击
\n •回击谬误
\n 投毒于井
\n •回击谬误
\n 彼此彼此
\n •回击谬误
\n 练习
\n 转移焦点的谬误
\n 攻击稻草人
\n •回击谬误
\n 红鲱鱼
\n •回击谬误
\n 笑而不答
\n •回击谬误
\n 练习
\n 第十章 如何写议论文
\n 研究问题
\n 陈述你的立场
\n 论证你的立场
\n 驳斥对立观点
\n 解决问题
\n 议论文样本
\n 练习
\n 译名表
\n 部分练习答案
" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://read.douban.com/ebook/2383275/", - "items": [ - { - "itemType": "book", - "title": "汽车是怎样跑起来的", - "creators": [ - { - "lastName": "[日]御堀直嗣", - "creatorType": "author" - }, - { - "lastName": "卢扬", - "creatorType": "translator" - } - ], - "date": "2013-12", - "ISBN": "9787115330321", - "abstractNote": "本书从汽车的内部结构开始讲起,精选了大量手绘图与各知名汽车公司提供的照片,以图配文的形式详细讲解了汽油动力车、电动汽车和混合动力车的工作原理,同时开辟了“汽车辟谣”专栏,通过生动有趣的人物对话,澄清对汽车的种种误解。\n车为什么会跑?汽车会跑与人会走路一样,都是日常生活中再普通不过的事情了。正因如此,一旦被问及原因,反而不知该如何回答。\n从零开始讲解汽车的结构,需要花费很长时间。并且,各种新技术层出不穷,也迫使我们不得不重新认识汽车的行驶原理。多问几个“为什么”,我们就能感受到汽车的伟大和珍贵。", - "language": "zh", - "libraryCatalog": "Douban", - "publisher": "人民邮电出版社", - "url": "https://read.douban.com/ebook/2383275/", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "前言
\n第1章 汽车的五大要素
\n1.1汽车的五大要素
\n1.1.1行驶、转向和停车
\n1.1.2五大要素密切协作
\n1.2使汽车发动的物理原理
\n1.2.1汽车因热而动、因热而停
\n1.2.2轮胎也受“热”的影响
\n1.2.3借助作用力与反作用力转向
\n1.2.4充分利用物理原理采取安全措施
\n1.2.5汽车巧用物理
\n1.3汽车行驶、转向直至停车的过程
\n1.3.1动力传动系驱动汽车
\n1.3.2转向系统实现汽车转向
\n1.3.3制动液传递制动压力,使轮胎停止转动
\nColumn汽车辟谣 世界上最早的汽车真的是三轮车吗?
\n第1部分 汽油动力车篇
\n第2章 行驶——发动机是汽车的心脏
\n2.1启动发动机
\n2.1.1从点火开始
\n2.1.2四冲程发动机的结构
\n2.1.3将活塞的上下运动转化为曲轴的旋转
\n2.1.4启动发动机前先使曲轴转动
\n2.1.5用蓄电池供电
\n2.2将空气与汽油混合后的混合气体吸入发动机
\n2.2.1雾化汽油,生成混合气体
\n2.2.2将燃料注入汽缸的“燃料喷射”
\n2.2.3燃料喷射包括直接喷射和吸气管喷射
\n2.2.4空气和汽油的理想比例是14.7∶1
\n2.2.5在直喷中,需要形成旋涡才能很好地生成混合气体
\n2.2.6开启阀门,混合气体进入汽缸
\n2.2.7活塞上升,压缩混合气体
\n2.3压缩并引燃混合气体
\n2.3.1用电引燃混合气体
\n2.3.2从12伏到1万伏
\n2.3.3转动凸轮,开启阀门
\n2.3.4实现凸轮与活塞联动的装置
\n2.3.5曲轴和凸轮轴还会影响引燃时机
\n2.3.6不同形状的凸轮
\n2.3.7VTEC区别使用两个不同形状的凸轮
\n2.4净化废气,减小噪声
\n2.4.1废气的处理
\n2.4.2用贵金属净化废气
\n2.4.3废气既不能过热也不能过冷
\n2.4.4降低油耗的稀薄燃烧
\n2.4.5设置消音器迷宫,减小噪声
\n2.5改良发动机
\n2.5.1使发动机运转更顺畅 改良1:多缸发动机
\n2.5.2直列发动机和V型发动机
\n2.5.3使发动机运转更顺畅 改良2:飞轮
\n2.5.4使发动机运转更顺畅 改良3:平衡重
\n2.5.5使发动机运转更顺畅 改良4:机油
\n2.6从空转到提高发动机转速
\n2.6.1调节混合气体流量的油门
\n2.6.2用电控制空气量的线控油门
\n2.6.3没有油门,效率更高
\nColumn汽车辟谣 发动机的效率真的只有30%?
\n第3章 行驶——变速器利用齿轮改变力量
\n3.1离合器连接发动机和变速器
\n3.1.1将发动机旋转传递至轮胎的动力传动系
\n3.1.2利用离合器接合或分离变速器
\n3.2利用齿轮实现发动机的自由变速
\n3.2.1利用齿轮的减速增大发动机的旋转力
\n3.2.2变速器的齿轮将旋转力变至原来的4倍
\n3.2.3变换齿轮组,完成加速
\n3.2.4在所有齿轮啮合时切换齿轮
\n3.2.5行驶中无法实现齿轮的啮合
\n3.2.6利用同步啮合装置实现精准啮合
\n3.3从变速器到差速器
\n3.3.1将发动机的旋转力传递至万向节
\n3.3.2将旋转力从差速器传递到左右车轮
\n3.3.3差速器也能降低速度,增大动力
\n3.3.4利用差速器调整内侧和外侧的距离差
\n3.3.5连接差速器和轮胎的传动轴
\n3.4自动变速方式1:变矩器式
\n3.4.1自动变速器有三种
\n3.4.2液力变扭器像面对面摆放的两个风扇
\n3.4.3用导轮加快液体的流速
\n3.4.4离合器与液力变扭器强强联合
\n3.4.5使用三个齿轮的行星齿轮
\n3.4.6利用两个齿轮的组合进行齿轮切换
\n3.4.7行星齿轮也是利用齿轮的半径比进行变速
\n3.4.8利用离合器和制动器等驱动行星齿轮
\n3.5自动变速方式2:自动离合器式
\n3.6自动变速方式3:CVT
\nColumn汽车辟谣 汽车的最快速度与空气有关吗?
\n第4章 转向——借助轮胎和差速器顺利转向
\n4.1改变汽车方向的转向系统
\n4.1.1方向盘的转动带动齿轮工作
\n4.1.2动力转向系统借助助力实现轻松转向
\n4.2借助轮胎的变形和弯曲转向
\n4.2.1轮胎具有柔软性,可以改变形状
\n4.2.2充分利用轮胎的四边形触地面
\n4.2.3轮胎弯曲,产生侧偏力
\n4.3轮胎的抓地力支撑汽车
\n4.3.1没有抓地力就无法转向
\n4.3.2揭开抓地力的神秘面纱
\n4.3.3轮胎的抓地力随路面状况发生变化
\n4.3.4把抓地力分配给行驶和转向
\n4.3.5抓地力的作用方法在前轮和后轮上有所不同
\n4.3.6前轮驱动和后轮驱动利用抓地力的方法
\n4.3.7如何增大轮胎的抓地力
\n4.4差速器用于调整左右转速
\n4.4.1转向时里侧转速慢,外侧转速快
\n4.4.2四个伞齿轮吸收左右的转速差
\n4.5利用悬架调整车体的倾斜度
\n4.5.1转向时悬架受力,车身倾斜
\n4.5.2利用弹簧、减震器和稳定器缓和振动
\n4.5.3恰到好处的车身倾斜能够增大抓地力
\n4.5.4转向时轮胎依然直立
\n4.5.5转向时轮胎的触地面发生变形
\n4.5.6为不改变触地面的形状而努力
\nColumn汽车辟谣 真敢侧滑轮胎来驾驶汽车吗?
\n第5章 停车——制动器将速度转化为摩擦热
\n5.1负责让汽车停止的制动器的结构
\n5.1.1松开加速踏板时速度会因摩擦而降低
\n5.1.2踩下制动踏板时制动液会传递力量
\n5.1.3制动器将速度转化为摩擦热
\n5.1.4盘式制动器和鼓式制动器的不同
\n5.1.5前后轮的制动负担不同
\n5.1.6增强前轮制动效果的结构
\n5.2制动器的助力
\n5.2.1用很小的力也能让1吨的车停止
\n5.2.2用杠杆原理增大踏力
\n5.2.3用发动机的力辅助制动踏板的踏力
\n5.3轮胎使汽车停止
\n5.3.1轮胎也会影响制动效果
\n5.3.2轮胎不转动就无法制动
\n5.4除制动器之外的减速装置
\nColumn汽车辟谣 紧急时刻有人不踩刹车吗?
\n第6章 舒适性——很好地减小噪声和振动
\n6.1减小各种噪声
\n6.1.1汽车上处处都是噪声源
\n6.1.2减小发动机的噪声
\n6.1.3利用轮胎的沟纹减小噪声
\n6.1.4轮胎上的花纹沟兼顾排水性和噪声控制
\n6.1.5用轮胎抑制噪声的增加
\n6.1.6柔软地固定金属,减小制动器噪声
\n6.1.7接近流线型能够减小风噪
\n6.1.8因动力传动系的变速产生的噪声
\n6.1.9悬架也会产生很小的噪声
\n6.1.10利用底盘上的隔音材料和底盘下的表面处理隔音
\n6.2减轻振动
\n6.3减轻声振粗糙
\nColumn汽车辟谣 乘坐舒适度高的汽车容易晕车吗?
\n第7章 安全性——多项技术保护人们免受事故伤害
\n7.1防患于未然的主动安全技术
\n7.1.1安全技术大体分为三种
\n7.1.2ABS防止轮胎锁死
\n7.1.3利用电脑自动调节制动器
\n7.1.4踩住加速踏板时ESC发挥作用
\n7.1.5紧急时刻借助制动辅助系统增强制动效果
\n7.1.6接近于自动驾驶的雷达巡航控制系统
\n7.1.7借助摄像头识别车道标记线的车道保持系统
\n7.2临近事故时发挥作用的预碰撞安全技术
\n7.2.1在即将撞击时制动
\n7.2.2临近撞击时收紧安全带
\n7.3撞击后控制损失的被动安全技术
\n7.3.1既易变性又坚固的吸能车身结构
\n7.3.2三点式安全带利用急减速的趋势固定
\n7.3.3SRS安全气囊能够感知冲击力从而膨胀起来
\n7.3.4保护头颈部的主动式头枕技术
\nColumn汽车辟谣 即使有发达的安全技术也无法减少事故吗?
\n第2部分 新一代汽车篇
\n第8章 电动汽车——用电启动电动机驱动汽车
\n8.1电动汽车与汽油动力车的区别
\n8.1.1电动汽车的零件比汽油动力车少
\n8.1.2即使按下了按钮仍处于静止状态
\n8.1.3根据加速情况调节输送到电动机中的电量
\n8.2利用变频器和电动机产生旋转力
\n8.2.1变频器负责转动电动机
\n8.2.2交流电动机的结构
\n8.2.3利用电动机发电的再生功能
\n8.2.4再生需要变频器
\n8.2.5从汽车发动时开始,电动机就能产生最大扭矩
\n8.2.6电动机安静地转动
\n8.3轮毂电机的结构
\n8.3.1每个轮子上都有电动机
\n8.3.2汽车的新可能性蕴藏在电动汽车中
\n8.4锂离子电池的特征
\nColumn汽车辟谣 电动汽车果真静得吓人吗?
\n第9章 环保型汽车——混合动力汽车以及燃料电池汽车等
\n9.1燃料电池汽车的结构
\n9.1.1蓄电池的低性能催生出了能够发电的电动汽车
\n9.1.2以氢为燃料发电
\n9.1.3仅残留水的燃料电池汽车是终极环保车
\n9.2混合动力汽车有很多种
\n9.2.1同时使用发动机和电动机
\n9.2.2并联式混合动力汽车和串联式混合动力汽车
\n9.2.3接近电动汽车的插入式混合动力汽车
\n9.3不用电的新一代汽车
\n9.3.1不受排放标准限制的清洁柴油汽车
\n9.3.2使用生物燃料的发动机汽车
\n9.3.3燃烧氢的氢动力汽车
\nColumn汽车辟谣 新一代汽车里果真没有赢家吗?
\n结语
\n致谢" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://read.douban.com/ebook/314197637/?dcs=search", - "items": [ - { - "itemType": "book", - "title": "永不停歇的时钟:机器、生命动能与现代科学的形成", - "creators": [ - { - "lastName": "[美]杰西卡·里斯金", - "creatorType": "author" - }, - { - "lastName": "王丹", - "creatorType": "translator" - }, - { - "lastName": "朱丛", - "creatorType": "translator" - } - ], - "date": "2020-07", - "ISBN": "9787508699806", - "abstractNote": "*科学史扛鼎之作!美国《高等教育纪事报》誉为“20年来深具影响力的书之一”\n*从中世纪自动发条机器人到当代人工智能,探求生命的本源之问。机械狂人、蒸汽朋克、机械奇幻、人工智能爱好者的宝藏之书\n*《图书馆杂志》2016年畅销书名单,亚马逊2016年连续60天销售榜首\n*《自然》《卫报》《泰晤士高等教育》等权威期刊一致称赞,不吝专文推荐,口碑赛高\n中世纪以来盛行的自动机械人偶,曾让欧洲的皇室和宫廷贵族着迷发狂,传教士甚至将其作为贡礼献给中国皇帝。从雅凯-德罗兹的写字小男孩儿到坎普林的下棋机器人,人和动物的形象,被频繁地制成荒诞而逼真的机器,像是有了“能动的生命”。这一切都源于“万物机械说”的大行其道,它牵涉出的是困扰人类始终的问题:生命是什么?机器会拥有生命吗?事物运转的动力来自内部还是外部?\n人和机器、物质和灵魂之间的关系,几百年来争论不休。17世纪是翻天覆地的思想大变革时代,机械论作为现代科学的核心范式得以确立,整个宇宙被看作一台机器,包括动物和人类,但仍将其动力和精神归于上帝之手。然而,更为反叛的科学家和哲学家,则认为生命机器具有内在动能。现代生命科学就在这两种矛盾的机械论中兵分两路。笛卡儿、玻意耳及其追随者,坚持经典的被动机械论,莱布尼茨、拉马克创造性发展了主动机械论,达尔文的进化论在被动和主动模型之间摇摆不定。由此还催生了理查德·道金斯“自私的基因”说,薛定谔则用颠覆性的量子力学解释生命体能从“秩序生秩序”。机械论接连引发了控制论、目的论、进化论以及认知科学、进化心理学、人工智能等理论和学科的形成,在社会文化环境的联动下,铺展成一幅气势磅礴、方兴未艾的现代科学图景。\n杰西卡·里斯金拥有哲学、历史学和科学研究综合背景,她用生动而思辨的文笔,原创性地将一手资料、学界往来通信和文献档案熔融一炉,顺着生命本源问题的脉络,展开这场“长达四个世纪的争论”。理解现代科学的历史,对于思考当下、想象未来具有重要意义。这本科学史著作不仅会颠覆我们对现代科学的认知,还将成为我们理解当下生命科学、认知科学和人工智能等前沿问题的思考利器。", - "language": "zh", - "libraryCatalog": "Douban", - "publisher": "中信出版社", - "shortTitle": "永不停歇的时钟", - "url": "https://read.douban.com/ebook/314197637/?dcs=search", - "attachments": [], - "tags": [], - "notes": [ - { - "note": "

《永不停歇的时钟》 - 目录

\n引言 究竟是赫胥黎的玩笑,还是自然与科学界的能动作用
\n第一章 花园里的机器
\n第二章 机器之间的笛卡儿
\n第三章 被动的望远镜还是永不停歇的时钟
\n第四章 最早的机器人
\n第五章 机器先生冒险记
\n第六章 自组织机器的困境
\n第七章 机器间的达尔文
\n第八章 机械卵和智能卵
\n第九章 由外而内
\n第十章 历史的重要性
\n致谢
\n参考文献" - } - ], - "seeAlso": [] - } - ] - }, - { - "type": "web", - "url": "https://www.douban.com/doulist/120664512/", - "items": "multiple" - }, - { - "type": "web", - "url": "https://book.douban.com/tag/%E8%AE%A4%E7%9F%A5%E5%BF%83%E7%90%86%E5%AD%A6?type=S", - "items": "multiple" - } +var testCases = [ + { + "type": "web", + "url": "https://book.douban.com/subject/26604008/", + "items": [ + { + "itemType": "book", + "title": "计算机组成与设计:硬件/软件接口", + "creators": [ + { + "firstName": "", + "lastName": "戴维·A. 帕特森", + "creatorType": "author", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "约翰·L. 亨尼斯", + "creatorType": "author", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "王党辉", + "creatorType": "translator", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "康继昌", + "creatorType": "translator", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "安建峰", + "creatorType": "translator", + "fieldMode": 1 + } + ], + "date": "2015-7-1", + "ISBN": "9787111504825", + "abstractNote": "《计算机组成与设计:硬件/软件接口》是计算机组成与设计的经典畅销教材,第5版经过全面更新,关注后PC时代发生在计算机体系结构领域的革命性变革——从单核处理器到多核微处理器,从串行到并行。本书特别关注移动计算和云计算,通过平板电脑、云体系结构以及ARM(移动计算设备)和x86(云计算)体系结构来探索和揭示这场技术变革。 与前几版一样,本书采用MIPS处理器讲解计算机硬件技术、汇编语言、计算机算术、流水线、存储器层次结构以及I/O等基本功能。", + "extra": "original-title: Computer Organization and Design: The Hardware/Software Interface (5/e)\nprice: 99.00元\nrating: 9.2\nrating-people: 396人评价\ncomments: 110\ncreatorsExt: [{\"firstName\":\"\",\"lastName\":\"戴维·A. 帕特森\",\"creatorType\":\"author\",\"fieldMode\":1,\"country\":\"\",\"original\":\"David A.Patterson\"},{\"firstName\":\"\",\"lastName\":\"约翰·L. 亨尼斯\",\"creatorType\":\"author\",\"fieldMode\":1,\"country\":\"\",\"original\":\"John L.Hennessy\"},{\"firstName\":\"\",\"lastName\":\"王党辉\",\"creatorType\":\"translator\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"康继昌\",\"creatorType\":\"translator\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"安建峰\",\"creatorType\":\"translator\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"}]\noriginal-author: David A.Patterson\noriginal-author: John L.Hennessy", + "language": "zh-CN", + "libraryCatalog": "Douban", + "numPages": "536", + "publisher": "机械工业出版社", + "series": "计算机科学丛书", + "url": "https://book.douban.com/subject/26604008/", + "attachments": [], + "tags": [], + "notes": [ + "《计算机组成与设计:硬件/软件接口》\n\n 出版者的话\n 本书赞誉\n 译者序\n 前言\n 作者简介\n 第1章 计算机概要与技术1\n 1.1 引言1\n 1.1.1 计算应用的分类及其特性2\n 1.1.2 欢迎来到后PC时代3\n 1.1.3 你能从本书学到什么4\n 1.2 计算机系统结构中的8个伟大思想6\n 1.2.1 面向摩尔定律的设计6\n 1.2.2 使用抽象简化设计6\n 1.2.3 加速大概率事件6\n 1.2.4 通过并行提高性能7\n 1.2.5 通过流水线提高性能7\n 1.2.6 通过预测提高性能7\n 1.2.7 存储器层次7\n 1.2.8 通过冗余提高可靠性7\n 1.3 程序概念入门7\n 1.4 硬件概念入门10\n 1.4.1 显示器11\n 1.4.2 触摸屏12\n 1.4.3 打开机箱12\n 1.4.4 数据安全15\n 1.4.5 与其他计算机通信16\n 1.5 处理器和存储器制造技术17\n 1.6 性能20\n 1.6.1 性能的定义20\n 1.6.2 性能的度量22\n 1.6.3 CPU性能及其因素23\n 1.6.4 指令的性能24\n 1.6.5 经典的CPU性能公式25\n 1.7 功耗墙27\n 1.8 沧海巨变:从单处理器向多处理器转变29\n 1.9 实例:Intel Core i7基准31\n 1.9.1 SPEC CPU基准测试程序31\n 1.9.2 SPEC功耗基准测试程序32\n 1.10 谬误与陷阱33\n 1.11 本章小结35\n 1.12 历史观点和拓展阅读36\n 1.13 练习题36\n 第2章 指令:计算机的语言40\n 2.1 引言40\n 2.2 计算机硬件的操作43\n 2.3 计算机硬件的操作数44\n 2.3.1 存储器操作数45\n 2.3.2 常数或立即数操作数47\n 2.4 有符号数和无符号数48\n 2.5 计算机中指令的表示53\n 2.6 逻辑操作58\n 2.7 决策指令60\n 2.7.1 循环61\n 2.7.2 case/switch语句63\n 2.8 计算机硬件对过程的支持64\n 2.8.1 使用更多的寄存器66\n 2.8.2 嵌套过程67\n 2.8.3 在栈中为新数据分配空间69\n 2.8.4 在堆中为新数据分配空间70\n 2.9 人机交互72\n 2.10 MIPS中32位立即数和寻址75\n 2.10.1 32位立即数75\n 2.10.2 分支和跳转中的寻址76\n 2.10.3 MIPS寻址模式总结78\n 2.10.4 机器语言解码79\n 2.11 并行与指令:同步81\n 2.12 翻译并执行程序83\n 2.12.1 编译器83\n 2.12.2 汇编器84\n 2.12.3 链接器85\n 2.12.4 加载器87\n 2.12.5 动态链接库87\n 2.12.6 启动一个Java程序89\n 2.13 以一个C排序程序作为完整的例子90\n 2.13.1 swap过程90\n 2.13.2 sort过程91\n 2.14 数组与指针96\n 2.14.1 用数组实现clear96\n 2.14.2 用指针实现clear97\n 2.14.3 比较两个版本的clear97\n 2.15 高级内容:编译C语言和解释Java语言98\n 2.16 实例:ARMv7(32位)指令集98\n 2.16.1 寻址模式99\n 2.16.2 比较和条件分支100\n 2.16.3 ARM的特色100\n 2.17 实例:x86指令集102\n 2.17.1 Intel x86的改进102\n 2.17.2 x86寄存器和数据寻址模式103\n 2.17.3 x86整数操作105\n 2.17.4 x86指令编码107\n 2.17.5 x86总结108\n 2.18 实例:ARMv8(64位)指令集108\n 2.19 谬误与陷阱109\n 2.20 本章小结110\n 2.21 历史观点和拓展阅读111\n 2.22 练习题112\n 第3章 计算机的算术运算117\n 3.1 引言117\n 3.2 加法和减法117\n 3.3 乘法121\n 3.3.1 顺序的乘法算法和硬件121\n 3.3.2 有符号乘法124\n 3.3.3 更快速的乘法124\n 3.3.4 MIPS中的乘法124\n 3.3.5 小结125\n 3.4 除法125\n 3.4.1 除法算法及其硬件结构125\n 3.4.2 有符号除法128\n 3.4.3 更快速的除法128\n 3.4.4 MIPS中的除法129\n 3.4.5 小结129\n 3.5 浮点运算130\n 3.5.1 浮点表示131\n 3.5.2 浮点加法135\n 3.5.3 浮点乘法138\n 3.5.4 MIPS中的浮点指令139\n 3.5.5 算术精确性145\n 3.5.6 小结146\n 3.6 并行性和计算机算术:子字并行148\n 3.7 实例:x86中流处理SIMD扩展和高级向量扩展149\n 3.8 加速:子字并行和矩阵乘法150\n 3.9 谬误与陷阱153\n 3.10 本章小结155\n 3.11 历史观点和拓展阅读158\n 3.12 练习题159\n 第4章 处理器162\n 4.1 引言162\n 4.2 逻辑设计的一般方法165\n 4.3 建立数据通路167\n 4.4 一个简单的实现机制173\n 4.4.1 ALU控制173\n 4.4.2 主控制单元的设计175\n 4.4.3 为什么不使用单周期实现方式181\n 4.5 流水线概述182\n 4.5.1 面向流水线的指令集设计186\n 4.5.2 流水线冒险186\n 4.5.3 对流水线概述的小结191\n 4.6 流水线数据通路及其控制192\n 4.6.1 图形化表示的流水线200\n 4.6.2 流水线控制203\n 4.7 数据冒险:旁路与阻塞206\n 4.8 控制冒险214\n 4.8.1 假定分支不发生215\n 4.8.2 缩短分支的延迟215\n 4.8.3 动态分支预测216\n 4.8.4 流水线小结220\n 4.9 异常221\n 4.9.1 MIPS体系结构中的异常处理221\n 4.9.2 在流水线实现中的异常222\n 4.10 指令级并行226\n 4.10.1 推测的概念227\n 4.10.2 静态多发射处理器227\n 4.10.3 动态多发射处理器231\n 4.10.4 能耗效率与高级流水线233\n 4.11 实例:ARM Cortex-A8和Intel Core i7流水线234\n 4.11.1 ARM Cortex-A8235\n 4.11.2 Intel Core i7 920236\n 4.11.3 Intel Core i7 920的性能238\n 4.12 运行更快:指令级并行和矩阵乘法240\n 4.13 高级主题:通过硬件设计语言描述和建模流水线来介绍数字设计以及更多流水线示例242\n 4.14 谬误与陷阱242\n 4.15 本章小结243\n 4.16 历史观点和拓展阅读243\n 4.17 练习题243\n 第5章 大容量和高速度:开发存储器层次结构252\n 5.1 引言252\n 5.2 存储器技术255\n 5.2.1 SRAM技术256\n 5.2.2 DRAM技术256\n 5.2.3 闪存258\n 5.2.4 磁盘存储器258\n 5.3 cache的基本原理259\n 5.3.1 cache访问261\n 5.3.2 cache缺失处理265\n 5.3.3 写操作处理266\n 5.3.4 一个cache的例子:内置FastMATH处理器267\n 5.3.5 小结269\n 5.4 cache性能的评估和改进270\n 5.4.1 通过更灵活地放置块来减少cache缺失272\n 5.4.2 在cache中查找一个块275\n 5.4.3 替换块的选择276\n 5.4.4 使用多级cache结构减少缺失代价277\n 5.4.5 通过分块进行软件优化280\n 5.4.6 小结283\n 5.5 可信存储器层次283\n 5.5.1 失效的定义283\n 5.5.2 纠正一位错、检测两位错的汉明编码(SEC/DED)284\n 5.6 虚拟机287\n 5.6.1 虚拟机监视器的必备条件289\n 5.6.2 指令集系统结构(缺乏)对虚拟机的支持289\n 5.6.3 保护和指令集系统结构289\n 5.7 虚拟存储器290\n 5.7.1 页的存放和查找293\n 5.7.2 缺页故障294\n 5.7.3 关于写297\n 5.7.4 加快地址转换:TLB297\n 5.7.5 集成虚拟存储器、TLB和cache 300\n 5.7.6 虚拟存储器中的保护302\n 5.7.7 处理TLB缺失和缺页303\n 5.7.8 小结307\n 5.8 存储器层次结构的一般框架309\n 5.8.1 问题1:一个块可以被放在何处309\n 5.8.2 问题2:如何找到一个块310\n 5.8.3 问题3:当cache缺失时替换哪一块311\n 5.8.4 问题4:写操作如何处理311\n 5.8.5 3C:一种理解存储器层次结构行为的直观模型312\n 5.9 使用有限状态机来控制简单的cache314\n 5.9.1 一个简单的cache314\n 5.9.2 有限状态机315\n 5.9.3 一个简单的cache控制器的有限状态机316\n 5.10 并行与存储器层次结构:cache一致性317\n 5.10.1 实现一致性的基本方案318\n 5.10.2 监听协议319\n 5.11 并行与存储器层次结构:冗余廉价磁盘阵列320\n 5.12 高级内容:实现cache控制器320\n 5.13 实例:ARM Cortex-A8和Intel Core i7的存储器层次结构320\n 5.14 运行更快:cache分块和矩阵乘法324\n 5.15 谬误和陷阱326\n 5.16 本章小结329\n 5.17 历史观点和拓展阅读329\n 5.18 练习题329\n 第6章 从客户端到云的并行处理器340\n 6.1 引言340\n 6.2 创建并行处理程序的难点342\n 6.3 SISD、MIMD、SIMD、SPMD和向量机345\n 6.3.1 在x86中的SIMD:多媒体扩展346\n 6.3.2 向量机346\n 6.3.3 向量与标量的对比347\n 6.3.4 向量与多媒体扩展的对比348\n 6.4 硬件多线程350\n 6.5 多核和其他共享内存多处理器352\n 6.6 图形处理单元简介355\n 6.6.1 NVIDIA GPU体系结构简介356\n 6.6.2 NVIDIA GPU存储结构357\n 6.6.3 GPU展望358\n 6.7 集群、仓储级计算机和其他消息传递多处理器360\n 6.8 多处理器网络拓扑简介363\n 6.9 与外界通信:集群网络366\n 6.10 多处理器测试集程序和性能模型366\n 6.10.1 性能模型368\n 6.10.2 Roofline模型369\n 6.10.3 两代Opteron的比较370\n 6.11 实例:评测Intel Core i7 960和NVIDIA Tesla GPU的Roofline模型373\n 6.12 运行更快:多处理器和矩阵乘法376\n 6.13 谬误与陷阱378\n 6.14 本章小结379\n 6.15 历史观点和拓展阅读381\n 6.16 练习题382\n 附录A 汇编器、链接器和SPIM仿真器389\n 附录B 逻辑设计基础437\n 索引494\n " + ], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://read.douban.com/ebook/314197637/?dcs=search", + "items": [ + { + "itemType": "book", + "title": "永不停歇的时钟", + "creators": [ + { + "firstName": "", + "lastName": "杰西卡·里斯金", + "creatorType": "author", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "王丹", + "creatorType": "translator", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "朱丛", + "creatorType": "translator", + "fieldMode": 1 + } + ], + "date": "2020-07", + "ISBN": "9787508699806", + "extra": "creatorsExt: [{\"firstName\":\"\",\"lastName\":\"杰西卡·里斯金\",\"creatorType\":\"author\",\"fieldMode\":1,\"country\":\"美\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"王丹\",\"creatorType\":\"translator\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"朱丛\",\"creatorType\":\"translator\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"}]", + "language": "zh-CN", + "libraryCatalog": "Douban", + "publisher": "中信出版社", + "url": "https://read.douban.com/ebook/314197637/?dcs=search", + "attachments": [], + "tags": [ + { + "tag": "人工智能" + }, + { + "tag": "历史" + }, + { + "tag": "生命科学" + }, + { + "tag": "科学" + }, + { + "tag": "科学史" + }, + { + "tag": "科普" + }, + { + "tag": "限时特价" + } + ], + "notes": [ + "《永不停歇的时钟》\n作品目录\n引言 究竟是赫胥黎的玩笑,还是自然与科学界的能动作用\n第一章 花园里的机器\n第二章 机器之间的笛卡儿\n第三章 被动的望远镜还是永不停歇的时钟\n第四章 最早的机器人\n第五章 机器先生冒险记\n第六章 自组织机器的困境\n第七章 机器间的达尔文\n第八章 机械卵和智能卵\n第九章 由外而内\n第十章 历史的重要性\n致谢\n参考文献\n" + ], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://book.douban.com/", + "items": "multiple" + }, + { + "type": "web", + "url": "https://read.douban.com/ebooks/", + "items": "multiple" + }, + { + "type": "web", + "url": "https://movie.douban.com/subject/1292052/", + "items": [ + { + "itemType": "film", + "title": "肖申克的救赎", + "creators": [ + { + "firstName": "", + "lastName": "弗兰克·德拉邦特", + "creatorType": "director", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "弗兰克·德拉邦特", + "creatorType": "scriptwriter", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "斯蒂芬·金", + "creatorType": "scriptwriter", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "蒂姆·罗宾斯", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "摩根·弗里曼", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "鲍勃·冈顿", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "威廉姆·赛德勒", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "克兰西·布朗", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "吉尔·贝罗斯", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "马克·罗斯顿", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "詹姆斯·惠特摩", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "杰弗里·德曼", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "拉里·布兰登伯格", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "尼尔·吉恩托利", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "布赖恩·利比", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "大卫·普罗瓦尔", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "约瑟夫·劳格诺", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "祖德·塞克利拉", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "保罗·麦克兰尼", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "芮妮·布莱恩", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "阿方索·弗里曼", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "V·J·福斯特", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "弗兰克·梅德拉诺", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "马克·迈尔斯", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "尼尔·萨默斯", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "耐德·巴拉米", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "布赖恩·戴拉特", + "creatorType": "contributor", + "fieldMode": 1 + }, + { + "firstName": "", + "lastName": "唐·麦克马纳斯", + "creatorType": "contributor", + "fieldMode": 1 + } + ], + "date": "1994-09-10", + "abstractNote": "一场谋杀案使银行家安迪(蒂姆•罗宾斯 Tim Robbins 饰)蒙冤入狱,谋杀妻子及其情人的指控将囚禁他终生。在肖申克监狱的首次现身就让监狱“大哥”瑞德(摩根•弗里曼 Morgan Freeman 饰)对他另眼相看。瑞德帮助他搞到一把石锤和一幅女明星海报,两人渐成患难 之交。很快,安迪在监狱里大显其才,担当监狱图书管理员,并利用自己的金融知识帮助监狱官避税,引起了典狱长的注意,被招致麾下帮助典狱长洗黑钱。偶然一次,他得知一名新入狱的小偷能够作证帮他洗脱谋杀罪。燃起一丝希望的安迪找到了典狱长,希望他能帮自己翻案。阴险伪善的狱长假装答应安迪,背后却派人杀死小偷,让他唯一能合法出狱的希望泯灭。沮丧的安迪并没有绝望,在一个电闪雷鸣的风雨夜,一场暗藏几十年的越狱计划让他自我救赎,重获自由!老朋友瑞德在他的鼓舞和帮助下,也勇敢地奔向自由。 本片获得1995年奥斯卡10项提名,以及金球奖、土星奖等多项提名。", + "extra": "original-title: The Shawshank Redemption\nplace: 美国\nalias: 月黑高飞(港) / 刺激1995(台) / 地狱诺言 / 铁窗岁月 / 消香克的救赎\nIMDb: tt0111161\nstyle: 剧情 / 犯罪\nrating: 9.7\nrating-people: 2962464人评价\ncomments: 579238\ncreatorsExt: [{\"firstName\":\"\",\"lastName\":\"弗兰克·德拉邦特\",\"creatorType\":\"director\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"弗兰克·德拉邦特\",\"creatorType\":\"scriptwriter\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"斯蒂芬·金\",\"creatorType\":\"scriptwriter\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"蒂姆·罗宾斯\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"摩根·弗里曼\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"鲍勃·冈顿\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"威廉姆·赛德勒\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"克兰西·布朗\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"吉尔·贝罗斯\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"马克·罗斯顿\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"詹姆斯·惠特摩\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"杰弗里·德曼\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"拉里·布兰登伯格\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"尼尔·吉恩托利\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"布赖恩·利比\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"大卫·普罗瓦尔\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"约瑟夫·劳格诺\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"祖德·塞克利拉\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"保罗·麦克兰尼\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"芮妮·布莱恩\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"阿方索·弗里曼\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"V·J·福斯特\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"弗兰克·梅德拉诺\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"马克·迈尔斯\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"尼尔·萨默斯\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"耐德·巴拉米\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"布赖恩·戴拉特\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"},{\"firstName\":\"\",\"lastName\":\"唐·麦克马纳斯\",\"creatorType\":\"contributor\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"}]", + "genre": "Film", + "language": "zh-CN", + "libraryCatalog": "Douban", + "runningTime": "142 min", + "url": "https://movie.douban.com/subject/1292052/", + "attachments": [], + "tags": [], + "notes": [], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://movie.douban.com/", + "items": "multiple" + }, + { + "type": "web", + "url": "https://music.douban.com/subject/25811077/", + "items": [ + { + "itemType": "audioRecording", + "title": "克卜勒", + "creators": [ + { + "firstName": "", + "lastName": "孙燕姿", + "creatorType": "performer", + "fieldMode": 1 + } + ], + "date": "2014-02-27", + "audioRecordingFormat": "CD", + "extra": "genre: Album\nstyle: 流行\nalias: Kepler\nbar-code: 0602488970204\nrating: 8.7\nrating-people: 33559人评价\ncomments: 11318\ncreatorsExt: [{\"firstName\":\"\",\"lastName\":\"孙燕姿\",\"creatorType\":\"performer\",\"fieldMode\":1,\"country\":\"\",\"original\":\"\"}]", + "label": "环球唱片", + "language": "zh-CN", + "libraryCatalog": "Douban", + "url": "https://music.douban.com/subject/25811077/", + "attachments": [], + "tags": [], + "notes": [ + "《克卜勒》\n01. 克卜勒\n02. 渴\n03. 无限大\n04. 尚好的青春\n05. 天使的指纹\n06. 银泰\n07. 围绕\n08. 错觉\n09. 比较幸褔\n10. 雨还是不停地落下" + ], + "seeAlso": [] + } + ] + }, + { + "type": "web", + "url": "https://www.douban.com/doulist/176513/", + "items": "multiple" + } ] /** END TEST CASES **/ diff --git a/README.md b/README.md index d1ffc677..5012b322 100644 --- a/README.md +++ b/README.md @@ -68,10 +68,8 @@ + 豆瓣 -> [DouBan.js](./Douban.js) - 保留豆瓣评价人数+豆瓣评分+原作名+定价 - 作者优化:欧美作者区分开了名与姓(在这里吐槽下豆瓣编辑对作者的命名规范,尤其是外籍作者的命名规范真是各路牛鬼蛇神) - - 摘要信息:作者简介 + 内容简介 - 目录信息:目录存放至note附件里 - 支持识别豆瓣阅读的[出版图书](https://read.douban.com/ebooks/)(因为不像豆瓣读书那么规则,部分字段可能需要手动修改) - - [详细截图](https://github.com/Captain2021/myTranslator/tree/main) + [国家出版发行信息公共服务平台](https://book.cppinfo.cn/home/index) -> [CCPINFO](/translators/CCPINFO.js) - [x] 抓取引文信息 - [ ] 匹配出版地址