首页 文章 精选 留言 我的

精选列表

搜索[高度可定制],共10014篇文章
优秀的个人博客,低调大师

数据认知的高度,决定了工业云互联网平台的上限!

关于物联网是否还是新鲜事物的争论一直不休。支持者惊讶于它推陈出新的理念思路和对未来的野心;看衰者着眼于它内在技术的平淡无奇,以及未来的不确定性。 然而不可否认的是,物联网已成为许多行业在发展或转型中“避无可避”的话题了。从概念争议,到实践尝试,从创新试错到升级求变,物联网被诸多传统行业探索和验证了更多未知的潜能。并在相互渗透的过程中,改变着旧的运营业态,推进行业进入全新的成长阶段。甚有幸者,或许还塑造出完全颠覆的市场格局和商业模式。 从这个角度来讲,第四次科技革命的潜力值得期待。并且,这种潜力在一些行业中,已经走在被验证的路上。其中走的最快、看的最远、同时最具规模和说服力的,非工业领域莫属。那么,工业物联网如今走到了什么阶段?两者的结合是如何相互提升彼此的?这些实践成果或能为物联网看衰者、观望者增添些信心。 对于工业而言,物联网的出现像

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

希捷:全球企业领导者应高度重视关键性数据

根据最新研究预测,2025年全球的数据量将是现在的10倍,全球领先的存储解决方案提供商希捷科技公司(NASDAQ:STX)建议全球企业的领导者更加注重未来几年推动数据增长的宏观趋势,同时评估业务流程,从产生、存储、使用和管理数据方面来挖掘数据未来的价值。 国际数据公司(IDC)白皮书《数据时代2025》(希捷赞助)预测,2025年,全球的数据信息总量将会升至163ZB,这表明注重数据价值的时代已经来临,并逐渐取代了从模拟数据向数字化转变的时期;产生、使用和管理对生活产生重要影响的数据信息,对于消费者、政府和企业的正常生活和运转必不可少。消费者和企业将持续在不同设备和云之间产生、分享和访问数据,增长速度也将超出此前的预期。 此外,《数据时代2025》还预测,2025年全球数据量产生的第一大主体将由消费者转移到企业,届时企业产生的数据量将占到全球数据总量的60%。企业领导者将可以从这些海量数据信息和其价值中获得新的商业机遇,但同时也需要对收集、使用和存储数据的策略进行详细规划。 根据IDC白皮书显示,目前数据驱动的趋势已经开始影响每一个企业,数据产生的主体正在由消费者转变为企业,其主要驱动因素如下: 由商业数据向生活关键型数据的转化——到2025年,全球数据总量的近20%将成为影响日常生活的关键数据,近10%将变为超关键数据。 嵌入式系统和物联网(IoT)——2025年,全球每天每个人与联网设备互动的次数将近4800次,平均每18秒将产生一次互动。 机器学习改变产业布局——IDC预测在2025年,全球数据的数据分析总量将增至5.2ZB,是原来的50倍。 移动和实时数据——2025年,超过25%的数据将成为实时数据,物联网实时数据将占其中的95%。 自动化和机器对机器技术将改变从传统途径产生数据的形式——娱乐内容的增长成为过去十年产生数据的主要动力。未来十年,生产力推动型和嵌入式数据,以及非娱乐性图片及视频(如监控和广告等)将成为推动数据量增长的新动力。 希捷科技首席执行官Steve Luczo表示:“新的研究表明大数据时代已经来临,但目前我们远远低估了数据蕴含的巨大潜在价值。机器人、机器学习等行业产生的分析、新业务、新想法以及新的生态系统非常振奋人心,同时其深远的社会和经济效应也在影响着我们的社会。对目前的企业以及未来的企业家而言,这将拥有巨大的挖掘数据价值的机遇,而全球企业的领导者将在未来数十年不断发掘这些机遇。” IDC高级副总裁Dave Reinsel表示:“从无人驾驶汽车到智能化的个人辅助设备,数据已成为了快速增长的数字化生活的命脉,也为企业创造了前所未有的机遇。科技创新对评估、甄别和充分处理庞大数据信息量中包含的繁琐因素非常重要,而为这些新兴技术提供服务的存储技术将发挥日益关键的作用。” 本文作者:佚名 来源:51CTO

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

Android为拨号盘dialer定制声音DTMF Tones

DTMF:双音多频,电话系统中电话机与交换机之间的一种用户信令,通常用于发送被叫号码。 双音多频的拨号键盘是4*4的矩阵,每一行代表一个低频,每一列代表一个高频,每按一个键就发送一个高频和低频的正弦信号组合。比如'1'相当于697和1209赫兹(Hz)。交换机可以解码这些频率组合并确定所对应的按键。 现在我就想给自己的拨号键盘加上双音多频的声音,类似于固定电话拨号的声音。 页面就不贴出来了,类似于系统的拨号盘。 public class DialActivity extends Activity implements OnClickListener{ private static String TAG = "【DialApp】"; private static final int PLAY_TONE = 0x01; private static final int DTMF_DURATION_MS = 120; // 声音的播放时间 private Object mToneGeneratorLock = new Object(); // 监视器对象锁 private ToneGenerator mToneGenerator; // 声音产生器 private static boolean mDTMFToneEnabled; // 系统参数“按键操作音”标志位 // 存储DTMF Tones private static final HashMap mToneMap = new HashMap(); static { mToneMap.put('1', ToneGenerator.TONE_DTMF_1); mToneMap.put('2', ToneGenerator.TONE_DTMF_2); mToneMap.put('3', ToneGenerator.TONE_DTMF_3); mToneMap.put('4', ToneGenerator.TONE_DTMF_4); mToneMap.put('5', ToneGenerator.TONE_DTMF_5); mToneMap.put('6', ToneGenerator.TONE_DTMF_6); mToneMap.put('7', ToneGenerator.TONE_DTMF_7); mToneMap.put('8', ToneGenerator.TONE_DTMF_8); mToneMap.put('9', ToneGenerator.TONE_DTMF_9); mToneMap.put('0', ToneGenerator.TONE_DTMF_0); mToneMap.put('#', ToneGenerator.TONE_DTMF_P); mToneMap.put('*', ToneGenerator.TONE_DTMF_S); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //按键声音播放设置及初始化 try { // 获取系统参数“按键操作音”是否开启 mDTMFToneEnabled = Settings.System.getInt(getContentResolver(), Settings.System.DTMF_TONE_WHEN_DIALING, 1) == 1; synchronized (mToneGeneratorLock) { if (mDTMFToneEnabled && mToneGenerator == null) { mToneGenerator = new ToneGenerator( AudioManager.STREAM_DTMF, 80); // 设置声音的大小 setVolumeControlStream(AudioManager.STREAM_DTMF); } } } catch (Exception e) { Log.d(TAG, e.getMessage()); mDTMFToneEnabled = false; mToneGenerator = null; } /* * 拨号按钮注册监听事件 * */ } @Override public void onClick(View view) { int id = view.getId(); //点击按钮的id Integer currentTone; //获得当前的Tone switch(id){ case R.id.digit1: mToneMap.get("1"); break; case R.id.digit2: mToneMap.get("2"); break; . . . } if (null != currentTone) { //第一种方式,采用Handler消息机制进行发声 Message msg = mHandler.obtainMessage(PLAY_TONE, currentTone); mHandler.sendMessage(msg); //第二种方式,直接调用playTone(int tone)方法,不知道二者有何区别?希望大家给点意见。 // playTone(currentTone); } } /** * 处理按键响应事件的消息 */ private Handler mHandler = new Handler() { @Override public void handleMessage(Message msg) { try { switch (msg.what) { case PLAY_TONE: Integer tone_id = (Integer) msg.obj; if (tone_id != null) { playTone(tone_id.intValue()); } break; } } catch (Exception ex) { Log.d(TAG, ex.getMessage()); } } }; /** * 播放按键声音 */ private void playTone(int tone) { if (!mDTMFToneEnabled) { return; } AudioManager audioManager = (AudioManager) getSystemService(Context.AUDIO_SERVICE); int ringerMode = audioManager.getRingerMode(); if (ringerMode == AudioManager.RINGER_MODE_SILENT || ringerMode == AudioManager.RINGER_MODE_VIBRATE) { // 静音或者震动时不发出声音 return; } synchronized (mToneGeneratorLock) { if (mToneGenerator == null) { Log.w(TAG, "playTone: mToneGenerator == null, tone: " + tone); return; } mToneGenerator.startTone(tone, DTMF_DURATION_MS); //发出声音 } } } ,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

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

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

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部分的功能。

用户登录
用户注册