首页 文章 精选 留言 我的

精选列表

搜索[编写],共10033篇文章
优秀的个人博客,低调大师

优雅的在终端中编写Python

前言 最早我也只是在服务器上编辑文件的时候用用vim来改改程序,并没有把vim当做自己的主力编辑器。但是偶然的一次机会需要改一个奇葩的输入文件的格式,用了下Vim的宏录制,尝到了甜头,于是后面就开始用Vim来写程序了,虽然使用初期有些阻力,但时间久了就会发现,双手再也不用离开键盘,即使使用sublime这样的编辑器我也要改成使用Vim模式,Vim真的能让自己一思维的速度编辑文本(对我来说就是写程序了)。 正好最近换了新的电脑,需要在新电脑上配置一下,就干脆把一些配置相关的东东记录下来吧,相关的配置文件我都放在了github(PytLab/dotfiles) 上并写了相应的安装和卸载脚本,给有需要的同学做个参考吧。 本文是有关配置的文章,并不对Vim的核心技巧进行说明,有需要的童鞋可以参考文档和相关书籍。这里主要配合tmux和vim可以更

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

android 编写简易视频播放器

public class VideoActivity extends Activity {private static final String TAG = "VideoActivity";private EditText filenameText;private SurfaceView surfaceView;private MediaPlayer mediaPlayer; @Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.main); ButtonClickListener listener = new ButtonClickListener(); ImageButton playButton = (ImageButton) this.findViewById(R.id.play); playButton.setOnClickListener(listener); ImageButton pauseButton = (ImageButton) this.findViewById(R.id.pause); pauseButton.setOnClickListener(listener); ImageButton resetButton = (ImageButton) this.findViewById(R.id.reset); resetButton.setOnClickListener(listener); ImageButton stopButton = (ImageButton) this.findViewById(R.id.stop); stopButton.setOnClickListener(listener);// 重点 这个地方需要设置回调函数 继承Callback 类实现三个方法 surfaceView.getHolder().addCallback(new myCallback()); filenameText = (EditText) this.findViewById(R.id.filename); surfaceView = (SurfaceView) findViewById(R.id.surfaceView); surfaceView.getHolder() .setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);// 设置这个大小 surfaceView.getHolder().setFixedSize(176, 144); mediaPlayer = new MediaPlayer(); }private class myCallback implements android.view.SurfaceHolder.Callback { @Overridepublic void surfaceChanged(SurfaceHolder holder, int format, int width,int height) {// TODO Auto-generated method stub } @Overridepublic void surfaceCreated(SurfaceHolder holder) {// TODO Auto-generated method stub } @Overridepublic void surfaceDestroyed(SurfaceHolder holder) {// TODO Auto-generated method stub } }// 当来电话的时候需要停掉播放业务@Overrideprotected void onPause() {if (mediaPlayer.isPlaying()) mediaPlayer.pause();super.onPause(); } @Overrideprotected void onResume() {if (mediaPlayer.isPlaying()) mediaPlayer.pause();super.onResume(); } @Overrideprotected void onDestroy() {if (mediaPlayer.isPlaying()) mediaPlayer.stop();// 注意这个地方是释放 mediaPlayer.release();super.onStop(); }private class ButtonClickListener implements View.OnClickListener { @Overridepublic void onClick(View v) {try { String filename = filenameText.getText().toString();switch (v.getId()) {case R.id.play:// 得到文件名称 重点代码 String filenames = filenameText.getText().toString();// 第一步对给对象进行重设 mediaPlayer.reset();// 设置流的类型 关键代码 mediaPlayer.setAudioStreamType(AudioManager.STREAM_MUSIC);// 设置数据来源 mediaPlayer.setDataSource("/sdcard/" + filenames); // 设置需要播放的视频// 把视频输出到显示控件上 重点代码 mediaPlayer.setDisplay(surfaceView.getHolder());// 播放时前需要缓冲一下 mediaPlayer.prepare(); mediaPlayer.start();break;case R.id.pause:if (mediaPlayer.isPlaying()) { mediaPlayer.pause(); } else { mediaPlayer.start(); }break;case R.id.reset:if (!mediaPlayer.isPlaying()) { mediaPlayer.start(); }// 跳回到起始的地方重新播放 mediaPlayer.seekTo(0);break;case R.id.stop:if (mediaPlayer.isPlaying()) { mediaPlayer.stop(); }break; } } catch (Exception e) { Log.e(TAG, e.toString()); } } } } 本文转自java豆子博客园博客,原文链接:http://www.cnblogs.com/error404/archive/2011/08/25/2153546.html,如需转载请自行联系原作者

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

《PHP精粹:编写高效PHP代码》——导读

目 录 第1章 面向对象编程1.1 为什么要使用面向对象编程1.2 OOP简介1.3 对象的继承1.4 对象和函数1.5 public、private以及protected1.6 接口1.7 异常1.8 更多神奇的方法1.9 本章小结第2章 数据库2.1 数据持久化和Web应用程序2.2 选择如何存储数据2.3 用MySQL建立一个食谱网站2.4 PHP数据库对象2.5 处理PDO中的错误2.6 高级PDO特征2.7 设计数据库2.8 数据库—排序第3章 API3.1 开始之前3.2 面向服务的架构3.3 数据格式3.4 HTTP:超文本传输协议3.5 设计一个Web服务3.6 提供的服务

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

前瞻:Flutter 编写的全新 Ubuntu 安装程序

在两年前,我们就报道过 Canonical 的设计团队和 Ubuntu 桌面团队正在为 Ubuntu 开发一套新的安装程序。该安装程序将会充分利用 Flutter、Curtin(旨在快速安装 Ubuntu) 和 Subiquity(Ubuntu Server 安装程序和设置工具) 等技术的优势。 之所以要开发一套全新的安装程序,这其中最主要的原因还是现有技术的老化。Ubuntu 目前使用的桌面端镜像文件采用的还是基于 Ubiquity 的安装程序,而 Ubiquity 最早是于 2010 年首次推出,在当时它具有不错的功能性和适度的快速性,不过随着时间的推移,Ubiquity 古老且复杂的代码库所引发的问题就暴露出来了。 时间来到 2023 年,距离最初宣布已经过了两年,随着即将到来的 Ubuntu 23.04(Lunar Lobster),Canonical 似乎也已经准备好为其 Ubuntu 系统部署这个全新开发的安装程序了。 这个新的基于 Flutter 的安装程序已经存在一段时间了,不过目前想要试用它的话,用户必须下载 Ubuntu 23.04 的每日构建版,该版本现在已经默认使用新版安装程序来代替旧的带有 GTK 界面的 Ubiquity。 新的安装程序具有一个更加现代一些、也稍微美观一点的用户界面,除此之外,新的安装程序启动与旧的安装程序看起来没有太大的差异,并且安装流程和功能与之前的安装程序也基本相同。 不过新版本的安装程序在整个安装流程中改进了一些选项,并增加了一些初始设置。以下图为例,与原本的语言选择页面相比,新版本更好地将键盘布局选择与语言页面结合在了起来,而不是将其分割成两个不同的选择页面。 在新增的设置中,用户现在可以一开始就选择是否连接到 Wi-Fi 网络,以及在安装系统时就选择使用浅色或深色主题。 可以选择标准的 Ubuntu Linux 桌面安装或最小安装,也可以在安装时选择专有的图形驱动和 WiFi 支持,以及额外的多媒体编解码器。 默认情况下,Ubuntu 23.04 继续以 EXT4 作为文件系统选择。考虑到 F2FS(Flash-Friendly File System)已经成为 EXT4 的一个重要竞争对手,以及 F2FS 已经被广泛使用。Ubuntu 新的安装程序并没有一个让用户容易选择 F2FS 的选项,虽然用户可以通过 "Something else" 区域来设置,相对而言还是没有那么方便快捷。 原本 Ubuntu 具有原生的 Active Directory 集成功能,运行 Ubuntu 的设备可以在安装时加入 Active Directory (AD) 域以进行集中配置。Active Directory 管理员可以管理 Ubuntu 设备并从 Active Directory 域控制器配置系统设置。 但新的安装程序中暂时没有对 Active Directory 的支持,目前还不清楚 Canonical 是否会在 Ubuntu 23.04 发布前实现它。除此之外,在安装过程中下载更新的功能也暂时还没有。 最后,就是在安装后的 "安装完成" 界面,新版安装程序现在提供了一个关闭系统的选项。 总的来说,与之前的 Ubiquity 安装程序相比,新版本除了底层发生了巨大变化,在使用过程中用户可感知的变化还是比较小的。 这就是目前最新的 Ubuntu 23.04 安装程序的情况,在 4 月正式发布之前,Ubuntu 23.04 的安装程序可能还会有进一步的改进。如果你想尝试一下新的安装程序,你可以从这里下载最新的 Ubuntu 23.04 每日构建版。由于这是操作系统的预发布版本,在生产设备上安装该系统前请一定要仔细考虑清楚。 更多截图:

资源下载

更多资源
优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Mario

Mario

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

Spring

Spring

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

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册