查看MariaDB(MYSQL)数据库中用户及其拥有权限

查询用户权限:

(1)查询所有用户:
SELECT DISTINCT CONCAT(‘User: ‘’’,user,’’’@’’’,host,’’’;’) AS query FROM MySQL.user;
(2)查看数据库中具体某个用户的权限:
方法一: show grants for ‘username’@’%’;
方法二: select * from mysql.user where user=’aabb’(但是无法看到具体对应的表的权限)

在PHPmyadmin中如何用户名和密码登陆?

解决方法:找到phpMyAdmin配置文件(config.inc.php)中的以下配置:

1
$cfg['Servers'][$i]['auth_type'] = 'config';

将config修改为cookie!

在此有四种模式可供选择,cookie,http,HTTP,config。其中,config方式即输入phpmyadmin的访问网址即可直接进入,无需输入用户名和密码,是不安全的,不推荐使用。当该项设置为cookie,http或HTTP时,登录phpmyadmin需要数据用户名和密码进行验证。

具体如下:

  • PHP安装模式为Apache,可以使用http和cookie;
  • PHP安装模式为CGI,可以使用cookie。
    所以,建议使用cookie!!

MySQL enum用法--实现类似check的输入约束

尽管MySQL对check仅编译不执行,尽管把这样的输入约束放在业务逻辑层去实现才是王道,但是在创建table时,仍然希望能对输入值进行约束检查。
此时用enum能实现相似的效果,比如性别“男”或“女”的输入受限:
创建表时:

1
2
3
4
5
create table 学生表(
.......
性别 enum("男", "女") not null ,
.......
)

修改表时:

1
alter table 学生表 modify column 性别 enum("男", "女")

MySQL数据库编码问题如何解决

数据库编码选择的一般准则:

1、GBK/GB2312
适合纯中文存储的数据库
2、LATIN1
适合于纯英文的存储
3、UTF8
适合中英文混合编码的存储。

MySQL数据库的编码分为四级:

一、Mysql数据库服务器编码

设置步骤:
(1)编辑MySql的配置文件
MySql的配置文件在MacOSX系统中是在/etc/my.cnf

–在 [mysqld] 标签下加上两行

1
2
character_set_server=utf8
init_connect='SET NAMES utf8'

(2)重新启动MySql服务

1
service mysql start

(3)查看设置结果
登录MySql命令行客户端:打开命令行

1
mysql –u root –p 回车

输入密码
进入mysql后 执行 :

1
show variables like '%character%';

显示结果应该类似如下:
+————————–+————————————————+
| Variable_name | Value |
+————————–+————————————————+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /Applications/XAMPP/xamppfiles/share/charsets/ |
+————————–+————————————————+

(4)建库导入数据
导入sql脚本文件前,先确保该脚本文件及内容格式为UTF-8编码格式,
同以上方法登入mysql命令行,

1
use 库名

进入相应数据库,然后进行如下操作:

1
2
set names utf8;
source sql 脚本文件名;

二、Mysql数据库编码

(可以在创建的时候指定,也可以在创建之后进行修改)
方法1、

1
create database db_name default character set utf8

方法2、

1
create database db_name default charset=utf8

修改DB的编码:

1
alter database db_name default character set utf8;

三、Mysq数据库中表的编码

(可以在创建的时候指定,也可以在创建之后进行修改)
方法1、

1
2
3
4
create table table_name
(
......//字段信息
)ENGINE=InnoDB DEFAULT character set utf8;

方法2、

1
2
3
4
create table table_name
(
......//字段信息
)default charset=utf8;

修改表table的编码:

1
alter table table_name default character set utf8

四、Mysql数据库表中字段的编码

(可以在创建的时候指定,也可以在创建之后进行修改)
方法:

1
2
3
4
create table table_name
(
filed_name varchar(20) character set utf8 //注意不能有default
);

修改字段field编码:
方法:
假如字段的限制是 varchar(20) not null default ‘’;

1
alter table table_name change old_filed_name new_filed_name varchar(20) not null default 'abc' character set utf8;

change和modify的区别,modify只能修改字段属性,change可以修改字段名。

怎样更新App Inventor 模拟器中的AI伴侣app?

App Inventor模拟器中的AI伴侣应用很古旧了,怎么更新呢?

其实方法很简单1:
第一步,在浏览器中选择”帮助”菜单中的”更新伴侣”选项:
step1-1
如果这时候,浏览器中蹦出这样一个软件升级提示对话框页面,恭喜你可以很省事地继续下面步骤:
step1-2
千万要注意这个对话框中的“重要”提示:当更新完成,选择“完成”(不要点击“打开”)。然后再次浏览APp Inventor网页,点击“连接”菜单,选择“重置连接”。然后重新连接设备。
如果不放心,可以在模拟器上的AI伴侣程序更新完成之前,不关闭这个对话框页面。
在这个页面打开的同时,模拟器中的AI伴侣程序开始更新,依次展示以下界面:
(1)请点击红色框选部分进行操作:
step1-3
(2)请点击红色框选部分进行操作:
step1-4
(3)安装过程中:
step1-5
(4)切记选择“Done”按钮:
step1-6

如果没有跳出上述的软件升级提示对话框页面,而是出现如下页面,请你先按照以下步骤进行更新!!!
step1-2
首先,请先退出模拟器中自带的MITAICompanion应用,在系统中卸载它,步骤如下图:
(1)找到并打开模拟器中的Settings应用:
Setttings
(2)在Settings中打开“Applications”选项:
Application
(3)在Application Settings中打开“Manage applications”选项:
Manage Application
(4)在打开的页面中找到“MIT AI2 Companion”选项,点击进去之后选择“Uninstall”选项卸载掉MITAI2Companion:
Uninstall
接下来,在gzjkw的项目主页中,点击“帮助”菜单中的“AI伴侣信息”选项,打开最新版本的AI伴侣下载地址:
AI伴侣信息AI伴侣下载地址
然后,找到选中模拟器中自带的浏览器应用“Browser”,在浏览器的地址中输入在上图中找到的最新版本的AICompanion下载地址http://app.gzjkw.net/companions/MITAI2Companion.apk,点击转到该地址的按钮之后,模拟器就会自动开始下载AI伴侣,下载完成之后点击安装,安装完之后试着运行一次MITAICompanion。接着再完成以下步骤。
BrowserInput download addressDownload AICompanion.APK

第二步,关闭软件升级提示对话框页面后,点击“连接”菜单,选择“重置连接”。
step2

第三步,重新打开模拟器,AI伴侣程序被完美更新啦!
step3

部署MAC上面的Sublime Text+LaTeX,支持中文环境!

安装步骤

1. 首先需要安装Sublime Text 2/3和Package Control

下载安装好Sublime Text之后,从菜单 View - Show Console 或者 ctrl + ~ 快捷键,调出 console。将以下 Python 代码粘贴进去并 enter 执行,不出意外即完成安装。以下提供 ST3 和 ST2 的安装代码:

Sublime Text 3:

1
import urllib.request,os; pf = 'Package Control.sublime-package'; ipp = sublime.installed_packages_path(); urllib.request.install_opener( urllib.request.build_opener( urllib.request.ProxyHandler()) ); open(os.path.join(ipp, pf), 'wb').write(urllib.request.urlopen( 'http://sublime.wbond.net/' + pf.replace(' ','%20')).read())

Sublime Text 2:

1
import urllib2,os; pf='Package Control.sublime-package'; ipp = sublime.installed_packages_path(); os.makedirs( ipp ) if not os.path.exists(ipp) else None; urllib2.install_opener( urllib2.build_opener( urllib2.ProxyHandler( ))); open( os.path.join( ipp, pf), 'wb' ).write( urllib2.urlopen( 'http://sublime.wbond.net/' +pf.replace( ' ','%20' )).read()); print( 'Please restart Sublime Text to finish installation')

2. 安装MacTex_Basic

MacTex现在是一个2G+的大包子,其实里面很多东西我们不需要,所以本着节约精神,我们安装MacTex_Basic包就行了,现在的版本大概是100M左右。这个安装也是傻瓜的。

3. 在Sublime Text里安装LaTexTools

在Sublime Text里Command+Shift+P或者菜单中Tools->Command Palette调出命令窗口,输入Install,之后选择LaTexTools,网络OK的话,很快就完成了插件安装。

4. 下载安装并配置Skim

LaTexTools插件会在编译你的Tex文件后,调用Skim这个PDF阅读器打开编译出的PDF文件,因此你还需要安装Skim.
运行一下Skim,进入偏好设置——同步,在PDF-Tex同步支持那里选择“Custom”自定义,输入/Applications/Sublime Text.app/Contents/SharedSupport/bin/subl,最后一行不用动。这样,当你在Sublime Text里修改tex文件时,Skim预览也会相应变更。

5. 测试

完成上面所有步骤,其实就已经搭建完成基本环境。创建一个test.tex文档,保存一下以后,Sublime Text会自动套用LaTex语法显示和编译。贴上下面附的测试代码,一般来说Command+B应该可能会报fontspec错误;如果能正常编译,则会调用Skim显示一个PDF文档了。只是中间的中文不见了。

测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
\documentclass{article}
\usepackage{fontspec, xunicode, xltxtra}
\setmainfont{Hiragino Sans GB}
\title{Title}
\author{}
\begin{document}
\maketitle{}
\section{Introduction}
This is where you will write your content. 在这里写上内容。
\end{document}

6. 修改配置支持中文环境

(1) 生成用户自定义设置:
点击Sublime Text菜单中的Preferences->Package Settings->LaTexTools->Settings-User,生成用户自定义设置;
(2) 修改用户自定义设置:
a. 点击Sublime Text菜单中的Preferences->Browse Package,打开Finder
b. 编辑~/Library/Application\ Support/Sublime\ Text/Packages/Users/LaTeX.sublime-settings,将其中”builder”条目改为:
“builder”: “simple”
c. 编辑~/Library/Application\ Support/Sublime\ Text/Packages/LaTeXTools/builders/simpleBuilder.py
找到其中大概第41行
pdflatex = [“pdflatex”, “-interaction=nonstopmode”, “-synctex=1″]
修改为
pdflatex = [“xelatex”, “-interaction=nonstopmode”, “-synctex=1″]
(3) 保存所有修改的文件后关闭ST,对测试代码重新编译一下(或者Cmd+B),这样就能在Skim中正常显示中文啦!

转自:

[1]. http://blog.csdn.net/songrotek/article/details/46457571
[2]. http://www.readern.com/sublime-text-latex-chinese-under-mac.html

App Inventor 操作界面

界面总体介绍

App Inventor的操作界面可分为组件设计与逻辑设计。


1 App Inventor组件设计界面

App Inventor采用的是可视化的设计开发方法,在组件设计界面的正中间是工作面板,显示的主要部分是一个屏幕界面,可以拖放一些想要的组件到这个屏幕中去,就像摆放装扮App最终运行的屏幕效果图一样。
组件设计界面

屏幕上方有3个功能按钮,分别是Screen1、增加屏幕和删除屏幕,如下图所示:
功能按钮

组件设计界面,可以细分为以下几块内容:

(1)组件面板

组件设计界面的左端为组件面板,可以通过拖拽把相应组件加入当前屏幕。组件面板包括了安卓应用开发所需要的大部分组件,如下图所示。其中包括了用户界面、界面布局、多媒体、绘图动画、传感器、社交应用、数据存储、通信连接、乐高机器人、实验性质(Firebase,国内服务器尚未支持)以及Extension:
组件面板

(2)工作面板

App Inventor的工作面板如下图所示,这是APP的显示界面:
工作面板

工作面板右边为组件列表、组件属性以及素材列表。

(3)组件列表

在组件列表中,将以树形结构显示当前屏幕的所有组件,如下图所示:
组件列表

(4)组件属性

在组件属性中,将显示所选中的组件的所有属性,比如标题、字体、字号、行为等,如下图所示:
组件属性

(5)素材列表

在App Inventor的素材列表中,将显示所有已经添加的图像、视频和音频文件等,如下图所示:
素材列表

当你往当前屏幕中拖放了某些组件后,这些组件会显示在组件列表中。例如在Screen1中拖放了一个按钮组件后,显示效果如下图所示。在“工作面板”或者“组件列表”中选中任意组件会出现其对应属性。在下图中,当选中的当前组件是按钮1时,组件属性显示的就是有关按钮1的所有详细属性值。
拖拽组件到工作面板之后的相关显示


2 App Inventor逻辑设计界面

如下图所示,在左侧模块面板中选择某个组件对象所关联的逻辑块(或者称之为积木块),通过拖拽进中间的工作面板中进行拼接。每个积木块代表特定的程序设计代码,例如点击,摇晃,翻转,比较、定义等。工作面板的左下角显示的是当前项目中出现的错误或者警告个数,右上方是一个书包,这个可以实现多个屏幕之间的代码复制,右下方是一个垃圾桶,可以通过把不要的积木块放进去,从而实现删除功能。左侧栏最下方为素材栏,用于直接上传素材文件。
逻辑设计界面

逻辑设计界面,可以细分为以下几块内容:

(1)模块面板

逻辑设计界面中的模块面板(如下图所示),包括了安卓应用开发所需要的所有逻辑块,可细分为内置块和组件抽屉:
模块面板
当点击某一个组件之后,将在模块面板的右侧出现该组件对应的所有逻辑块,如下图所示:
逻辑块列表

(2)工作面板

逻辑设计界面中的工作面板如下图所示,在模块内找到需要在APP中添加的行为所对应的程序块并拖动到工作面板,然后通过拼图的方式实现APP的完整逻辑程序实现:
工作面板

(3)素材列表

逻辑设计界面中仍设置了素材列表,如下图所示,显示了所有已经添加的图像、视频和音频文件等,通过将素材文件的名字填写进入工作面板中的逻辑块相应位置实现程序块对素材的访问:
素材列表


Hexo中使用本地图片需要的注意点

【转自https://codefalling.com/2015/12/19/no-pains-with-hexo-local-image/?utm_source=tuicool&utm_medium=referral

起因

在 hexo 中使用本地图片是件非常让人纠结的事情,在 markdown 里的图片地址似乎永远无法和最后生成的网页保持一致。

解决方案

CodeFalling/hexo-asset-image

  1. 首先确认 _config.yml 中有 post_asset_folder:true 。

  2. 在 hexo 目录,执行

1
$ npm install https://github.com/CodeFalling/hexo-asset-image --save

假设在这样的目录结构(目录名和文章名一致):
MacGesture2-Publish
├── apppicker.jpg
├── logo.jpg
└── rules.jpg
MacGesture2-Publish.md

只要使用 ![logo] (MacGesture2-Publish/logo.jpg) 或者![logo] (logo.jpg)就可以插入图片。

生成的结构为:
public/2016/07/20/MacGesture2-Publish
├── apppicker.jpg
├── index.html
├── logo.jpg
└── rules.jpg

同时,生成的 html 是:
< img src=”/2015/10/18/MacGesture2-Publish/logo.jpg” alt=”logo” >

App Inventor 设计原则

App Inventor是零基础的Blocks-Based的设计平台,容易上手,但是也有让人不如意的地方。比如它的调试和后期修改不是非常方便。为了避免在App Inventor的编程中少走弯路,以下是一些需要特别留意的设计原则:

1. 在设计前一定要做好详尽的需求分析:App所要达到的目标,App的受众等。

2. 在开始写程序前就要定好UI的界面,最好能将Prototype在纸上还原出来。

3. 取一个有意义的项目名,不要用abc, test等来命名。当你开发了大量App时,有意义的名字能够方便你很快搜索定位到。当你发布后,也可以让别人通过关键字搜索到。

4. 屏幕1(Screen1)是App的默认进入屏幕,不可更改。所以在进行屏幕1的设计时一定要慎重,想将屏幕1的内容替换成其他屏幕的内容的唯一方法只能是重做。

5. 除非必要,App能在一个屏幕完成的,尽量不要使用多屏幕。在屏幕间进行切换时,不同的设备可能会有不同的结果,有些可能会引起App中止运行。同时要特别注意,屏幕之间的参数传递很不方便,屏幕之间只能传递一个参数,如果需要在不同屏幕之间传递大量参数,建议使用数据库。

6. 尽可能以有意义的名字重命名组件(非常重要!)。当你的App设计的比较庞大复杂时,默认下的Button1、Button2、Label1、Label2等没有确定意义的名字会让你极大降低编程效率。

7. 组件命名原则:组件类型+组件作用,如ButtonAdd, ButtonStart。使用骆驼命名法,每个单词大写字母开头,非常清楚明了。

8. 过程及变量命名:常量全大写,变量小写。过程名小写单词开头接大写字母开头单词,如addPhoto。

9. 一些重要的过程、变量赋值、事件处理等最好进行备注,既方便自己回忆,也方便别人读程序。

10. 在测试时如果出现了和预期不一样的效果,在基本排除了程序自身的问题的前提下,试着用其它设备进行测试。不同品牌、型号、尺寸的手机、平板可能效果完全不一样。

11. 尽量用布局Layout来放置组件,既美化界面,在程序设计时对同一布局下的组件的可视性操作可以通过布局完成,提高编程效率。

12. BackPack是2015年10月份新增的功能,可以将代码复制放到背包中。但是由于App Inventor无法复制屏幕和组件,所以在跨屏幕间复制粘贴代码要特别注意是否会有未定义的组件被复制粘贴。

App Inventor 开发准备工作

【部分转载深圳三高MOOCS以及浙大城市学院吴明辉老师的“App Inventor 零基础Android移动应用开发”

App Inventor是一个基于云的工具,这意味着你可以在网页浏览器上来构建你的App。网站提供你在构建自己的App时所需要的所有支持。

1 用App Inventor开发App的过程

2 访问App Inventor 2 开发平台

3 开发环境要求

1.操作系统要求:

  • Macintosh(采用Intel处理器):Mac OS 10.5/10.6
  • Windows: XP/Win7/Vista
  • GNU/Linux: Ubuntu 8或者更高版本/Debian5或者更高版本

2.浏览器要求:

  • Mozilla Firefox3.6或更高版本
  • Apple Safari5.0或更高版本
  • Google Chrome4.0或者更高版本

3.移动终端要求:

  • Android操作系统2.3或者更高版本

4 开发界面

(1) 登录开发平台时,需要进行账号注册。完成注册并登录后进入开发页面,如下图所示:
AI 登录后的开发页面

(2) 点击上图中页面左上角的“新建项目”创建一个新项目,在出现的对话框(下图)中输入你想创建的App的名字,如“ProjectA”,然后点击“确定”。
注意:项目名称只能由字母开头,且只能由字母、数字和下划线组成。尽管支持中文页面,但目前项目名称还不支持中文。
AI 登录后的开发页面

(3) 当一个项目新建完成之后,就会自动进入组件设计界面,如下图所示:
新建项目后的第一个页面

网页最上方有一排菜单,菜单功能解释如下:

  • 项目:“项目”的子菜单中包含对项目的操作,具体如下:新建、删除、通过源代码导入项目和通过模板导入项目等;保存、另存、为项目设立检查点;导出单个和导出全部项目代码;上传、下载和删除秘钥等
  • 连接:“连接”的子菜单中包含所有的三种连接模式,具体有:通过AI伴侣、模拟器和USB进行连接;此外还有重置连接和强行重置功能
  • 打包apk:“打包apk”的子菜单中包含编译后获取apk打包文件的方式,一种是“打包apk并显示二维码”,可以通过手机直接扫描二维码来下载安装apk包;另一种是“打包apk并下载到电脑”,这个可以把打包好的apk包下载到本地计算机
  • 帮助:“帮助”的子菜单中包含所有帮助信息的链接,具体有:关于平台信息、AI伴侣下载和更新等
  • 我的项目:点击出现我的所有的项目列表
  • 简体中文:切换开发页面的语言,包括英语、西班牙语、意大利语、俄罗斯语、繁体中文等
  • 账号名:退出已登录账号

5 开发环境搭建

此处分以下几种情况来进行处理:

第一种情况:有安卓设备且有无线连接

  • 步骤一:下载MIT AI2伴侣到手机上并安装
    where 2 download AIAI URL
  • 步骤二:确认电脑和手机在同一局域网内
  • 步骤三:打开App Inventor项目文件并连接手机
    • 打开手机上的AI Companion扫描二维码
      AI Mobile Interface
    • 成功后手机显示APP界面
      AI app interface

第二种情况:没有安卓设备

解决方法:安装或者使用模拟器

  • 安装自带模拟器:

    • 步骤一:下载并安装App Inventor工具软件(下载安装说明),连接项目之前必须先运行aiStarter(MAC系统下该软件会在开机后自动运行于后台之中,Windows系统下必须手动运行该软件)
    • 步骤二:打开App Inventor项目并连接模拟器
      (1) 打开项目开发网页,点击“连接->模拟器”(如下图)
      连接模拟器选项
      (2) 网页会显示连接模拟器的提示。第一次需要等候一点时间,等候过程中aiStarer显示如下图)
      连接后后台显示信息
      (3) 模拟器启动画面
      模拟器启动画面 AI启动画面 App运行画面
  • 使用Genymotion:

    • 步骤一:(同”安装自带模拟器“步骤一)下载并安装App Inventor工具软件,连接项目之前必须先运行aiStarter
    • 步骤二:到www.genymotion.com注册账号,登录后到shop下载安装文件,选择FREE下载文件并安装
    • 步骤三:运行Genymotion后,下载合适的模拟机环境,并且运行它
    • 步骤四:下载MIT AI2伴侣到本地电脑之后,直接拖拽到Genymotion的虚拟机中进行安装(MAC版本下的运行方式,Windows下的安装运行方式点击这里
    • 步骤五:打开项目开发网页,点击“连接->USB”,就可在Genymotion虚拟机中看到项目运行画面
      连接USB选项 Genymotion

第三种情况:有安卓设备且无无线连接

解决方法:使用USB连接电脑和手机

  • 步骤一:步骤一:下载并安装App Inventor工具软件(同第二种情况的步骤一)
  • 步骤二:下载MIT AI2伴侣到手机上并安装(同第一种情况的步骤一)
  • 步骤三:启动aiStarter
  • 步骤四:用USB将电脑和手机连接起来,并将手机的开发者调试模式打开
  • 步骤五:打开项目开发网页,点击“连接->USB”,连接手机并测试
    连接USB选项

怎样查看隐藏文件

查看所有文件

1
2
$ defaults write com.apple.finder AppleShowAllFiles -bool true
$ killall Finder (重启Finder)

隐藏隐藏文件

1
2
$ defaults write com.apple.finder AppleShowAllFiles -bool false
$ killall Finder (重启Finder)