首页 文章 精选 留言 我的

精选列表

搜索[低空时代],共10000篇文章
优秀的个人博客,低调大师

大数据时代 隐私注定“裸奔”?

多年来,隐私和大数据之间的关系已经变得非常敏感,随着新兴技术产生大量数据,关于两者之间“辩论”才刚刚开始。 随着日常生活中数据生成设备的数量不断增长,因此关于应将数据公开,以及何时应将个人数据视为私有的争论也在不断增加。 SAP国家安全服务公司总裁兼首席执行官Mark Testoni说,“我们拥有所有信息,而且大部分情况下,我们还没有真正决定什么是私有或公有领域。” “数据公开可以带来很多便利,但同时也存在一些安全问题,”Testoni说,“在接下来的几年里,这些问题将尤为突出。” 最近很多新闻事件也涉及到这些问题:12月,阿肯色州的县检察官要求亚马逊交易客户的Echo智能扬声器的数据,原因是一名男子被发现死在客户的家中,检察官认为语音解析服务可能记录了可能解释死亡的信息。 今年1月,纽约市推出了新的法规,要求乘车服务(如Uber和Lyft)转交关于用户在哪里接机和下车的数据。该城市计划分析数据,以确保驱动程序遵守规则,要求他们连续工作不超过10个小时,但Uber鉴于涉及客户的隐私问题,拒绝提供。 关于大数据和隐私的问题在未来几年会变得更加突出。由于安全问题,城市和政府机构正在更多的地方安装摄像机。面部识别技术的进步,主要由深度学习驱动,使得视频数据更易于搜索。与此同时,消费者也正在采用新的工具,例如连接的家庭设备和健身追踪器,这些设备产生了大量数据,所有这些在理论上对刑事调查人员和国家安全机构都有用。 “我们一直对政府将要采取的措施持怀疑态度,”Testoni说,“随着公众意识的提高,人们将更加关注政府的举措,关注信息的使用情况。” Testoni表示,政府需要技术产品和服务来简“在接下来的几年里,我们将有几十亿物联网设备连接,”Testoni说,“数字化信息的数量每年都在增加一倍,关于大数据和隐私问题的辩论将继续下去。” 在接下来的几年里,我们将有几十亿物联网设备连接,”Testoni说,“数字化信息的数量每年都在增加一倍,关于大数据和隐私问题的辩论将继续下去。” 本文转自d1net(转载)

优秀的个人博客,低调大师

大数据时代的河南机遇

河南省第三届互联网大会举办了一场云计算大数据发展论坛,工信部信息化和软件服务业司司长谢少锋、安阳市副市长田海涛、华为公司全球技术服务部首席大数据顾问田向东、IBM中国开放工程技术院院长田忠等专家在论坛上发表的观点,对我省建设国家大数据综合试验区很有借鉴意义。田忠认为,今天无论是第一产业、第二产业还是服务业,都非常重视大数据的发现和使用。 河南省第三届互联网大会举办了一场云计算大数据发展论坛,工信部信息化和软件服务业司司长谢少锋、安阳市副市长田海涛、华为公司全球技术服务部首席大数据顾问田向东、IBM中国开放工程技术院院长田忠等专家在论坛上发表的观点,对我省建设国家大数据综合试验区很有借鉴意义。 田忠认为,今天无论是第一产业、第二产业还是服务业,都非常重视大数据的发现和使用。在数据的海洋中,在互联互通的环境中,数据能够随时随地得以使用,通过云计算平台进行加工、分析,能够帮助我们作出恰当的决策。 田向东说,智慧型政务是新机遇、是未来的方向,要通过云计算、大数据来支撑。他认为,在智慧城市规划上,要打破信息孤岛,构建跨部门跨区域的信息共享,进行云平台和大数据的整合,这是智慧城市当前最迫切的需求。 在这方面,我省安阳市提供了一个样本。田海涛说,安阳大数据云计算中心去年成立,搭建了政务云、民生云、企业云、物联网云四个平台,是国内地市级最大、运算速度最快的云计算中心。政府部门入驻云平台大大提升了工作效率,打造了教育、医疗等一站式生活服务平台,未来目标是实现协调办公一网通、群众办事一站通、智慧医疗一卡通、便民服务一号通。 华为公司企业业务部副总裁张怀东说,云计算为大数据的发展插上了腾飞的翅膀。他介绍说,华为已与新乡市签约建设云计算数据中心,将服务于整个中原地区。一是作为智能制造支撑中心,未来会联合全球知名企业,如PTC、西门子等公司,共同打造一个服务于华中地区、从研发设计到管理的智能化平台;二是建设现代服务业支撑平台,服务于电子商务、物流、服务外包,预计在2017年投入使用。 谢少锋说,国家已经出台了一系列政策促进大数据和云计算的发展。目前云计算已经到了成熟和爆发期,我国2015年云计算规模达到1500亿元,同时保持了高速增长,比如阿里云曾实现了一个季度翻一倍的增长。云计算产业的快速发展对大数据产业产生了巨大的牵引力。我国大数据目前还没有完全形成一个产业,但大数据有引擎的作用,它可以拉动技术的进步,拉动相关产业的发展。我们鼓励像河南这样的大数据综合试验区先行先试,为国家层面云计算、大数据的应用提供经验。 本文转自d1net(转载)

优秀的个人博客,低调大师

Android响应式编程时代——RxJava

个人博客CoorChice,https://chenbingx.github.io/ ,最新文章将会首发CoorChice的博客,欢迎探索哦 ! 同时,搜索微信公众号CoorChice,或扫描文章末尾二维码,可以关注我的微信公众号。同期文章也将会优先推送到微信公众号中,以提醒您有新鲜文章出炉。 中文官方文档 教程 一、为什么要使用响应式编程 1.尽管响应式编程代码量比普通线程处理方式代码量大,但是响应式的突出特点就是更符合人的逻辑思维,更容易被理解。 2.响应式编程目的是为了处理线程工作的,它有一个观察者(Observer)在随时待命,准备接收可观察对象(Observable)发送的数据。 3.响应式编程的代码能够按照顺序一步步执行。 二、预备概念 1.Subscriber订阅者(本质上也是一个观察者),它可以订阅一个可观察对象Observable,通常这个可观察对 象可能会是一个异步任务。2.Observable可观察对象,一个异步任务可作为一个可观察对象。可观察对象分为热和冷:热的可观察对象一创建就能够发射数据,因此订阅它的观察者Observer可能就会因为创建的比较晚而错过一些数据。冷的可观察对象需要等到有一个观察者观察它时,它才开始发射数据。 还有一种比较特 DZ殊的Observable是connectable类型的,它只有在connect()方法被调用之后才会开 始发射数据。3.Subject这是一个十分特殊的类型,它相当于一个桥梁。可以说,它既是一个Observer,又是一个 Observable。4.Scheculer调度器,用于指定工作线程。SubscribeOn()用于指定可观察者的逻辑线程,ObserveOn()用于指定订阅者的逻辑线程。 当二者都没指定时,在当前线程中工作。 当只指定了SubscribeOn(),那么就都在这个线程中工作。 当指定了ObserveOn(),那么可观察者运行在默认线程,而订阅者运行在指定线程。 操作符 一、创建操作符 create:从头开始创建可观察对象。 Log.e("MainActivity", " -> initData: " + Thread.currentThread().getName()); //使用Create操作符创建可观察者 Observable.create(new Observable.OnSubscribe<Integer>() { //发射前的逻辑处理 @Override public void call(Subscriber<? super Integer> observer) { try { if (!observer.isUnsubscribed()) { for (int i = 1; i < 3; i++) { observer.onNext(i); Thread.sleep(1000); Log.e("MainActivity", " -> call: " + Thread.currentThread().getName()); } observer.onCompleted(); } } catch (Exception e) { observer.onError(e); } } } ) //指定可观察者的逻辑线程 //.subscribeOn(Schedulers.newThread()) //指定订阅者的逻辑线程,没有指定则与subscribeOn()在同一个线程工作。如果两者都没指定,就在当前线程中工作。 .observeOn(Schedulers.io()) //可观察者发射数据 .subscribe( //创建订阅者 new Subscriber<Integer>() { @Override public void onNext(Integer item) { System.out.println("Next: " + item); Log.e("MainActivity", " -> onNext: " + Thread.currentThread().getName()); } @Override public void onError(Throwable error) { System.err.println("Error: " + error.getMessage()); } @Override public void onCompleted() { System.out.println("Sequence complete."); } }); from:通过一个集合创建可观察对象。 List<String> data = new ArrayList<>(); data.add("1"); data.add("2"); data.add("3"); // 把一个集合转化为数据按顺序发射 Observable.from(data) // 指定可观察者工作线程 .subscribeOn(Schedulers.newThread()) // 指定订阅者工作线程 .observeOn(AndroidSchedulers.mainThread()) .subscribe( s -> { Log.e("MainActivity", " ->Action1 call: " + s); Log.e("MainActivity", " -> Action1 call: thread" + Thread.currentThread()); }, throwable -> { Log.e("MainActivity", " ->Action1-Throwable call: " + throwable); Log.e("MainActivity", " -> Action1-Throwable call: thread" + Thread.currentThread()); }, () -> { Log.e("MainActivity", " ->Action0 call: "); Log.e("MainActivity", " -> Action0 call: thread" + Thread.currentThread()); }); just:同from类似,只是just的值是在()中指定的。 Observable.just(1, "3", true) // 按顺序发送三种不同类型的数据 // 订阅者的工作线程 .observeOn(Schedulers.newThread()) // 订阅 .subscribe( // 创建订阅者,范型是个可序列化对象。 new Subscriber<Serializable>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Serializable serializable) { if (serializable.equals(1)) { Log.e("MainActivity", " -> onNext: int = " + serializable.toString()); } if (serializable.equals("3")) { Log.e("MainActivity", " -> onNext: String = " + serializable.toString()); } if (serializable.equals(false)) { Log.e("MainActivity", " -> onNext: boolean = " + true); } } }); 输出结果: MainActivity: -> onNext: int = 1 MainActivity: -> onNext: String = 3 timer:在指定时间之后创建一个发射0的可观察者。 Observable.timer(2, TimeUnit.SECONDS) //通过timer创建延迟2s发射的可观察者,它会发射一个0 //指定订阅者的工作线程 .subscribeOn(Schedulers.newThread()) //订阅,并创建订阅者 .subscribe(new Subscriber<Long>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Long aLong) { Log.e("MainActivity", " -> onNext: along = " + aLong); } }); 变换操作符 变换操作符可以在发射过程中对发送的数据进行加工。 map:可在Observable发射前对初始的数据进行一次变换,通过Func1接口来进行。 Observable.just( "http://img.pconline.com.cn/images/upload/upc/tx/photoblog/1503/17/c2/3974265_1426551589288_mthumb.jpg") .map(s -> { // 在这里使用map操作符,把String类型的数据转换成了Bitmap类型,继续往下传递 try { // 下载图片 URL url = new URL(s); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setRequestMethod("GET"); conn.setDoInput(true); conn.setConnectTimeout(5000); conn.connect(); if (conn.getResponseCode() == HttpURLConnection.HTTP_OK) { InputStream is = conn.getInputStream(); byte[] bytes = new byte[1024]; ByteArrayOutputStream byteBuffer = new ByteArrayOutputStream(); int length = 0; while ((length = is.read(bytes)) != -1) { byteBuffer.write(bytes, 0, length); byteBuffer.flush(); } byte[] bmpBytes = byteBuffer.toByteArray(); Log.e("MainActivity", " -> initData: byte.size = " + bmpBytes.length); return BitmapFactory.decodeByteArray(bmpBytes, 0, bmpBytes.length); } } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; }) .map(BitmapDrawable::new) // 这里再一次把Bitmap类型的数据转换成了Drawable往下传递 .subscribeOn(Schedulers.io()) // 指定可观察者工作线程 .observeOn(AndroidSchedulers.mainThread()) // 指定订阅者的工作线程 // 订阅 .subscribe( // 创建订阅者 new Subscriber<Drawable>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Drawable drawable) { displayImage.setImageDrawable(drawable); } }); flatMap:功能与map类似,但它返回的是一个Observable<转化类型>。 APIClient.getArticles() // 在调用OnNext()之前先调用这个方法,这里的OnNext()是由Retrofit去调用的。 .doOnNext(articles -> { Log.e("MainActivity", " -> initData: itemsSize = " + articles.items.size()); articles.items.remove(0); }) // 用上一个Observable返回的结果来创建一个新的Observable .flatMap(articles -> Observable.from(articles.items)) // 这里使用了from方法创建Observable // 指定接收者的工作线程 .observeOn(AndroidSchedulers.mainThread()) // 发射给订阅者 .subscribe( // 创建订阅者 new Subscriber<Articles.ItemsTestBean>() { @Override public void onCompleted() { } @Override public void onError(Throwable e) { } @Override public void onNext(Articles.ItemsTestBean itemsTestBean) { Log.e("MainActivity", " -> onNext: item " + i++ + " = " + itemsTestBean.id); } }); 过滤操作符 filter:通过Func1接口来实现过滤掉数据源中不符合条件的数据。 Observable.just(1,2,3,4,5) //过滤出小于4的数据,并且发射它们 .filter(new Func1<Integer,Boolean>() { @Override public Boolean call(Integer item){ retrun (item<4); } }).subscribe(new Subscriber<Integer> (){ @Override public void onNext(Integer item) { System.out.println("Next: " + item); } @Override public void onError(Throwable error) { System.err.println("Error: " + error.getMessage()); } @Override public void onCompleted() { System.out.println("Sequence complete."); } }); first:只发射第一条数据,或者过滤出来的第一条数据。 Observable.just(1,2,3,4,5) //过滤出大于4的数据,并且发射只发射第一个数据 .first(new Func1<Integer,Boolean>() { @Override public Boolean call(Integer item){ retrun (item>4); } }).subscribe(new Subscriber<Integer> (){ @Override public void onNext(Integer item) { System.out.println("Next: " + item); } @Override public void onError(Throwable error) { System.err.println("Error: " + error.getMessage()); } @Override public void onCompleted() { System.out.println("Sequence complete."); } }); take:只发射前几条数据。 Observable.just(1,2,3,4,5) //只发射前3个数据 .take(3) .subscribe(new Subscriber<Integer> (){ @Override public void onNext(Integer item) { System.out.println("Next: " + item); } @Override public void onError(Throwable error) { System.err.println("Error: " + error.getMessage()); } @Override public void onCompleted() { System.out.println("Sequence complete."); } }); CoorChice的公众号

优秀的个人博客,低调大师

错配时代:《硅基加速之后:AI 时代的教育、劳动与公平制度》之序章

晚上十一点半,北京一位产品经理还坐在电脑前。屏幕左边是公司新接入的大模型助手,右边是她明天要交的需求文档。她把一句粗糙的想法输进去,模型几秒钟就吐出三版用户故事、两套功能优先级和一页竞品分析。她先是松了一口气,随后又有一点不安。过去,这些东西是她带新人一段一段改出来的;现在,新人还没学会怎么问问题,机器已经先给出了看似完整的答案。

优秀的个人博客,低调大师

Agent 时代 PWA WCO 踩坑实测

PWA 是 Google 于 2016 开始推广的实现近原生 APP 体验的 Web 应用解决方案,其拥有可安装、可离线、可推送通知等"类原生"能力。Chrome 系浏览器对其支持最为完善,国外有诸多诸多成功案例&& 大量主流网站支持(Cloudflare、github、Vercel、supabase 等网站均支持 PWA)。在国内则由于软件/硬件厂商利益问题,其理念被借鉴/融合,推出了小程序/快应用这类竞争者,PWA 本体则鲜少被网站采用。

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

WebStorm

WebStorm

WebStorm 是jetbrains公司旗下一款JavaScript 开发工具。目前已经被广大中国JS开发者誉为“Web前端开发神器”、“最强大的HTML5编辑器”、“最智能的JavaScript IDE”等。与IntelliJ IDEA同源,继承了IntelliJ IDEA强大的JS部分的功能。

用户登录
用户注册