、登陆数据库
psql -U postgres -d postgres
2、创建数据库hstore,并安装extension
create database hstore;
create extension hstore;
3、建表
create table users(
id serial,
info hstore
);
4、插入数据
insert into users values(1,'"name"=>"zhangsan","age"=>"20"');
5、查询数据
select info from users;
6、增加数据
update users set info = info || '"company"=>"Qunar"' :: hstore;
7、删除数据
update users set info = delete(info, 'company');
8、将key值转为set输出。
select skeys(info) from users;
9、将key值转为array输出。
select akeys(info) from users;
10、将value值转为set输出。
select svals(info) from users;
11、将value值转为array输出。
select avals(info) from users;
12、将hstore值转为array输出。
select avals(info) from users;
13、查询age为20的所有记录。
查询之前再入两条数据
insert into users values(1,'"name"=>"lisi","age"=>"20"');
insert into users values(1,'"name"=>"wangwu","age"=>"21"');
查询
select * from users where info@'age=>20';
文档参考:http://www.postgresql.org/docs/current/static/hstore.html
提要:在本教程中,我们将向您展示如何使用 PostgreSQL HSTORE 数据类型。
hstore 模块实现了将键/值对存储到单个值的 HSTORE 数据类型。注意,HSTORE 中的 键 和 值 都只能是字符串。
使用 HSTORE 数据类型之前,需要先启用 hstore 模块:
CREATE EXTENSION hstore;
CREATE TABLE books (
id serial primary key,
title VARCHAR (255),
attr hstore
);
INSERT INTO books (title, attr)
VALUES
(
'PostgreSQL 轻松学',
'"paperback" => "685",
"publisher" => "sjk66.com",
"language" => "简体中文",
"ISBN-13" => "1234567890123",
"weight" => "412 克"'
);
SELECT
attr -> 'ISBN-13' AS isbn
FROM
books;
SELECT
attr -> 'weight' AS weight
FROM
books
WHERE
attr -> 'ISBN-13' = '1234567890123'
UPDATE books
SET attr = attr || '"freeshipping"=>"yes"' :: hstore;
UPDATE books
SET attr = attr || '"freeshipping"=>"no"' :: hstore;
UPDATE books
SET attr = delete(attr, 'freeshipping');
SELECT
title,
attr->'publisher' as publisher,
attr
FROM
books
WHERE
attr ? 'publisher';
SELECT
title
FROM
books
WHERE
attr @> '"weight"=>"412 克"' :: hstore;
SELECT
title
FROM
books
WHERE
attr ?& ARRAY [ 'language', 'weight' ];
SELECT
akeys (attr)
FROM
books;
或
SELECT
skeys (attr)
FROM
books;
SELECT
avals (attr)
FROM
books;
或
SELECT
svals (attr)
FROM
books;
SELECT
title,
hstore_to_json (attr) json
FROM
books;
SELECT
title,
(EACH(attr) ).*
FROM
books;
不知道能不能当hbase使用
家好,我是 Echa。
今天来分享 50 个超实用的 Chrome 浏览器扩展!
JSON Viewer Pro 用于可视化JSON文件。其核心功能包括:
输入界面如下:
格式化之后:
JSONVue 是一个JSON数据查看器,主要用来格式化JSON数据:
Library Sniffer 是一款给开发者使用的工具,能够探测当前网页所使用的类库、框架和服务器环境,为开发者提供了方便。
Wappalyzer 扩展可以用来识别网站背后的底层技术。通过此扩展,可以了解特定应用程序是否是用 React、Vue、Angular、PHP等编写的。还可以访问有关 Web 服务器、编程语言、框架、内容管理系统、分析的信息工具、数据库等。
WhatRuns 扩展程序只需单击一下即可找到任何网站上使用的技术。
使用PerfectPixel插件可以将设计图加载至网页中,与已成型的网页进行重叠对比,以帮助开发和设计人员规范网页像素精度。这是一款可以优化前端页面显示的Chrome插件。
可以使用此扩展程序快速清除缓存,无需任何确认对话框、弹出窗口等。可以在选项页面上自定义要清除的数据和数量,包括:应用程序缓存、缓存、Cookie、下载、文件系统、表单数据、历史记录、索引数据库、本地存储、插件数据、密码和 WebSQL。
VisBug 是一个使用 JavaScript 构建的开源网页设计调试工具,它可以让用户使用点击式和拖放式界面来查看网站的元素。
Debug CSS 是一个帮助调试CSS的插件。他可以显示出页面元素的轮播,按住Ctrl,并将鼠标悬浮在元素上,即可查看其信息:
CSS Viewer 是一款适用于 Web 开发人员的高效 Chrome 扩展。顾名思义,CSS 查看器可以显示将鼠标悬停在任何网页上的元素的 CSS 属性。
EditThisCookie 是一个 cookie 管理器。可以添加,删除,编辑,搜索,锁定和屏蔽cookies。
React Developer Tools 是开源 JavaScript 库 React 的 Chrome DevTools 扩展。它允许我们在 Chrome 开发者工具中检查 React 组件层次结构。安装此插件之后,将在 Chrome DevTools 中获得两个新选项卡:"⚛️ Components" 和 "⚛️ Profiler":
Vue.js devtools 是一款基于chrome浏览器的用于调试Vue.js应用程序的插件,可以使得开发人员大大提高调试效率。支持用户对DOM结构数据结构进行解析和调试功能。
Augury 可以帮助开发人员在 Google Chrome 浏览器中调试和分析 Angular 应用程序。
Firebug Lite是火狐浏览器中著名的开发者工具firebug插件移植到Chrome中的插件,在Chrome中安装了Firebug Lite插件以后,开发人员可以像在火狐浏览器中使用firebug一样熟悉的方式来调试网页内容,其包含了基本的HTML、CSS以及Javascript的调试功能,用于帮助网页前端开发工程师快速地调试网页,以便及时地找到网页中的BUG并及时修复。
HTML Validator 在 Chrome 的开发者工具中添加了 HTML Validator。HTML 页面的错误数通过浏览器状态栏中的图标显示,详细信息可以在浏览器的开发者工具中查看。
Web Developer 扩展为带有各种 Web 开发工具的浏览器添加了一个工具栏按钮。该扩展适用于 Chrome 和 Firefox,并且可以在这些浏览器支持的任何平台上运行,包括 Windows、macOS 和 Linux。
Requestly 是一款Chrome和Firefox浏览器插件,提供URL转发、修改HTTP请求和结果、插入脚本等功能。
Window Resizer 主要用来调整浏览器窗口的大小以模拟各种屏幕分辨率。
Responsive Viewer 是在一个视图中显示多个屏幕的 Chrome 扩展程序。该扩展将帮助前端开发人员在开发响应式网站/应用程序时测试多个屏幕。
此插件允许直接从浏览器发送跨域请求,而不会收到跨域错误。可以使用此插件覆盖 Request Origin 标头,并将 Access-Control-Allow-Origin 设置为 *.
ColorPick Eyedropper 是一个放大的吸管和颜色选择器工具,可让从网页等中选择颜色值。
CSS Peeper 用于检查和复制元素样式的优秀工具,使用 CSSPeeper 可以将鼠标悬停在网页中的任何元素上,然后单击鼠标即可复制元素的样式。
24. Dimensions
Dimensions是一款能帮助使用者对网页上各种元素属性之间的距离进行测量的Chrome页面元素测量插件,该插件在点击启动插件图标后,可以对页面中图像、输入字段、按钮以及视频等页面元素之间上下左右的方位尺寸进行测量,同时还可以通过使用快捷键来快速启用或关闭该插件的功能,简单实用。
Site Palette 用于生成调色板。设计师和前端开发人员必备的工具。可以通过这款插件轻松获取网站的配色方案。
ColorZilla 是一款功能强大地提取网页色彩的工具;也是个快速的对颜色进行调节的Chrome插件,许多的用户将这款软件称呼为颜色吸取插件,它提取的颜色是非常的多样化,还可生产css颜色的代码等。
当我们想查看网页中文字的字体时,最常用的方法就是在控制台查看文字的字体样式。那还有没有更简单的方法呢?WhatFont 就是一个查看网页字体的Chrome扩展。只需要的点击扩展图标,再点需要查看为文字即可:
Fonts Ninja 可以从任何网站识别字体、添加书签、试用并购买它们。
使用 BrowserStack 快速启动扩展在任何浏览器中启动一个新的测试会话。最多可设置 12 个浏览器以实现快速访问并最大限度地减少切换浏览器所花费的时间。
Toby 是一款 Chrome 新标签页工具,能够将未读的标签页分组显示在新标签页中,这样就能把所有未看完的标签页都关闭了。分组相当于多个 Chrome 窗口,将你的标签页都拖进 Toby 中,就不需要实时开着占地方了。
该扩展提供了每日热门开发者新闻,不需要再浪费时间搜索高质量的文章了。
Momentum 拥有漂亮的新标签页面,每日更新精彩背景壁纸图片,可设置每日新鲜事焦点以及跟踪待办事项,无广告,无弹窗。
The Great Suspender 是一个轻量级的扩展用来减少 Chrome 的内存占用。如果同时打开许多选项卡,在可配置的时间之后未查看的选项卡将在后台自动挂起,从而释放该选项卡消耗的内存和 CPU。
Session Buddy是一个可以帮助用户查看、新增、编辑当前网站Session状态的Chrome插件。用户可以利用该插件保存网站当前的状态以便在关闭Chrome或关闭计算机后恢复,从而达到节省内存的作用。
Octotree 旨在让 GitHub 体验更好。通常,为了检查 Github 中的子文件夹,需要手动单击文件夹并导航。Octotree 扩展解决了这个问题。此扩展在项目的左侧显示存储库的目录结构,这有助于更好地理解文件夹结构。
1_EKF88oqIyX6FzgueCKdtXg.gif
File Icons for GitHub and GitLab 可以将 GitHub 和 GitLab 上的原始文件图标替换为特定文件类型的图标。
ax DevTools 是一个快速、轻量级但功能强大的测试工具,由 Deque 开发的世界上最值得信赖的可访问性测试引擎 axe-core 驱动。使用 ax DevTools 在网站开发过程中查找并修复更多可访问性问题。
OctoLinker 可以将特定语言的语句(如 include、require 或 import)转换为链接。当打开一个包含多个导入语句的文件并且想要快速打开它时,只需将鼠标悬停在链接的文件上并单击即可打开。
此扩展可帮助 Web 开发人员分析网页是否违反最佳实践。
Check My Links 是一个链接检查器,它可以抓取网页并查找损坏的链接。
Checkbot 是用于验证一组HTML页面上的链接的工具。Checkbot可以检查一个或多个服务器上的单个文档或一组文档。它会创建一个报告,该报告汇总了引起某种警告或错误的所有链接。
Google Page Speed Insighs 是一款旨在优化所有设备上的网页、提高网页加载速度的工具。
META SEO inspector是一款可以帮助用户分析网页的meta信息并得到SEO评估的谷歌浏览器插件。
Ghostery 是强大的隐私保护扩展程序。其主要有以下功能:
AdBlock 用来在YouTube、Facebook、Twitch和其他你喜爱的网站上拦截广告和弹窗。
番茄工作法(Pomodoro®)时间管理助理。• 长短两种休息时间 • 带有倒计时显示的工具栏图标 • 追踪Pomodoro历史和统计讯息 • 可配置的长休间隔 • 可配置的定时器时长 • 桌面与新标签页通知 • 超过20种音效可选的声音通知 • 计时器秒针走动音效
Loom 可以用来快速录制视频,并且能够将录制的视频上传到指定的网页中,Loom还支持在用户点击启动插件时,立即捕捉屏幕图像,同时开始视频录制操作,还可以将录制好的视频复制到粘贴板中存储。
GoFullPage 是一款全屏截图插件(整个网页截图),完整捕获您当前页面的屏幕,进行滚动截图,而无需任何额外的权限。单击扩展程序图标,然后将其传输到屏幕快照的新标签页中,可以在其中将其下载为图像或PDF,甚至只需拖动即可,保存到桌面。
BetterViewer 可以提供更好的图像查看体验,旨在替代基于 Chrome 浏览器中内置的图像查看模式。使用时,只需在页面右键点击图片,选择“在新标签页中打开图片”即可。
svg-grabber 是一个快速预览并从网站获取所有 svg 的工具。可以用来预览、下载和复制网站中所有 SVG 图标和插图的代码。
要成为哈佛大学的学生,很难;但想要上哈佛大学的课,很容易。
这个学期,我上了三门哈佛大学的 MOOC,分别是:
一般哈佛大学本科生一学期也就上三到四节课,所以可以说我假装在哈佛大学上了一学期。
哈佛大学是 edX 的创始者之一,所以在 edX 有许多哈佛大学的课程,其中最著名的可能就是计算机课程 CS50,它被彭博社誉为全美前五的计算机课程。我在 edX 这个平台选择了 CS50 和它的系列课程 CS50's Web Programming with Python and JavaScript。网易云课堂里则能找到积极心理学(《哈佛大学公开课:幸福课》),并有中文翻译。
让我们先看一些概念,有助于学习美国高校所开设的 MOOC。
在美国高校,一节课包括以下 3 种教学形式:
一些可能会用到的名词:
Psychology 1504 名为 Positive Psychology (积极心理学),在网易云课堂上名为《哈佛大学公开课:幸福课》,主讲人是 Tal Ben-Shahar,被誉为哈佛大学「最受欢迎的教师」。该课程是哈佛有史以来最受欢迎的课程之一,教你如何变得更快乐。课程总共有 23 个课时,每节课 80 分钟。
《哈佛大学公开课:幸福课》
积极心理学是心理学近年来才有的分支。在心理学界,研究焦虑和研究快乐的论文比是 21:1,也就是说学者研究 21 次人们为什么焦虑才会研究 1 次人们为什么会快乐。Tal 说在哈佛开设积极心理学的目的,除了想让上过课的人变得更快乐之外,就是想重新平衡这种天平,因为知道如何变得快乐和知道为什么不快乐一样重要。
Tal 在课上提出的核心观点就是:快乐不仅仅在于外在的条件,而在于主观期望和外在条件的匹配。人们总认为富人比穷人更快乐,诚然富人在很多事情上有更多选择权,但这也与自身的主观期望有关:穷人可能就想要平平淡淡的生活,而事实如此,他就会十分快乐;富人可能开着宝马,但买不起朋友们都有的劳斯莱斯,那他可能也会不快乐。所以快乐不在于地位的高低,而在于主观期望和外界条件是否相匹配。
积极心理学不光是讲授调整心理的课程,控制身体一样能够影响心理。Tal 在课堂上提出了变得更快乐的 the wonder drug (灵丹妙药),只有简单的 4 点,并有学术研究支持该观点:
我也发现充足的睡眠和运动能够让我变得更加有活力,虽然冥想和拥抱在现阶段我还在进一步尝试,但我相信这四点确实可以使我更快乐。通过调整自己的身体,让心灵变得更加快乐,毕竟心灵和身体本就是一体的。
在课程上,涉及了许多与快乐有关的方面,比如学会专注、拥抱改变、克服拖延、学会感恩等等,每一节课都从不同的方面讲授变得更快乐的能力。我强烈推荐你去看《哈佛大学公开课:幸福课》的课程视频,相信你能在看完后有所收获,拥有变得更快乐的能力。
网易云课堂上只有课程视频,并没有课程 PPT。
CS50: Introduction to Computer Science 是哈佛大学的计算机基础课程,该课程还被耶鲁大学引用,在耶鲁开设了同样的课程。该课程分为 10 周,前 5 周讲解 C 语言和基本的计算机科学基础知识,后 5 周会涉及 Python,HTML,SQL 等进阶知识。课程主讲是 David Malan,被誉为全球知名计算机科学教育者之一,Facebook CEO 马克-扎克伯格也曾在该课上当过 授课嘉宾。
CS50
该课程共分为 11 周,每周的任务分为以下三个部分:
我个人觉得 CS50 最大的优势就是拥有网页编程环境,让初学者不用先安装复杂的 IDE (集成开发环境)与编程环境,先专注于编程语法与编程体验,这样一步步就可以培养出对编程的兴趣。试想一个编程初学者不光要学习编程语法,还要在实际编程时面对复杂界面上的一堆按钮,是什么样的体验。我当时大一在学校机房用着古老的机器和 IDE,只知道 Complie 和 Run 两个选项,剩下几十个选项完全不知道是干什么的,压力铺面而来,完全感受不到编程的乐趣。
在 CS50 的环境下,打开浏览器就可以编程,界面干净而现代。当遇到问题时,不光有系统给出的报错信息,使用课程团队自己开发的命令行工具 help50 可以给你自然语言的指导;style50 工具可以自动找出缩进格式的不对称并给出建议,让代码更美观。这些工具都是初学者该使用的,来不断改进自己良好的编程习惯,在以后的路上走的更顺利。
网页端简洁的 IDE
除了优秀的课程网站设施和课程团队外,主讲教师 David 在课上激情且富有活力的讲解也是我在上课时感受到的亮点。他每节课都因为讲得激情而大汗淋漓,让我透过屏幕也能感受到他的活力与激情,上课用起例子来也是毫不留情,比如:
现场撕书
课堂上吃早餐
真-人工排序
这种看似浪费物资和人力的举例讲解,其实不仅让课堂变得不那么死板,也会让学生记住这种生动而深刻的举例,从而类比到计算机的一些知识点,对于初学者还是挺重要的。
CS50's Web Programming with Python and JavaScript 是 CS50 系列中的网页开发课程。课程讲解了网页开发三剑客 HTML,CSS 和 JavaScript,同时也会涉及 Python 的讲解和用 Flask 框架进行网页开发,以及使用 SQL 和建立数据库的相关细节,还会讲到 Git 和 GitHub 的相关操作。主讲人是 Brian Yu,他也是 CS50 主课的首席 TF,上课逻辑清晰,几乎没有废话。
CS50' Web Web Programming with Python and JavaScri
全课程分为 12 周,每周为一个将近 2 小时的 Lecture。全课程共有 4 个 Project 和 1 个 Final Project,每个 Project 都要求做出相应功能的网页并附上演示说明。该课程的特色是直接上手,以项目为主讲解功能,而不像很多国内的课程先分化讲一堆功能。项目制的好处,就是你可以先用很少的功能先完成一个网页,虽然它可能很丑陋,但是这种成就感是继续学习的重要动力。如果只是灌输一大堆功能再让你开发一个网页,有可能反而无从下手。
虽说 MOOC 的上课时间很自由,但不进行规划,等到有时间再来补充知识,结果往往是一直推迟。为 MOOC 规划一个上课时间,像真实听课的那样按照时间去上课,会给自己一种仪式感,就好像自己身临其境地在哈佛大学里上课,也能按照规划完成自己想学的课程。
某周的上课日历
上图是我日常周内只有上课的日历图层。除了自己学校的两门课外,我为我选的三门 MOOC 都安排了时间,到了时间就去图书馆打开电脑准备上课。给自己这种像正式上课一样的仪式感,才能有条不紊地按计划完成 MOOC 学习。当然因为这学期时间充裕,我才能将课程安排在周一或周二,但方法是一样的,将它安排到下班后或者晚上,给自己一个上课的仪式感是很有必要的。
以上就是我选择的三门哈佛大学的 MOOC 课程,本文的目的是想告诉大家网上的教育资源很发达,大家完全可以在网上选择自己心仪的大学所开设的课程,总有网上的课程能够覆盖你想学的知识。在课堂上老师为了讲清楚概念都会放慢语速,所以听英语课程是锻炼英语听力的一种很好的方法,想要出国留学的朋友也可以听几节全英文的课程来适应美国大学的课堂。
当然在网上上课不能完全等同于在校园内上课,MOOC 的线上沟通比起真人交流还是有一定差距,哈佛校园内的资源和社交网络仍是用在线课程代替不了的优势。但 MOOC 相比于传统校园课程,也有其一定的优势,其一是对上课时间的灵活掌控,你可以选择在自己有状态的时间进行上课,比如有些人晚上上课反而效率更高;其二是少了一些考核的压力,专注于知识的获取,充分发挥自学的优势。
哈佛大学一门课的 学费 约为 6000 美元,而在 edX 和网易云课堂上是完全免费的,学完后可以花 90 美元获得课程证书。学会获取互联网上优质的资源,不仅可以拓宽自己的视野,也可以更高效地获取知识,祝大家学习愉快。
(题图和配图来自哈佛大学、edX 和网易云课堂)
*请认真填写需求信息,我们会在24小时内与您取得联系。