Flutter入门-环境安装

最近比较热爱学习,正在学习Flutter,记录Flutter的学习过程,大家一起进步。因为博主使用Mac,以后的教程都是在mac环境下编写。

获取 Flutter SDK

获取 Flutter ,你可使用 git 去克隆Flutter的仓库然后添加 flutter 工具到你的路径,运行 flutter doctor 显示你可能要安装的依赖。
克隆仓库
如果你是第一次在你机器上安装 Flutter,克隆 beta 分支的仓库然后添加 flutter 工具到你的路径:

git clone -b beta https://github.com/flutter/flutter.git

下载Flutter SDK
因为官网提供了SDK包下载,所以我直接下了,速度也比较快。不能访问的还是使用上面获取SDK吧。
flutter_macos_v0.3.2-beta.zip

设置环境变量
Flutter路径添加到环境变量中。

export PATH=`pwd`/flutter/bin:$PATH

将以上代码添加到 ~/.bash_profile中,这样Flutter命令就可以执行。

运行Flutter doctor
运行以下命令可以看到你是否需要安装任何依赖来完成安装:

flutter doctor
我的运行结果显示如下:

~flutter doctor
Doctor summary (to see all details, run flutter doctor -v):
[✓] Flutter (Channel beta, v0.3.2, on Mac OS X 10.12.6 16G29, locale zh-Hans-CN)   
Android sdkmanager tool not found (/Users/jun/Documents/Developer/Android/sdk/tools/bin/sdkmanager).    
Try re-installing or updating your Android SDK, 
visit https://flutter.io/setup/#android-setup for detailed instructions.

运行Android Studio 安装Dart支持
首先你得安装了Android Studio,对于Android Studio怎么安装,大家百度,我们的教程前置条件是学习过App开发(android或IOS)。左上角菜单Preferences->Plugins,在搜索框中搜索Dart,然后安装就可以,见下图:

安装完后,重启IDE,就可以开发Flutter应用了。

PJBlog3转换wordpress4.9记录

某学长的个人blog一直使用pjblog3,然而空间一直我在打理。手上的空间,域名,网站太多了,管理起来很不方便,所以打算把pjblog转wordpress,放到以前学校论坛的服务器上。
PJBlog版本:PJBlog3 3.1.6.227
wordpress版本:WordPress 4.9.1

1.导入pjblog数据并导入wordpress

使用PJBlog3_到WordPress升迁工具导出数据,参考最新PJ3转移到WP过程详细记录——转换教程

2.内容反转义

导入wordpress的正文与摘要中的Hmtl被转义,这里需要代码编程进行反转义一下就好。

3.替换附件路径

PJBlog3的附件路径是通知download.asp访问的,在wordpress中不能访问,需要替换。
把BlogDB文件夹内的.asp结尾的文件改成.mdb后缀文件,这样就可以使用ACCESS软件打开。这里需要编程替换文件。最好把blog_Files表导出成mysql,然后在wordpress中创建这个表,导入数据。最后编程替换就好。
因为我是使用golang写的反转义与附件替换,所以没有代码可以提供。

防止Centos HHVM崩溃导致网站出现502错误

在阿里云Centos 上装了hhvm,经常会出现hhvm挂掉。这个要看hhvm的心情,有时一两天,有时一两个月都没有出现。Google了一下最简单的解决方法是写一个脚本用cron每分钟执行一次检查hhvm是否运行。
脚本如下:

#! /bin/bash
PID="`cat /var/run/hhvm/pid`"
if [ "$PID" == "" ]; then
/etc/init.d/hhvm start
if [ "`ps ax -o pid | grep $PID`" == "" ]; then
/etc/init.d/hhvm stop
/etc/init.d/hhvm start
fi
fi

将这段脚本保存在/home/check_hhvm.sh,并执行chmod +x /home/check_hhvm.sh,然后编辑/etc/crontab,加入一行

* * * * * root /home/check_hhvm.sh。

经测试,这个脚本可以让你的网站最多down一分钟。先当作临时的解决方案吧。

阿里云主机wordpress漏洞wordpress IP验证不当漏洞

漏洞描述:wordpress IP验证不当漏洞

文件位置:/wp-includes/http.php

修复方案:

在文件的465行附近的 $same_host = strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] );

改成 if ( isset( $parsed_home['host'] ) ) { $same_host = ( strtolower( $parsed_home['host'] ) === strtolower( $parsed_url['host'] ) || 'localhost' === strtolower( $parsed_url['host'] ) ); } else { $same_host = false; } ;

在文件的 478行附件的 if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0]

改成 if ( 127 === $parts[0] || 10 === $parts[0] || 0 === $parts[0]  || 0 === $parts[0]

阿里云主机wordpress漏洞wordpress后台插件更新模块任意目录遍历导致DOS漏洞

漏洞描述:wordpress后台插件更新模块任意目录遍历导致DOS漏洞

文件位置:/wp-admin/includes/ajax-actions.php

修复方案:

在文件的2890行附近的 $plugin = urldecode( $_POST['plugin'] );

后面加上 $plugin = plugin_basename( sanitize_text_field( wp_unslash( $_POST['plugin'] ) ) );

mac升级OS X El Capitan 10.11.6 mysql 无法启动

昨天把Mac  OS X El Capitan 升级到10.11.6版本了,今天使用mysql的时候,发现连接不上数据库,phpmyadmin也不能登陆。感觉应该是mysql 没有启动,进入系统偏好设置里面发现mysql果然没有启动,点击启动,没有成功。

提示“Warning, /usr/local/mysql/data is not owned by 'mysql' or '_mysql'”

解决方法:依次执行如下命令

cd /usr/local/mysql

sudo chown -R _mysql data/

重启mysql就好了

来源去stackoverflow

 

Open a terminal:

  1. Check MySQL system pref panel, if it says something along the line "Warning, /usr/local/mysql/data is not owned by 'mysql' or '_mysql'
  2. If yes, go to the mysql folder cd /usr/local/mysql
  3. do a sudo chown -R _mysql data/
  4. This will change ownership of the /usr/local/mysql/data and all of its content to own by user '_mysql'
  5. Check MySQL system pref panel, it should be saying it's running now, auto-magically. If not start again.
  6. Another way to confirm is to do a

netstat -na | grep 3306

It should say:

tcp46 0 0 *.3306 . LISTEN

To see the process owner and process id of the mysqld:

ps aux | grep mysql

react-native init时速度特别慢,换个npm镜像就快了

在react-native init 项目的时候 ,卡的要死,几个小时都没成功,还把网速拖的好卡,完全不能上网。然后换了一个npm镜像1分钟搞定。

操作方法如下:

1.通过config命令

npm config set registry=http://registry.npm.taobao.org

2.编辑 ~/.npmrc 加入下面内容

registry = https://registry.npm.taobao.org

navigationController pushViewController 多次跳转返回

经常在做应用的时候,发现跳转的路径太深了,当我又要跳转到某个界面时,可按以下操作。

返回根页面vc用 :

[self.navigationController popToRootViewController]

返回指定的某个vc用下面(通过index定位)

[self.navigationController popToViewController:[self.navigationController.viewControllers objectAtIndex:2] animated:YES];

或(通过class定位)

for (UIViewController *controller in self.navigationController.viewControllers) {
    if ([controller isKindOfClass:[你要跳转到的Controller class]]) {
        [self.navigationController popToViewController:controller animated:YES];
    }
}

                    

编资源bundle时图片文件变成tiff的解决方法

一般,编写SDK的时候,如果SDK还带了一些资源文件,那么最理想的是将资源文件也打包成为bundle给应用方一起使用。而在编资源bundle时,有时会发现编译好后的图片文件从png转成了tiff,这样找icon就会不正确了。解决的方法是更改编译设置COMBINE_HIDPI_IMAGES为NO. 如下图所示

D9818149-FFDE-4339-A9DC-7B46F9BD881D

UITapGestureRecognizer tag的问题

在我们的界面上可能有很多的UILabel需要设置点击事件,所以我们给他们添加了手势操作,用tag 去判断点击的是哪个控件,而已报出以下错误:

[UITapGestureRecognizer tag]: unrecognized selector sent to instance

解决方法:

UITapGestureRecognizer *tapRecognizer = [[UITapGestureRecognizer alloc]
                                         initWithTarget:self action:@selector(action:)];
[tapRecognizer setNumberOfTouchesRequired:1];
[tapRecognizer setDelegate:self];
label.userInteractionEnabled = YES;
label.tag = 1111; 
[label addGestureRecognizer:tapRecognizer];

 

 

-(void) action:(id)sender
  {
    NSLog(@"TESTING TAP");
    UITapGestureRecognizer *tapRecognizer = (UITapGestureRecognizer *)sender;
    NSLog (@"%d",[tapRecognizer.view tag]);
  }