Mac OS X

Hacker News 简讯 2020-08-08

大兔子大兔子 提交于 2020-10-30 06:44:36
最后更新时间: 2020-08-08 23:01 The Psychedelic Inspiration for Hypercard (2018) - (mondo2000.com) Hypercard迷幻灵感(2018) 得分:136 | 评论:58 Bootstrap finance and the cost of other people's money [pdf] - (cust.edu.pk) 自助融资与他人资金成本[pdf] 得分:62 | 评论:20 Google speakers are listening to more than just voice commands - (protocol.com) 谷歌的演讲者听的不仅仅是语音命令 得分:103 | 评论:71 Ask HN: What feature did you find after years of using macOS? 问HN:在使用macOS多年之后,你发现了什么特性? 得分:34 | 评论:41 Tunable Delete Aware LSM Engine - (bu.edu) 可调删除感知LSM引擎 得分:10 | 评论:0 So You Want to Learn Physics (2016) - (susanjfowler.com) 所以你想学物理(2016) 得分:161 | 评论

Clang交叉编译初识

可紊 提交于 2020-10-29 18:27:10
最近工作中要编译一个第三方的C库用于iOS端使用,我直接在Mac OS的终端中./configure & make & make install常规走下来,却无法在真机iOS上使用,提示“ Symbol(s) not found for architecture arm64 ”! 通过命令file *.a或者lipo -info *.a,可以看到生成的静态库文件时x86_64架构的。 编译器粗略分为词法分析,语法分析,类型检查,中间代码生成,代码优化,目标代码生成,目标代码优化。把中间代码生成及之前阶段划分问编译器的 前端 ,那么后端与前端是独立的。 前端 主要指与源语言有关但与目标机无关的部分,包括词法分析、语法分析、语义分析与中间表示生成。 后端 主要指与目标机有关的部分,包括代码优化和目标代码生成等。 iOS 中的 armv7,armv7s,arm64,i386,x86_64 都是什么? arm64:iPhone6s | iphone6s plus|iPhone6| iPhone6 plus|iPhone5S | iPad Air| iPad mini2(iPad mini with Retina Display) armv7s:iPhone5|iPhone5C|iPad4(iPad with Retina Display) armv7:iPhone4|iPhone4S

Python使用Selenium实现淘宝抢单的流程分析

为君一笑 提交于 2020-10-29 16:21:20
最近 ,小明为了达成小姐姐的愿望,在某宝买到心仪的宝贝,再加上又迷上了python,就通过python轻而易举地实现了(个人声明:对Java来说,这并不是背叛)。 需求分析&前期准备 需求其实很简单,正常购物。那我们平常的购物流程如下所示: 开始之前,我们需要准备一下程序运行环境。 环境系统:Windows/Mac OS Python版本:3.7.2 为了让程序模拟我们每一步操作,给大家介绍一个利器:Selenium Selenium测试同学应该会感觉特别亲切。它是一个自动化测试工具,通过它我们可以驱动浏览器执行特定的动作,如点击、下拉等等操作,所见即所得。 Selenium的安装 运行如下命令: pip install selenium 但若想使用Selenium成功调用Chrome浏览器完成相应的操作,我们还需要一个媒介与浏览器对接。小明本次使用的是Chrome浏览器,因此就需要通过ChromeDriver来驱动。 ChromeDriver的安装 这里是谷歌浏览器ChromeDriver的官方下载地址: https://chromedriver.storage.googleapis.com/index.html 我们需要根据自己的Chrome浏览器版本,找到相应版本的ChromeDriver,再根据你电脑系统的平台类型进行下载、解压。 windows

微信小程序入门教程之一:初次上手

风格不统一 提交于 2020-10-28 11:03:52
微信是中国使用量最大的手机 App 之一,日活跃用户超过3亿,月活跃用户超过11亿( 2019年底统计 ),市场极大。 2017年,微信正式推出了小程序,允许外部开发者在微信内部运行自己的代码,开展业务。这引发了热烈反响,截止2020年6月,小程序数量已经超过了 550万个 。 小程序已经成为国内前端的一个重要业务,跟 Web 和手机 App 有着同等的重要性。小程序开发者供不应求,市场招聘需求极其旺盛,企业都抢着要。 尽管如此,小程序的教程却很缺,要么是不够系统,要么就是跳跃性太大,很多关键的地方寥寥数语,初学者摸不着头脑。我自己学的时候,就苦于找不到好一点的教程。 本文就是我的小程序学习笔记,整理成教程的形式,希望对于初学者有用。需要学会的主要知识点,我都会讲到,我的目标是你读完这个教程,就能学会怎么写小程序。 考虑到很多同学并没有开发经验,小程序是他们接触的第一个开发领域。我会讲得比较细,希望新人也能没有困难地阅读这个教程。由于内容比较多,这个教程将分成四次连载。 所有示例的完整代码,都可以从 GitHub 的 代码仓库 下载。 一、小程序是什么? 学习小程序之前,先简单说一下,它到底是什么。 字面上讲,小程序就是微信里面的应用程序,外部代码通过小程序这种形式,在微信这个手机 App 里面运行。 但是,更准确的说法是, 小程序可以视为只能用微信打开和浏览的网站。

了不起的 Deno 入门教程

冷暖自知 提交于 2020-10-28 06:22:27
一、Deno 简介 Deno 是一个 JavaScript/TypeScript 的运行时,默认使用安全环境执行代码,有着卓越的开发体验。Deno 含有以下功能亮点: 默认安全。外部代码没有文件系统、网络、环境的访问权限,除非显式开启。 支持开箱即用的 TypeScript 的环境。 只分发一个独立的可执行文件(deno)。 有着内建的工具箱,比如一个依赖信息查看器(deno info)和一个代码格式化工具(deno fmt)。 有一组经过审计的 标准模块,保证能在 Deno 上工作。 脚本代码能被打包为一个单独的 JavaScript 文件。 Deno 是一个跨平台的运行时,即基于 Google V8 引擎的运行时环境,该运行时环境是使用 Rust 语言开发的,并使用 Tokio 库来构建事件循环系统。Deno 建立在 V8、Rust 和 Tokio 的基础上,它的架构如下: (图片来源:https://deno.land/manual/contributing/architecture) 1.1 Rust Rust 是由 Mozilla 主导开发的通用、编译型编程语言。设计准则为 “安全、并发、实用”,支持函数式、并发式、过程式以及面向对象的编程风格。Deno 使用 Rust 语言来封装 V8 引擎,通过 libdeno 绑定,我们就可以在 JavaScript

tmux终端意外出现控制字符

安稳与你 提交于 2020-10-28 03:42:11
Mac下iterm里运行tmux异常案例。 tmux是一个优秀的终端工具。在以前,其实我是screen党,因为足够简单。 接触tmux后,发现它也够简单,而且相比screen比较实用的一点是,在screen里,无法按下ctrl+a组合键回到当前命令行的行首,而tmux则可以,于是就可耻的 ” 叛变了“。 相对于Screen,它也更好用:支持屏幕切分(横切、竖切),支持在一个终端里开启多个会话,也有更丰富的命令行参数。 macos下,用iterm登入远程主机,进入tmux,按下shift+空格/回删,或者ctrl+回删,都会出现控制字符。 #手速稍微快一些,就会出来好几个控制字符 [root@yejr.run tmp] # 7;2u ;2u 7;5u -bash: 7: command not found -bash: 2u: command not found -bash: 2u: command not found -bash: 5u: command not found #在mysql客户端里也会出现 root@yejr.run [ test ]>select *;2u from t1; 只需要把远程主机的TERM环境变量改成ansi/vt100之类的就没事。 [root@yejr.run ~] # env | grep TERM TERM=xterm [root@yejr

推荐一款万能抓包神器:Fiddler Everywhere

若如初见. 提交于 2020-10-27 16:54:14
搞IT技术的同行,相信没有几个人是不会抓包这项技能的(如果很不幸你中枪了,那希望这篇文章给你一些动力),市面上的抓包工具也有很多,常用的有: Charles 、 Fiddler 、 Burpsuite 、 WireShark 、 mitmproxy 如果从市场使用率来讲,特别是对于Windows用户来说, Fiddler 抓包使用人群占比最多。 由于 Fiddler 基于.NET开发,对于像我这类Mac系统的资深用户来讲,显然不太合适,为了解决Mac下使用Fiddler的问题,早在2016年官方出过一款名为 Fiddler for OS X Beta 1 尝试来解决这类问题, 但这款工具必须通过Mono才可以在Mac上使用。并且在Mac上使用是非常不稳定, 有非常多的问题。 所幸的是,在2018年,官方又进一步推出了一款名为: Fiddler Everywhere 的抓包工具,今天就给大家聊一聊这款工具。 虽然Mac下GUI抓包工具,首推Charles,但多掌握一项抓包工具,对自己肯定是没有坏处。 1. Fiddler Everywhere 介绍 从名称上来看,就大概能猜出它的寓意,官方也通过一段话,解释了 Fiddler Everywhere 的作用: Fiddler Everywhere is a web debugging proxy for any browser, any

MNN默认优化

前提是你 提交于 2020-10-27 11:14:08
MNN是一个轻量级的深度神经网络推理引擎,在端侧加载深度神经网络模型进行推理预测。目前,MNN已经在阿里巴巴的手机淘宝、手机天猫、优酷等20多个App中使用,覆盖直播、短视频、搜索推荐、商品图像搜索、互动营销、权益发放、安全风控等场景。此外,IoT等场景下也有若干应用。 整体特点 轻量性 • 针对端侧设备特点深度定制和裁剪,无任何依赖,可以方便地部署到移动设备和各种嵌入式设备中。 • iOS平台:armv7+arm64静态库大小5MB左右,链接生成可执行文件增加大小620KB左右,metallib文件600KB左右。 • Android平台:so大小500KB左右,OpenCL库300KB左右,Vulkan库300KB左右。 通用性 • 支持Tensorflow、Caffe、ONNX等主流模型文件格式,支持CNN、RNN、GAN等常用网络。 • 支持 149 个TensorflowOp、47 个CaffeOp、74 个 ONNX Op;各计算设备支持的MNN Op数:CPU 110个,Metal 55个,OpenCL 29个,Vulkan 31个。 • 支持iOS 8.0+、Android 4.3+和具有POSIX接口的嵌入式设备。 • 支持异构设备混合计算,目前支持CPU和GPU,可以动态导入GPU Op插件,替代CPU Op的实现。 高性能 • 不依赖任何第三方计算库

Python 爬虫从入门到进阶之路(三)

拈花ヽ惹草 提交于 2020-10-27 05:37:09
之前的文章我们做了一个简单的例子爬取了百度首页的 html,本篇文章我们再来看一下 Get 和 Post 请求。 在说 Get 和 Post 请求之前,我们先来看一下 url 的编码和解码,我们在浏览器的链接里如果输入有中文的话,如: https://www.baidu.com/s?wd= 贴吧,那么浏览器会自动为我们编码成: https://www.baidu.com/s?wd=%E8%B4%B4%E5%90%A7 ,在 Python2.x 中我们需要使用 urllib 模块的 urlencode 方法,但我们在之前的文章已经说过之后的内容以 Python3.x 为主,所以我们就说一下 Python3.x 中的编码和解码。 在 Python3.x 中,我们需要引入 urllib.parse 模块,如下: 1 import urllib.parse 2 data= { " kw " : " 贴吧 " } 3 # 通过 urlencode() 方法,将字典键值对按URL编码转换,从而能被web服务器接受。 4 data = urllib.parse.urlencode(data) 5 print (data) # kw=%E8%B4%B4%E5%90%A7 6 # 通过 unquote() 方法,把 URL编码字符串,转换回原先字符串。 7 data = urllib.parse

tmux终端意外出现控制字符

北城以北 提交于 2020-10-26 23:36:19
Mac下iterm里运行tmux异常案例。 tmux是一个优秀的终端工具。在以前,其实我是screen党,因为足够简单。 接触tmux后,发现它也够简单,而且相比screen比较实用的一点是,在screen里,无法按下ctrl+a组合键回到当前命令行的行首,而tmux则可以,于是就可耻的”叛变了“。 相对于Screen,它也更好用:支持屏幕切分(横切、竖切),支持在一个终端里开启多个会话,也有更丰富的命令行参数。 macos下,用iterm登入远程主机,进入tmux,按下shift+空格/回删,或者ctrl+回删,都会出现控制字符。 #手速稍微快一些,就会出来好几个控制字符 [root@yejr.run tmp]# 7;2u ;2u 7;5u -bash: 7: command not found -bash: 2u: command not found -bash: 2u: command not found -bash: 5u: command not found #在mysql客户端里也会出现 root@yejr.run [test]>select *;2u from t1; 只需要把远程主机的TERM环境变量改成ansi/vt100之类的就没事。 [root@yejr.run ~]# env | grep TERM TERM=xterm [root@yejr.run ~]#