沉浸式状态栏(修改状态栏)颜色的简单实现

Google 推出MaterialDesign后,可以说极大的美化了Android的UI,开发者只需按照MaterialDesign的相关标准就能设计出炫酷的界面。 自从5.0推出后,Android就开始支持修改状态栏的颜色,从QQ、网易云音乐等主流的App都可以看到这一特性使得Android界面更加一体化。 网络上关于修改状态栏的方法更多,也有很多开源库,今天讲一种简单的实现方式。 1、在Java代码中设置状态栏为透明 if (Build.VERSION.SDK_INT >= 21) { View decorView = getWindow().getDecorView(); int option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE; decorView.setSystemUiVisibility(option); getWindow().setStatusBarColor(Color.TRANSPARENT); } 2、在布局文件中添加下面的属性:android:paddingTop=”28dp”,笔者经测试,28dp是比较合适的,大家也可以根据需要调整。 ...... 下面是效果图:

ubuntu中enable wifi为灰色的解决办法

先说一下我的配置: 系统:ubuntu(14.04) 电脑:ASUS(x550v) 情况就是ubuntu下面右上角点开网络连接,enable wifi(开启wifi)选项为灰色,根本无法连接wifi。 解决办法: 控制台中输入: echo “options asus_nb_wmi wapf=1” | sudo tee /etc/modprobe.d/asus_nb_wmi.conf 重启,就可以使用enable wifi了。具体原因我也没搞懂,求大神解释一下。 参考博文: http://sparkandshine.net/ubuntu-enable-wifi-problem-solving-14-04-asus-f552cl/

电商解密之优惠券:B2C平台优惠券该如何设计?

大家对优惠券应该都比较熟悉,有过网购经验的人应该都用过,优惠券也是商家促销一种常用的手段,今天来跟大家介绍下B2C平台优惠券一般都是如何设计的。 优惠券其实本质是一种代金券,用户可以通过各种渠道获得(下单返券、活动领券,系统赠券,线下广告单等),在下单的时候使用,可以抵扣全部或者部分订单金额。 分类方式 现实中我们在各大平台上遇到各种各样的优惠券,这里稍作总结,可以按照如下方式分为3大类。 1.使用方式 个人优惠券:与用户帐号绑定,不可转让,限本人使用,使用时从账户列表中选择,我们绝大多数使用的优惠券都是这种形式。 公共优惠券:不与用户帐号绑定,有代码即可使用,使用时需要输入代码。这种一般在线下推广中用的比较多,广告传单上印号优惠券码让用户输入券码到线上使用。 2.商品适用范围 按照商品范围分又可以分为如下几类,从各种维度对商品进行组合。 整网优惠券:购买所有正价商品均可使用。这种券不限制商品范围,所有商品都可以购买,除了个别商品,这种个别商品一般会在商详上注明不能使用任何优惠券。 类目优惠券:购买优惠券指定类别的商品即可使用,除个别特殊商品。 品牌优惠券:购买优惠券指定品牌的商品时可使用,除个别特殊商品。按照品牌或者品类设置优惠券范围是比较常见的方式。 商品优惠券:购买优惠券指定商品时可使用,这种优惠券一般只针对少量特殊商品可以使用。 客户端专享券:app专享、H5专享等。这种一般在做APP推广的时候比较常用。 平台专享券:自营券、联营券。对于类似京东这种电商平台既有自营商品又有联营POP商品也会存在按照平台区分使用的优惠券。 3.是否有使用门槛 现金券:不限制订单金额,可以直接使用。 满减券:订单金额需要满足一定的最低额度才可使用,例如:满100减10元优惠券。 发放渠道 对于这些优惠券又有很多种发放渠道,总结来说大概有以下几类。 1.用户主动领取 用户通过活动页主动领取,这是最常用的券的获取方式。一般是在活动页面或者是商详页上。下图为京东的领券中心,将所有的券聚合在一起方便用户挑选有需要的券。 2.客服发券 为安抚、补偿客户,客服通过运营后台给指定用户发券。这个渠道知道的人应该不是很多,一般出现售后问题时并且是平台商自己的责任,客服为了安抚客户会给客户一定的补偿,这种补偿一般都是现金券。 3.系统发券 运营通过后台批量发券,通常是通过搞外部活动,收集到参与活动的uid或手机号进行定向发券。不知道大家有没有这种体验,一般在大促之前,我们之前注册过的各种电商平台都会给我们推送N多短信,提醒我们说“给您的账号里面发送了XX元优惠券,请在XX日期前登陆XX网站尽快使用”。 4.促销系统发券 单品赠券 这是一种促销方式,购买某个商品赠送指定优惠券。 满返券 这也是一种比较常见的促销手段,提升复购率的一种比较有效的方式,通常是在购买特定范围的商品达到一定的金额后即自动返给用户特定的优惠券,这种券一般都是满减券。 优惠券生命周期 上面介绍了优惠券的几种常见类型和发放渠道,下面来介绍下优惠券的生命周期,基本上就是经过了创建、投放、领取、消耗/回收、统计分析。我们按照这个生命周期看下每个环节如何设计的。 创建券流程 制券的流程涉及到优惠券具体有哪些属性,正常制券至少应该包括如下几个信息: 资源投入方:即谁来提供这批券的资源。 券的类别:私有券 or 公共券。 优惠券的名称:这里可以根据活动进行定制。 优惠券的类型:满减 or 现金券。 优惠券的面值,若是满减券的话需要达到条件的满减金额是多少? 发行数量:即这个批次的券一共要发放多少张? 优惠券的生效时间:这个比较好理解了,就是券是从什么时候生效到什么时候失效。 用户限领次数:一个用户最多允许领取几次,一般情况下一个用户都是只允许领取一次。细致点还会再分每天用户可以领取几次。 参与商品:这里就要确定下这个优惠券使用哪些商品。可以按照上面提到的几个维度进行筛选,例如按照品牌或者品类进行筛选商品范围。 这里还要考虑个稍微复杂点的场景是排除商品,可能某个品类里的商品绝大多数都可以使用这个优惠券,但是个别商品不能使用,可能是爆款或者是毛利比较低或者是国家政策等等原因,这个时候需要允许增加一个排除的范围。 投放券 投放渠道还是比较多的,上面也提到了几种主要领券的方式。 领券 领券对于用户来说比较简单,就是点击下鼠标领取优惠券,但实际这个简单的动作后台是有大量的逻辑需要运算。 用券 优惠券的用券场景主要在订单确认页,在订单确认页一般会根据用户选择的商品提示目前用户的优惠券账号里有哪些券可以使用。 因为每张券都有一定的使用门槛,或者是限定某些商品范围的商品才能使用或者限定满足一定金额的商品才能使用,所以尽管你的账号里面有很多优惠券,但在每次确认页结算时会由于你购买商品的不同导致你可以使用的优惠券也不同。这里会给用户造成比较大的迷惑,我账号里面有10张优惠券,每次结算的时候都需要用户自己去计算这次可以使用哪一张比较划算,对小白用户来说挑战还是比较大的,所以主流的电商平台都是帮用户计算好,根据用户选择的商品结合用户账号里的优惠券列表进行计算,帮助用户选出本次订单可以使用的优惠券。 具体的计算可用优惠券流程具体如下: 在查出可用券后真正用券的流程相对比较简单,提交订单后将用户选择的优惠券进行扣减。这里涉及到一个扣减优惠券的时机,是在生成订单的时候就进行扣减?还是用户支付后进行扣减?这个作为一个讨论的问题,有兴趣的可以留言交流下。 统计分析 发券的目的是为了提升销售,那么发的这些券到底有没有提升销售?对毛利率影响如何?每张订单用的这个券是谁发的?给谁用了?这都是需要进行一些列的事后的分析,这样才能计算出来这批券发的是否有意义,这里涉及比较多的财务核算的流程,本人对此领域不太擅长,为了避免误导大家这个流程就不过介绍了,有内行朋友欢迎留言指教。

Ubuntu16.04 LTS的Java环境配置总结

* Linux* 这几天刚刚折腾linux(刚刚正式接触使用的linux小白),而我安装好系统后的第一件事就是配置Java环境。此篇文章用于记录安装过程以作为备忘,如有疑问或者错误欢迎指正,一起交流,共同成长。 步骤 1.官网下载jdk http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 本人的版本是:jdk-8u121-linux-x64.tar.gz 2.安装jdk 解压缩包 .tar.gz命令:dpkg zxvf 包名 绝对路径(不指定路径则默认为当前目录) (比较详细,我是小白…..捂脸.jpg)当然,首先要做的是通过命令行进入该包所在目录或者通过绝对路径进行解压也行。我是在包所在目录解压: 相关命令行 dpkg zxvf jdk-8u121-linux-x64.tar.gz 得到下面的文件jdk1.8.0_121 将此文件用命令行移动到指定文件夹 我的是/usr/lib/Java ,Java文件夹需要自己建立 sudo mv jdk1.8.0_121 /usr/lib/Java 3.用/etc/profile文件配置环境变量及修改系统默认Java以解决配置好环境变量后仍显示未设置Java环境问题 命令行打开gedit编辑/etc/profile 注:去掉sudo,则为只读模式 sudo gedit /etc/profile 添加以下代码到profile文件末尾 export JAVA_HOME=/usr/lib/Java/jdk1.8.0_121 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin 命令行使得/etc/profile文件生效 source /etc/profile 问题来了: 到此步为止,当时我就立即测试命令java , javac 。然而,显示没有设置java环境!!!于是我网上搜资料,查明的原因是:Ubuntu下默认调用的是自带的java版本,因此需要修改默认版本设置。Ok,代码如下: sudo update-alternatives --install /usr/bin/java java /usr/lib/Java/jdk1.8.0_121/bin/java 300 sudo update-alternatives --install /usr/bin/javac javac /usr/lib/Java/jdk1.8.0_121/bin/javac 300 sudo update-alternatives --install /usr/bin/jar jar /usr/lib/Java/jdk1.8.0_121/bin/jar 300 sudo update-alternatives --install /usr/bin/javah javah /usr/lib/Java/jdk1.

iOS9系统下使用UITextField的一个坑——内容从不可见到可见会多出一个空格

最近项目测试,在产品经理手机上发现一个问题——在UITextField输入密码后点击可见会发现光标往后移了一位即输入的内容多出一个空格。效果图如下: 然而我在自己测试过程中却没有发现这个问题,于是再次在我的测试机和模拟器上进行测试,在测试完所有模拟器和测试机后问题仍没有复现。于是想,可能是系统的问题,我的模拟器以及测试机都是iOS10.0的系统,而产品经理的手机系统是iOS9.2的,于是就又上网下载了9.0模拟器进行测试。果然,在9.0的模拟器上问题复现了。在上网查资料之后也找到了解决问题的方法,代码如下: NSString * text = _passwordField.text; _passwordField.text = @” “; _passwordField.text = text; _passwordField.secureTextEnt 在点击显示按钮的时候先将一个为空格的字符串赋值给textfield,再将textfield原来的内容赋值给textfield。

Altium Designer PCB导线高亮

在Altium Designer17中,默认设置PCB导线是不高亮的 需要再设置中修改 DXP -> Perferences -> PCB Editor -> Board Insight Display 中取消勾选Live Highlighting only when Shift Key Down(只有Shift按键按下才高亮) 单击OK保存即可。 到了AD18中,设置的位置改变为

NZT 一键新机

NZT是什么 NZT是一款支持ios平台的集清理恢复机器存档,防止APP获取用户真实信息保护隐私于一体的工具。NZT软件旨在提高机器运行速度并且减少垃圾存档占用设备的储存空间,同时可以一键修改机器参数,无缝快速恢复机器备份环境。 NZT自动免费测试24小时 经过一番沉淀,NZT这一Cydia的付费插件正式采用了至今其他同行都无法复制的激活码激活方式,无需用户提供设备信息,首次安装自动激活二十四小时免费试用。一直被模仿,从未被超越!

SkypeMorph: 将通往Tor网桥的流量进行伪装成Skype流量以躲避防火墙的拦截

众所周知, Tor网络是专门用于给用户提供低延迟匿名通信的网络。在Tor网络中用户安装的Tor客户端通过公共的转发表建立起与目标服务器匿名通信的链路。但是因为这个转发表是任何人都可以获得的,那么防火墙也可以通过获得该转发表来进行拦截。在这种情况下,Tor将一部分转发表进行隐藏,只有通过特定的方式才能获得,而列表中的Tor网络的入口点便是人们所称的网桥。但防火墙依然可以通过检测流量的情况发现用户的翻墙行为.在这种情况下,作者提出一种模型,其通过skype的通信协议将客户端与网桥之间的流量进行混淆,使得防火墙等审查机构即便是通过统计比较也无法确切得出其为翻墙流量。 该模型有如下作用: 1.Tor traffic obfuscation: 将Tor流量进行混淆化,模型SkypeMorph将网桥和客户端之间的通信伪装成Skype用户之间的视频通信,用以抵抗DPI的流量分析 2. Innocuous-looking traffic: 客户端要想访问SkypeMorph的网桥就会先运行作者的模型和Tor的客户端, 从而指导Tor客户端将SkypeMorph用作传输处理协议。一旦开始, SkypeMorph先登录Skype,之后与目的网桥建立Skype通话。一旦网桥收到通话请求,客户端便会丢弃通话功能,从而保留该通道用以发送经过混淆处理之后的Tor信息。 并且作者对该流量与Skype的视频流量做了比较,并观察到对监测机构来说很难去区分两者的区别,即便是监测机构要去拦截那也会不可避免地拦截到大量合法的连接。 3. UDP-based implementation: 因为Skype主要使用UDP作为传输协议,因此在传输Tor数据的时候,作者也采用了UDP。这里用到了Tor project上的一篇博客的知识,作者是sjmurdoch,标题为Moving Tor to a datagram transport,有兴趣的读者可上google搜索,大意如下: 当前Tor的数据要想在两个节点之间的加密过的TLS信道中传输,通常都是通过TCP作为传输层协议,但是最近的研究已经表明TCP对性能的影响比较大。例如,当在两个Tor节点之间的数据包出现丢弃和损坏,TCP机制会让数据分组重传。但是与此同时,通过这对节点的所有电路都会因此停止。 点赞 1 收藏 分享 文章举报 不写情词不写诗 发布了5 篇原创文章 · 获赞 4 · 访问量 1万+ 私信 关注

Ubuntu 16.04+Gtx1050Ti+cuda 8.0+cudnn 5.1 tensorflow 安装

现在tensorflow 终于支持高版本(cuda 8.0)一键安装了,今天尝试了一下,很爽。不用折腾那么多东西。 建议安装 anaconda ,一个特别好的Python包管理器,清华大学的源有其镜像,安装速度,更新也挺快的。 其独有的虚拟环境可以将一个个环境隔离开来,互不影响,这个特别好。 我们首先安装anaconda ,这个官网有教程,整个安装过过程傻瓜化。 首先创建虚拟环境: conda create -n tensoflow python=3.7 conda create -n tensoflow python=3.4 conda create -n tensoflow python=3.5 根据习惯选一个Python版本。 tf的gpu版本现在支持直接用pip直接安装,前提是安装好cuda8.0和cudnnv5.1(必须是8.0和5.1不然会报错),然后直接在命令行下pip install tensorflow-gpu 这里说一下cuda 的安装,官网给出的安装教程前提是没有安装官方N卡驱动的。按照官网方法一步步来可以安装成功,并且很快,不需要选择就可以安装好,然后根据CUDA 的sample进行测试。一般都会安装成功 如果之前单独安装过N卡的驱动,就不要按照官网的来进行安装了,安装的时候,后面不写参数,然后到第二步骤的时候,选择不安装驱动,如果选择安装的话,会出错。

Haar-like、HoG 、LBP 三种描述方法在目标识别中的优劣

Haar-like的优势在于能更好的描述明暗变化,因此用于检测正面的人脸 HoG的优势在于能更好的描述形状,在行人识别方面有很好的效果 LBP比haar快很多倍,但是提取的准确率会低(10-20% 取决于训练对象)如果是嵌入式或者移动端的开发,推荐使用LBP。 这也解释了为什么haar应用于人的正面检测要明显好于应用于侧脸检测:正脸由于鼻子等凸起的存在,使得脸上的光影变化十分明显。而侧脸侧脸最重要的特征是形状和轮廓。 所以用HoG描述符检测侧脸更加有效。 参考原文: https://www.quora.com/Why-are-HOG-features-more-accurate-than-Haar-features-in-pedestrian-detection It’s important to look at the most prominent feature of pedestrians. There can be more than one prominent feature but the defining feature of a typical pedestrian is the outline, the legs and head shape. Hence the detection method that best captures or describes the pedestrian outline will ultimately solve the pedestrian detection problem more accurately. HoG features are capable of capturing the pedestrian or object outline/shape better than Haar features.