首页 文章 精选 留言 我的

精选列表

搜索[Bug修复],共10000篇文章
优秀的个人博客,低调大师

微软修复了存在20年的漏洞,揭秘“以图搜图” | 宅客周刊

1. 腾讯科恩实验室,站在0和1之间的人 你可以认为计算机是数学的分支。因为编程常用的正则表达式和数学中的“Kleene 代数”是完全等价的。而现在所有的计算机都是图灵机,它在本质上和“Lamda 演算”是完全等价的。 吴石在与宅客讲这段话的时候,他的眼神淡定而祥和,和那些看穿世界本质的先知别无二致。 对于一个拥有数百万行代码的程序来说,没有人可以用穷举的方法来判断它究竟是否存在漏洞。但是使用数学工具把它抽象出来,而且通过经验筛选,只模拟你关心的那一部分。这样就把一个穷举问题,转化成了运算问题。 吴石告诉宅客,由于公式和软件之间是模拟映射,所以很可能在同样的位置出现问题。 例如在数学中存在“除零”问题。如果零作为被除数,将会导致运算无法进行。如果在模拟的公式里出现了除零问题,那么在真正的软件里非常可能存在同样的问题。 “宇宙的秘密”在

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

从一次 Toast 消失 bug 说起

上个月在做后台管理系统的消息通知模块时,遇到一个很典型的 React 问题:用户点击某个消息后,弹出一个自动消失的 Toast 提示,结果快速连续点击几次后,Toast 在预期时间之前就消失了,有的甚至永远不消失。排查下来发现是 useEffect 的清理函数使用不当导致的。这类问题在真实开发中并不少见,尤其是涉及定时器、事件监听、WebSocket 订阅或者异步请求时,开发者容易忽略清理逻辑,或者把清理函数写在了错误的位置。这篇文章会从这个问题出发,讲清楚 useEffect 清理函数的执行时机、依赖数组如何影响清理行为,以及如何为定时器、事件监听和异步请求写出正确的清理逻辑。

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

开发者反馈 DeepSeek-V3.1 出现严重 bug:返回内容随机插入“极/極/extreme”等字符

近日有开发者反馈DeepSeek V3.1在生成文本时会在完全不可预期的位置插入“极”“極”“extreme”三个token。 开源社区用户给出多组复现场景:在 Go 等语言生成里,模型会把词元「粘」到标识符中,`Second` 前随机插入「极/極/extreme」,即便是 `top_k=1, temperature=1` 的保守解码也躲不过。 问题最早在火山、chutes等第三方API被发现,最初怀疑与IQ1_S高压缩量化、imatrix校准数据异常或部署配置错误有关,但随后测试证实官方网页端在FP8全精度下亦出现同样现象,且官方端出现概率最低,第三方显著升高。 中文简体“极”对应ID 2577,繁体“極”对应ID 16411,英文“extreme”对应ID 15075。 社区推测可能是训练数据清洗残留,或与模型“偷懒”机制相关,但部分案例仍无法解释。一旦触发,后续生成会愈发频繁,已严重影响编程及任何对结构敏感的任务可用性。

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

【一周】CentOS 8与.NET Core 3,Win 10与bug 10,微软Python与谷歌Kotlin教程

回顾一周社区热门资讯 第【四十一】期:20190921-20190927 点击相应标题,跳转阅读全文。 Haiku 操作系统现已支持 Node.js Haiku 操作系统继承自商业操作系统 BeOS,而 BeOS 里面,大量输出信息使用俳句的形式(Haiku 翻译过来就是俳句,俳句是日本的三行诗,以其静谧、优雅、简洁著称,所以这是一款够诗意够文艺的系统)。 JavaScript 引擎 V8 Lite Mode 改造 V8 开发团队发现专门为这个 Lite 模式所做的内存优化其实也可以迁移到原来的V8 上,直接两开花。V8 团队近日发表了一个文章,就详细分享了在构建 V8 Lite 的过程中将一些关键的优化部分带到现有 V8 上的过程,以及在实际工作负载中对 V8 性能表现的影响。 微软推出Python免费在线教程视频 Node.js 后端框架排名(2019 年 9 月) 根据 GitHub Star 数量作了个Node.js 后端框架排名,发布时间以首个版本发布(0.x)为准。 微软开源其 C++ 标准库实现STL 微软近日宣布开源其 MSVC 的 C++ 标准库实现(也就是 STL),该库实现是 MSVC 工具集和 Visual Studio IDE 的一部分。 NPM CEO 宣布离职,为 npm 商业化背锅? Bryan 于今年 1 月开始担任 NPM CEO,这是npm 商业化计划的一部分,NPM 表示,任职期间,Bryan 使公司走上了确保全球最大的软件注册表持续可用的道路,并引入了新的服务和增强功能,满足了其 1100 万用户的需求。 VS Code Python 将支持Jupyter Notebook ReactOS 0.4.12 发布,Windows 系统的开源替代方案 效力微软 15 年的前员工解释 Windows 10 为什么问题如此多 纳德拉在上任时宣布微软进行大规模重组,同时纳德拉提出“移动为先云为先”的口号,即桌面平台不再是重点。在重组过程中纳德拉将操作系统的整个测试团队全部裁撤,接下来还将 Windows 10/Xbox/Windows Phone 合并。 .NET Core 3.0 稳定版发布 数十万 PhpStudy 用户被植入后门,快来检测你是否已沦为“肉鸡”! 从 2016 年起,黑客利用该“后门”犯罪作恶一发不可收拾,大量中招的电脑沦为“肉鸡”执行危险命令,不计其数的用户账号密码、电脑数据、敏感信息被远程抓取和回传。据统计,黑客已控制了超过 67 万台电脑,非法获取账号密码类、聊天数据类、设备码类等数据 10 万余组,而此案也是 2019 年以来,国内影响最为严重的供应链攻击事件。 CentOS 8 正式发布 首批开源 Linux 智能手机 Librem 5 已开始发货,外观神似 iPhone Chromium 内核新款 Edge 浏览器对比评测,微软找回面子全靠它了 新款 Edge 浏览器可能会随 Windows 10 20H1 更新直接登陆 Windows 10 系统,并取代现有的老款 Edge 浏览器。 开源公司抱团取暖,讨论如何在云厂商“寄生”下生存 上周OSS Capital 召集一些开源公司,组织了一场关于如何面对“云厂商给开源带来的危害”的会议。 谷歌推出 Kotlin免费在线课程 Nim 1.0 发布,命令式编程语言 Nim(原名 Nimrod)是一个新型的静态类型、命令式编程语言,支持过程式、函数式、面向对象和泛型编程风格而保持简单和高效。Nim 从 Lisp 继承来的一个特殊特性——抽象语法树(AST)作为语言规范的一部分,可以用作创建领域特定语言的强大宏系统。 TextMate 2.0 正式发布,免费开源的老牌代码编辑器 TextMate 是一款在 macOS 平台拥有 16 年历史的代码编辑器,多语言支持、版本控制、全局搜索等基础功能样样俱全。值得一提的是,TextMate 曾在 2006 年获得过 Apple Design Award 中的最佳开发人员工具奖。 谷歌发布适用于入门级智能机的 Go 版 Android 10 Android 10 Go 版专为运行内存不超过1.5 GB 的手机量身定制。尽管它不具备 Android 10 的所有功能,但新版的 light 操作系统应该能够将应用程序启动速度提高 10%,并使应用程序之间的切换速度更快。 不满公司与反移民政府机构合作,开发人员删库抗议 随着特朗普的反移民政策,成千上万的移民儿童与父母分离,美国移民和海关执法局(ICE)也成为众矢之的。因此,当开源开发者 Seth Vargo 发现 Chef 公司最近与 ICE 签订了合同后,便撤回了他的开源项目 Chef Sugar。 可以将道德条款纳入开源许可证吗? Chrome 更新导致部分 macOS 的文件系统损坏,无法重启 受影响的 macOS 用户可重新启动至恢复模式(Recovery Mode),再输入特定指令以移除该 Chrome 更新,这样就可恢复受损的文件系统。 辞去 FSF 主席的 RMS 仍然是 GNU 项目的负责人 RMS 在邮件列表中发言,表示目前他仍然是 GNU 项目的负责人,即首席 GNUisance。

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

最蛋疼的bug:读取图片缩略图(一定要在相冊查看下形成缓存)

近期的一个连接服务端的应用。须要读取图片,一般供用户公布商品选择上传图片。初始的图片列表应该是缩略图。仅仅有确定了,才上传原图,OK不多说上代码 package edu.buaa.erhuo; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import org.json.JSONArray; import org.json.JSONObject; import android.net.Uri; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.app.Activity; import android.app.AlertDialog.Builder; import android.app.ProgressDialog; import android.content.DialogInterface; import android.content.Intent; import android.view.Menu; import android.view.View; import android.view.View.OnClickListener; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.EditText; import android.widget.ImageView; import android.widget.Spinner; import android.widget.TextView; import android.widget.Toast; import edu.buaa.erhuo.R; import edu.buaa.erhuo.Utils.NetworkUtils; public class PubActivity extends Activity {private EditText et_title,et_des;private Button btn_choose,btn_addSubmit;private Spinner spinner_typeId;private ArrayAdapter<String> adapter;private List<String> allValues = new ArrayList<String>();private List<Integer> allTypeIds = new ArrayList<Integer>();private Handler handler;private ImageView photoImg;private String filePath;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_pub);et_title=(EditText)findViewById(R.id.et_title);et_des=(EditText)findViewById(R.id.et_description);btn_choose=(Button)findViewById(R.id.btn_choose_photo);btn_addSubmit=(Button)findViewById(R.id.btn_add_submit);spinner_typeId=(Spinner)findViewById(R.id.spinner_type);photoImg=(ImageView)findViewById(R.id.img_photo);handler=new Handler(){public void handleMessage(Message msg) {if (msg.what==0) {//有网络且读取到数据adapter=new ArrayAdapter<String>(PubActivity.this, android.R.layout.simple_spinner_item,allValues);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);spinner_typeId.setAdapter(adapter);}else if (msg.what==1) {//提交到后台成功Toast.makeText(PubActivity.this,"加入成功",Toast.LENGTH_SHORT).show();et_title.setText("");et_des.setText("");spinner_typeId.setSelection(0);photoImg.setImageURI(null);filePath=null;}else if (msg.what==2) {//提交到后台失败Toast.makeText(PubActivity.this,"加入失败",Toast.LENGTH_SHORT).show();}}};// 调用工具类。 查询全部的商品分类数据Thread t=new Thread(){public void run() {try {JSONArray array=NetworkUtils.getJSONArrayByUrl(NetworkUtils.GET_ALL_PRODUCT_TYPE_URL);System.out.println(array+"kane...........");// 循环查询到的数据。保存到List集合里for (int i = 0; i < array.length(); i++) {JSONObject obj = array.getJSONObject(i);allValues.add(obj.getString("type_name"));allTypeIds.add(obj.getInt("type_id"));}handler.sendEmptyMessage(0);} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}};t.start();btn_addSubmit.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {final ProgressDialog dialog=new ProgressDialog(PubActivity.this);dialog.setTitle("提示");dialog.setMessage("正在提交数据.........");dialog.show();Thread t=new Thread(){public void run() {Map<String,String> params=new HashMap<String, String>();params.put("product.product_name",et_title.getText().toString());params.put("product.description",et_des.getText().toString());params.put("product.type_id", allTypeIds.get(spinner_typeId.getSelectedItemPosition()).toString());if (filePath==null) {try {String result=NetworkUtils.postDataByUrl(NetworkUtils.PRODUCT_INSERT_URL, params);if (result.equals("ok")) {handler.sendEmptyMessage(1);}else {handler.sendEmptyMessage(2);}} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();handler.sendEmptyMessage(2);}}else {try {String result = NetworkUtils.postFileByUrl(NetworkUtils.PRODUCT_INSERT_URL, params,filePath);if (result.equals("ok")) {handler.sendEmptyMessage(1);} else {handler.sendEmptyMessage(2);}} catch (Exception e) {e.printStackTrace();handler.sendEmptyMessage(2);}}dialog.dismiss();}};t.start();}});btn_choose.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View arg0) {Builder builder=new Builder(PubActivity.this);builder.setTitle("请选择");builder.setItems(new String[]{"拍照","从相冊选择"}, new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialogInterface, int which) {switch (which) {case 0:Intent intent=new Intent(PubActivity.this,CameraActivity.class);startActivity(intent);break;case 1:Intent in = new Intent(PubActivity.this,SelectImageActivity.class);startActivityForResult(in, 1);break;}}});builder.setPositiveButton("取消",new DialogInterface.OnClickListener() {public void onClick(DialogInterface dialogInterface, int which) {// TODO Auto-generated method stub} });builder.create().show();}});} //请求的activity返回一个结果@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {if (resultCode == RESULT_OK) {filePath = data.getStringExtra("filePath");photoImg.setImageURI(Uri.fromFile(new File(filePath)));}} } package edu.buaa.erhuo; import java.io.File; import java.util.HashMap; import java.util.List; import java.util.Map; import edu.buaa.erhuo.adapter.PhotoImageAdapter; import android.net.Uri; import android.os.Bundle; import android.provider.MediaStore; import android.provider.MediaStore.Images; import android.provider.MediaStore.Images.Media; import android.provider.MediaStore.Images.Thumbnails; import android.app.Activity; import android.app.AlertDialog.Builder; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.database.Cursor; import android.view.Menu; import android.view.View; import android.widget.AdapterView; import android.widget.ImageView; import android.widget.AdapterView.OnItemClickListener; import android.widget.GridView; public class SelectImageActivity extends Activity {private GridView gridView;private PhotoImageAdapter adapter;private List<Map<String, Object>> allValues=new ArrayList<Map<String,Object>>(); @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_select_image);gridView=(GridView)findViewById(R.id.grid);//取得数据,Thumbnails缩略图,必须先相冊查看形成缓存,不然没有缩略图Cursor c=getContentResolver().query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI, null,null,null,null);c.moveToFirst();while (!c.isAfterLast()) {Map<String,Object> map=new HashMap<String, Object>();//相应原图的IDmap.put("imageId",c.getLong(c.getColumnIndex(Thumbnails.IMAGE_ID)));//DATA就是路径名map.put("filepath",c.getString(c.getColumnIndex(Thumbnails.DATA)));allValues.add(map);c.moveToNext();}c.close(); adapter=new PhotoImageAdapter(allValues, this);gridView.setAdapter(adapter);gridView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> arg0, View arg1, int position,long arg3) {final Map<String,Object> map=allValues.get(position);Builder builder=new Builder(SelectImageActivity.this);builder.setTitle("确定使用这张好照片吗?");ImageView img=new ImageView(SelectImageActivity.this);img.setImageURI(Uri.fromFile(new File(map.get("filepath").toString())));builder.setView(img);builder.setPositiveButton("确定", new OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {//获取图片原始位置//须要关联查询Cursor c=getContentResolver().query(Images.Media.EXTERNAL_CONTENT_URI,null,Media._ID+"= ? ", new String[]{map.get("imageId").toString()}, null);String realPath=null;if (c.moveToFirst()) {realPath=c.getString(c.getColumnIndex(Media.DATA));}c.close();Intent in=new Intent();in.putExtra("filepath",realPath);setResult(RESULT_OK,in);//给调用此activity的源头发给回馈信息finish();}});builder.setNegativeButton("取消",new OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {// TODO Auto-generated method stub}});builder.create().show();}});} } 须要用到的adapter package edu.buaa.erhuo.adapter; import java.io.File; import java.util.List; import java.util.Map; import android.content.Context; import android.net.Uri; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.AbsListView.LayoutParams; import android.widget.BaseAdapter; import android.widget.ImageView; import edu.buaa.erhuo.R; import edu.buaa.erhuo.Utils.Globals; public class PhotoImageAdapter extends BaseAdapter {private List<Map<String, Object>> allValues;private Context ctx;public PhotoImageAdapter(List<Map<String, Object>> allValues, Context ctx) {this.allValues = allValues;this.ctx = ctx;}@Overridepublic int getCount() {return allValues.size();}@Overridepublic Object getItem(int position) {return allValues.get(position);}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if (convertView == null) {convertView = LayoutInflater.from(ctx).inflate(R.layout.grid_image_line, null);convertView.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, Globals.SCREEN_HEIGHT / 6));}Map<String, Object> map = allValues.get(position);ImageView img = (ImageView) convertView.findViewById(R.id.photo_img_line);img.setImageURI(Uri.fromFile(new File(map.get("filePath").toString())));return convertView;} } 本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5287369.html,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

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

腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

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

Spring

Spring

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

用户登录
用户注册