2019年

  在 GitHub Universe 2019 大会举办的首日,GitHub 宣布推出移动版应用(GitHub for mobile),支持 iOS 和 Android 两大主流移动平台。

  GitHub 移动版应用采用原生开发,界面方面没有照搬 PC 端网站的设计,而是针对移动端提供了专为触摸屏设计的新界面,还提供了通知功能,当用户被直接 @ 的时候,就能够收到悬浮通知,方便开发者随时随地查看代码、合并更改以及共享协作等。当然还包含对关闭通知等滑动操作的支持。

GitHub for mobile

 GitHub for mobile 作为原生应用,它采用了响应式设计,因此可以适配任意屏幕尺寸和分辨率,并且原生支持深色模式,具有不错的用户体验。

  开发者现在已可申请试用 iOS Beta 版;Android 版则开放了申请通道,申请通过后当 Android Beta 发布时,GitHub 会通过电子邮件通知您。

  GitHub for mobile 下载和申请地址:https://github.com/mobile/beta

异常信息如下:

java.lang.SecurityException: getDeviceId: Neither user 10065 nor current process has android.permission.READ_PHONE_STATE.

原因:动态权限的问题
Android 6.0 (API Level 23) 及以后引入了运行时权限,安装 APP 时不再授予所有需要的权限,而是在运行的时候根据需要向用户请求权限,而且用户可以随时取消已经授予的权限。

推荐开源库:

GitHub 上有个对开源库 https://github.com/googlesamples/easypermissions 进行二次封装的开源库 https://github.com/forJrking/HeiPermission 还不错,可以尝试下。

参考链接:
http://blog.csdn.net/github_33304260/article/details/53328297
https://developer.android.com/training/permissions/requesting.html

工信部也是明确了携号转网的事情,简单来说就是从 12 月开始执行。

  工业和信息化部印发《携号转网服务管理规定》,管理规定指出,电信业务经营者在提供携号转网服务过程中,不得有下列行为:

  1、无正当理由拒绝、阻止、拖延向用户提供携号转网服务;

  2、用户提出携号转网申请后,干扰用户自由选择;

  3、擅自扩大在网期限协议范围,将无在网期限限制的协议有效期和营销活动期默认为在网约定期限,限制用户携号转网;

  4、采取拦截、限制等技术手段影响携号转网用户的通信服务质量;

  5、在携号转网服务以及相关资费方案的宣传中进行比较宣传,提及其他电信业务经营者名称(包括简称、标识)和资费方案名称等;编造、传播携号转网虚假信息或者误导性信息,隐瞒或淡化限制条件、夸大优惠事项或携号转网影响、欺骗误导用户,诋毁其他电信业务经营者;

  6、为携号转网用户设置专项资费方案和营销方案;

  7、利用恶意代客办理携号转网、恶意代客申诉等各种方式,妨碍、破坏其他电信业务经营者携号转网服务正常运行;

  8、用户退网后继续占用该携入号码。

  携号转网就是在不变更电话号码的前提下更换运营商的移动网络服务,用户办理携号转网需要结清与携出方电信费用,与携出方无在网约定期限限制的协议或以解除在网期限限制,并入网已满 120 个自然日。

  在满足上述条件之后,用户可以编辑短信 CXXZ#用户名#身份证号,发送至当前运营商(拟转出运营商)热线,查询是否具备携转资格。满足条件后,用户可向携出方申请携转授权码,并向携入方申请办理携入。

sqlserver百分比运算

select ltrim(Convert(numeric(9,2),25*100.0/30))+'%' As 百分比
- 得到百分比小数
select Cast(Convert(numeric(9,2),25*100.0/30) as decimal(18,2)) As 百分比小数

说明

NUMERIC(P,S) P的默认值是:38 S的默认值是:-84~127
numeric(a,b)函数有两个参数,前面一个为总的位数,后面一个参数是小数点后的位数,例如numeric(5,2)是总位数为5,小数点后为2位的数,也就是说这个字段的整数位最大是3位。

java1.8可以使用stream()流的方法,如下

List<Integer> numbers = Arrays.asList(1,2,3,4,5,6,7,8,9,10);
int chunkSize = 20;   //3 ok
AtomicInteger counter = new AtomicInteger();

Collection<List<Integer>> resultList = numbers.stream()
      .collect(Collectors.groupingBy(it -> counter.getAndIncrement() / chunkSize))
      .values();

System.out.println(resultList);

使用第三方工具类的方法:

  • Google Guava has Lists.partition(List list, int size) method (docs)
  • Apache Commons Collections has ListUtils.partition(List list, int size) method (docs)

举例说明:
Check out Lists.partition(java.util.List, int) from Google Guava:
Returns consecutive sublists of a list, each of the same size (the final list may be smaller). For example, partitioning a list containing [a, b, c, d, e] with a partition size of 3 yields [[a, b, c], [d, e]] -- an outer list containing two inner lists of three and two elements, all in the original order.

免责声明
本博客部分内容来自于互联网,不代表作者的观点和立场,如若侵犯到您的权益,请联系[email protected]。我们会在24小时内进行删除。