范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

无意苦争春,一任群芳妒!M1mac能否支撑全栈工程师的日常?

  就像大航海时代里突然诞生的航空母舰一样,苹果把玩着手心里远超时代的M1芯片,微笑着对Intel说:"不好意思,虽然你也玩桌面芯片,但是,从今天开始,游戏就已经结束了,X86?还是省省吧。"
  十五年前,iPhone横空出世,乔布斯告诉世人什么才叫做真正的智能手机,十年前,A4处理器粉墨出场,iPhone瞬间猛虎添翼,性能这两个字从此没有友商敢在苹果面前提及,iPad更是在业界呼风唤雨,几乎把整个平板市场都收入囊中,在人们的脑海中,Pad就是iPad的代名词,安卓平板?不存在的。今时今日,Apple Silicon华丽登台,不必说M1堪称恐怖到爆炸的性能,也不必说十个小时以上的超长续航以及丝滑无迟滞的FCPX极速剪辑体验,单是通过Rosetta 2 虚拟运行X86应用,就已经足以让人感到惊艳了。然而,这些福利只是苹果对于产品级用户的馈赠,作为一名开发者,而且是全栈(全干)开发,M1能否应对繁复的开发环境?就像一位研发同事说的那样:"Hi,哥儿们,你不会花一万大洋买了个ipad+秒控键盘吧?这智商税有点贵啊"。
  首先是Python3的开发环境,python官网已经释出适配M1芯片的3.9版本,https://www.python.org/downloads/release/python-392/ ,但其实目前生态和市场占有率最高的还是3.7,笔者是通过迁移助理将老mac book pro里的开发环境(x86)直接迁移过来的,也就是迁移了原电脑的python3.7.4,令人意外的是,通过Rosetta 2,大部分的基础库都可以使用,除了首次运行稍显迟滞以外: liuyue:~ liuyue$ python3 Python 3.7.4 (v3.7.4:e09359112e, Jul  8 2019, 14:54:52)  [Clang 6.0 (clang-600.0.57)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import pandas >>> import cv2 >>> import numpy >>> import matplotlib >>> import nltk >>> import ssl >>> from nltk.stem.lancaster import LancasterStemmer
  但是一些深度学习框架比如TensorFlow就不行了,解决方案还是得从官网下载适配M1的3.9版本,然后再下载支持M1芯片的Tensorflow2.4,下载链接:https://link.zhihu.com/?target=https%3A//www.cyberlight.xyz/static/file/download_and_install.sh,换句话说,想用TensorFlow训练模型你就得升级python版本,可是很多TensorFlow项目都是和Web应用结合使用的,如果单独为了TensorFlow升级python,就需要将原来的项目分开部署,接口也得重构,尤其一些"祖传项目"就更不好弄了,这无疑提高了开发者的开发成本。
  再来说说测试,自动化测试工具selenium是我们经常使用的工具之一,使用场景非常广泛,但是在M1系统里面我们通过Rosetta 2虚拟的python3.7能否控制arm64版本的chrome呢?答案是可以的,因为chromedriver已经对M1芯片进行了适配,下载驱动:http://npm.taobao.org/mirrors/chromedriver/88.0.4324.96/ 注意要选择m1版本的驱动,随后解压,将chromedriver文件拷贝到系统目录中: sudo mv chromedriver /usr/local/bin
  随后启动浏览器: from selenium import webdriver import time   #selenium 截图 driver = webdriver.Chrome() driver.get("https://v3u.cn") time.sleep(3) driver.close()
  问题并不大,所以如果单纯用M1 Mac用来写自动化测试脚本或者爬虫不会有太大压力,但是,如果涉及科学计算的结果测试,可能就得折腾一下了。
  再聊聊虚拟机,虚拟机无论是测试岗还是运维岗基本都会用到,因为有些应用在Win和Mac系统中展示出的效果不尽相同,目前虚拟机两大巨头Vmware和Parallels都在加紧适配,Parallels领先一步,首先释出了兼容M1芯片的测试版虚拟机,不过需要先注册获取注册码:https://b2b.parallels.com/apple-silicon
  随后在该页面下载安装包进行安装即可,需要注意的一点是,注册的时候一定要记录一下注册码,否则安装成功后没有码进行激活就尴尬了。
  与此同时微软也适时的发布了基于arm内核的win10测试版镜像,下载地址:https://www.microsoft.com/en-us/software-download/windowsinsiderpreviewARM64 当然了,因为一些众所周知的学术问题,导致下载速度不尽如人意,笔者已经将安装包和镜像上传网盘,在文章底部会贴出来。
  安装好Parallels以后,将arm版win10镜像导入即可安装,只需要5分钟左右就可以安装成功:
  虽然是测试版,但是整体上运行起来非常行云流水,别忘了在系统内添加中文默认语言包:
  在M1 Mac中玩虚拟机,几乎没有迟滞感,顺滑的令人咋舌,风扇纹丝不动,且能耗也并没有显著增加,续航也没有因为虚拟机的出现而减少太多,这是M1非常惊艳的一点。
  想要用Mac做开发,包管理工具Homebrew是无法绕过的一环,所以如果你是通过迁移助理把老的x86架构的直接迁移到M1的mac中,那么最好别用了,会出很多问题,解决方案就是安装 arm版的Homebrew
  执行安装命令: /bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"
  基于arm的Homebrew统一安装在系统的/opt/homebrew目录,主要是为了和老版的x86区别开。
  随后添加环境变量: echo export PATH=/opt/homebrew/bin:$PATH >> ~/.bash_profile  source ~/.bash_profile
  接着执行: liuyue:~ liuyue$ brew update Already up-to-date. liuyue:~ liuyue$
  如果返回Already up-to-date.就没问题了,基本上目前Homebrew大概有7成左右的软件支持M1芯片,具体适配列表可以参照:https://github.com/Homebrew/brew/issues/7857
  可以看到,像数据库如mysql、redis都进行了适配,mysql还有一些小bug,介意的同学可以考虑Rosetta,下面我们来看看用arm版的Homebrew来安装reids的流程:
  安装命令: brew install redis
  一般brew会获取最新稳定版,安装成功后,查看软件列表: liuyue:~ liuyue$ brew list openssl@1.1	redis liuyue:~ liuyue$
  此时启动服务: liuyue:bin liuyue$ redis-server 36148:C 24 Feb 2021 21:13:48.673 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo 36148:C 24 Feb 2021 21:13:48.673 # Redis version=6.2.0, bits=64, commit=00000000, modified=0, pid=36148, just started 36148:C 24 Feb 2021 21:13:48.673 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf 36148:M 24 Feb 2021 21:13:48.673 * Increased maximum number of open files to 10032 (it was originally set to 256). 36148:M 24 Feb 2021 21:13:48.673 * monotonic clock: POSIX clock_gettime                 _._                                                              _.-``__ ""-._                                                    _.-``    `.  `_.  ""-._           Redis 6.2.0 (00000000/0) 64 bit   .-`` .-```.  ```/    _.,_ ""-._                                     (    "      ,       .-`  | `,    )     Running in standalone mode  |`-._`-...-` __...-.``-._|"` _.-"|     Port: 6379  |    `-._   `._    /     _.-"    |     PID: 36148   `-._    `-._  `-./  _.-"    _.-"                                     |`-._`-._    `-.__.-"    _.-"_.-"|                                    |    `-._`-._        _.-"_.-"    |           http://redis.io           `-._    `-._`-.__.-"_.-"    _.-"                                     |`-._`-._    `-.__.-"    _.-"_.-"|                                    |    `-._`-._        _.-"_.-"    |                                     `-._    `-._`-.__.-"_.-"    _.-"                                          `-._    `-.__.-"    _.-"                                                  `-._        _.-"                                                          `-.__.-"
  然后开启另一个命令行连接服务: liuyue:~ liuyue$ redis-cli 127.0.0.1:6379> ping PONG 127.0.0.1:6379>
  可以看到和x86的brew用起来没有区别,只不过上面的软件或多或少有些bug,用起来要小心。
  如果你觉得arm版的brew速度过慢,可以单独设置国内源: git -C "$(brew --repo)" remote set-url origin https://mirrors.ustc.edu.cn/brew.git   git -C "$(brew --repo homebrew/core)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-core.git   git -C "$(brew --repo homebrew/cask)" remote set-url origin https://mirrors.ustc.edu.cn/homebrew-cask.git   echo "export HOMEBREW_BOTTLE_DOMAIN=https://mirrors.ustc.edu.cn/homebrew-bottles" >> ~/.bash_profile source ~/.bash_profile
  中科大的镜像稍微靠谱一点。
  有同学说,那还有三成的软件怎么搞?另外看起来arm的brew并不打算适配老版本软件,比如python3.7,其实在M1 的mac系统也可以装一版x86的brew,安装 x86 的 Homebrew: arch -x86_64 /bin/bash -c "$(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)"
  装好之后,它还是在原来的/usr/local/bin/brew里面,这样就和/opt/homebrew/bin/brew 区分开了
  执行命令: liuyue:~ liuyue$ /usr/local/bin/brew list autoconf	gmp		libtool		openssl@1.1	siege automake	icu4c		libyaml		perl		sqlite boost		isl		lua		pkg-config	thrift coreutils	libevent	mkcert		python@3.8	trash gcc		libgpg-error	mpfr		readline	xz gdbm		libksba		mtr		redis		yarn gettext		libmpc		node		ruby		zlib
  可以看到这些都是我从老的x86电脑中迁移过来的软件,大部分都用不了,比如redis,而基于arm的brew安装的新redis是可以使用的: liuyue:~ liuyue$ /opt/homebrew/bin/brew list openssl@1.1	redis
  所以用M1 mac做开发,就有点分裂,新软件包记住用/opt/homebrew/bin/brew,老的用:/usr/local/bin/brew
  接着来看看Docker,Docker官方对于M1的适配还是很重视的,早些时候放出来一个测试版客户端:https://docs.docker.com/docker-for-mac/apple-m1/
  不仅可以拉取arm版的镜像,也可以操作Kubernetes,对于Kubernetes不熟悉的同学可以参照这篇文章:一寸宕机一寸血,十万容器十万兵|Win10/Mac系统下基于Kubernetes(k8s)搭建Gunicorn+Flask高可用Web集群。
  不过令人遗憾的是,Docker Hub 支持 arm 版本的镜像并不多,大抵在x86镜像的三、四成左右,但是可以看出来各大厂商对于M1都是比较看重的,基本上官方都有适配的消息流出。
  对于其他的语言来说,比如 go lang、ruby、以及php等,都有一个和python一样的通病,就是老版本不支持arm内核,只适配了最近的一个或者两个版本,这样也导致如果你换电脑的话,就得考虑向下兼容性问题。
  对于一些常用的开发软件,比如vscode 和 sublime 3 都可以正常运行,php套件xampp运行无障碍,版本控制客户端SourceTree、数据库客户端Navicat、微信、QQ、SSH客户端iTerm 4以及Ftp客户端FileZilla都可以正常运行,前端微信小程序开发工具还是会有几率闪退,腾讯一开始对big sur就适配的不好,M1就更别提了。
  值得一提的是,设计软件Photoshop最新版2021暂时还不支持M1芯片,只能凑合先用2019版的,与之形成对比的就是FCPX10.5的完美表现,看来还是亲儿子给力,Adobe还得加把劲了。
  综上,如果您是一个初学者,只是想学习一些语言的基础语法,没打算写一些复杂工业级项目,可以考虑入手M1,它将会是您入门的好帮手,但是如果您在业内已经混迹多年,经常编译一些复杂代码、各种库,甚至手里还有一些"祖传代码"项目在维护,那么x86的Mac可能还得陪您一两年。
  最后,上面提到的适配M1芯片的安装包和镜像请移步:
  链接: https://pan.baidu.com/s/12d7fHl_ZYyx4Xk-v0R0N_g 密码: 1fdc 需要的同学自行下载
  结语:有时候,当我们称赞一项技术的时候,我们会称其为这样或者那样的行业标杆、教科书之类,但是对于M1的Mac book来说,它好像已经超越了所谓的标杆,而成为了跨越时代的不朽经典。苹果作为业内完美的六边形战士,还依然在探索,依然没有裹足不前,继续探索新的道路,继续钻研可行性,这是它带给我们的启示,然而,在2021年的这个春天里,面对开发者,M1芯片有点像悲情的俄尔普斯,它能用动人的绕梁琴声打动开发者们,却在最后一秒钟忍不住回眸,断送挽救爱妻欧莉蒂克的最后机会,很明显,它已经足够努力,但是还差那么一点点,就差一点了,但是我相信,神明早已在M1的命格中写下四个字:注定辉煌。

心慌出虚汗是怎么回事?可能是你的阳气虚了平时阳气虚的人容易造成心慌,多汗,这个事儿如何来解释呢?首先我们说这个人呢,阳气虚指的哪儿呢?阳气虚一般指的是肾的阳气虚,当一个人肾阳虚的时候,有时候会出现什么?会出现寒气,阳虚下原神极品UID大赛,全服仅有一个的9连号出现了,还有9炸号前言贪生怕死角斗士,勇往直前少女心,欢迎来到龙百万探索原神,本期分享一下原神游戏中的8个极品UID,值得一提的是,全服仅有一个9连号出现了,而且还出现了9炸号。UID,在原神游戏中任健悟道论道传道王阳明居黔二十四境黄平县飞云崖美景如画,这是王阳明月潭留书之地(杨林森摄)王阳明龙场悟道处,位于贵阳市修文县城东的栖霞山上(作者供图)提要通过对王阳明相关文献的梳理,他在贵州悟道论道传道共计留下二十网易翻拍从前有座灵剑山?绝对演绎邀请女玩家,出演毒舌美人师尊要说最受欢迎的国漫IP,从前有座灵剑山绝对榜上有名。灵剑山原本是小说,不仅陆续被改编成了漫画和动画,还推出了由许凯和张榕容主演的真人影视剧,可以说是口碑和热度兼具。而如今,网易旗下排队上万人?逆水寒四周年涌入10万玩家,第一主播都差点没挤进去当下社会,事物火爆与否的衡量标准通常是看其是否排队,网络游戏自然也是一样。对于网游来说,排队玩家人数可以直观的体现一款游戏的热度。逆水寒4年前开服就造就了万人排队的盛况,令人惊讶的2022年NBA选秀大会尘埃落定,火箭选择贾巴里,塔里伊森,泰泰记录贴,昨天上午的选秀大会班切罗在状元位被魔术抢走,可惜了他手上的火箭红配色腕表,作为一直的火箭绯闻选秀目标,祝福你在魔术也能兑现自己的天赋火箭的探花签选择了贾巴里,17顺位塔里伊勇士离队第一人!11分库里替身确定走人,0分躺冠被186天才取代北京时间6月25日,金州勇士队在今年的选秀大会上大获全胜,作为一个成功的冠军球队,他们竟然还握有三个选秀权,可以通过选秀继续建队。勇士证明了他们想要成为一个王朝球队,不需要交易走队蔡斌糊涂!郎平爱将无球可打,29岁刘晏含真比上金烨王云璐吗万众瞩目的排球世界联赛打得火热,如今女排已经打完安卡拉站和菲律宾站的比赛,中国女排拿到了5胜3负的成绩,蔡斌带领一支新的女排队伍打出这样的成绩是可圈可点的,输得3场比赛,其中美国女NBA魔术状元签爆冷挑杜克高人2022年NBA选秀会在昨天登场,手握状元签的魔术队跌破专家眼镜,选入来自杜克大学的前锋班切罗,反倒原先被评估是状元人选的奥本大学前锋史密斯落入第三顺位被火箭挑中,而第二顺位的雷霆国乒四大主力要出手了!七月WTT女乒赛场,小将退场,主将登场对于中国女乒来说,如果说六月份属于小将,是小将们锻炼的时间那么,七月份就将属于主将和次主将,是主力们抢分的时间了。即在夏日WTT赛场,八朵小花结束历练之旅,而四朵金花将随之登场要出国乒世界第一突然退赛,刘丁硕替补入围!王皓解释樊振东为何退出国乒世界第一突然退赛,刘丁硕替补入围!王皓解释樊振东为何退出。国际乒联在前几天就公布了2022年WTT匈牙利布达佩斯球星挑战赛的参赛选手名单,国乒一共有12人参赛,可令人意外的是,
贾静雯别再卖少女人设了,离了滤镜,蜡黄的皮肤和皱纹出卖了她滤镜不断都是一个十分神奇的东西。如今很多人拍照根本上都要靠美颜相机或者是滤镜才行呢,由于它会给人自动补妆看起来十分的有气色,有时分你不化装用一个美颜相机看起来就和化了妆一样的。但是OK组合VS艾弗森的总冠军赛季,科比奥尼尔旗鼓相当?用事实说话提到NBA历史上最强二人组,OK组合应该排名前列。OK组合获得过三连冠,这期间的大鲨鱼正处于个人最巅峰时刻,所展现的统治力是历史级别的,而科比则快速成长,在争冠中同样发挥了巨大的作曾凡博出场时间创新高得5分4篮板2助攻点燃队三分险胜国王北京时间11月29日0600,20212022赛季NBA发展联盟常规赛,点燃队114111战胜斯托克顿国王队。中国球员曾凡博出场19分钟创个人出场时间新高,得到5分4个篮板,还有2通过这7个步骤,来实现一次完美的背包旅行背包客必备知识每一个背包客最初的徒步准备工作都不会很完美,几乎都是犯了所有可能犯的错误。但随着时间的推移,活动次数的增加,徒步计划技能都会提高,会不断增加旅行的安全度,提高旅行的质量,并积累更多恒大新帅带队中超首秀时间敲定,曾被三顾茅庐邀请,如今终于如愿日前,中国足协官宣确认中超第二阶段联赛,将在12月12日开打。其中广州队将在12月13日,迎来北京国安的挑战。届时不出意外的话,广州队对阵国安的比赛,就将成为新帅郑智带队正赛首秀。广东男篮拜年!赵睿正式亮相,外援狂飙中文,阿联压轴出场北京时间1月31日,除夕至,新春到!广东东莞大益男篮全体将士给各位拜年视频,吸引众多媒体和球迷的关注。主教练杜锋祝广东的球迷朋友,虎虎生威,心想事成。总经理朱芳雨大家好,在这里祝福6位有望夺冠的冬奥明星谷爱凌身价攀升,羽生结弦热衷整理国旗冬奥明星私下萌点武大靖胆小不敢蹦极,羽生结弦金博洋惺惺相惜引言。冰雪2022北京冬奥会开幕在即,观众们都在期待自己喜欢的运动员能否如愿拿到奖牌。在这些参加北京冬奥会的运动员中,有6保罗狂轰20819无缘今日最佳球员?因为唐斯打出赛季最佳一战今天是中国的除夕大年夜,NBA也有多场精彩的比赛,东契奇蒙克特雷杨约基奇保罗康宁汉姆布克等人打出了精彩的表现,但是要评选今日最佳球员的话,还是毫无悬念的。我们一起来看一下具体情况吧宝藏男孩宁忠岩,打破场地纪录夺冠,期待首次北京冬奥之旅2019年12月,相信全中国的速滑迷们都不会忘记这个日子。速度滑冰世界杯的金牌,阔别数年,重新回到了中国。时隔56年,中国战士重回战场。而摘取这块金牌的中国小将惊艳了赛场的所有人。北京冬奥会舒心连心安心美英冰壶运动员北京冬奥会初印象来源新华社新华社北京1月30日电(记者谭畅张悦姗)冰壶是北京冬奥会首个开赛项目,近日陆续有冰壶运动队入住冬奥村,走进国家游泳中心冰立方探馆。饮食起居舒心文化交流连心防疫举措安心,这寒冷干燥的冬季总感觉喉咙痛,不要病急乱投医,学会4点或许有用随着冬季气温的逐渐下降,当人们外出时,很容易受到外界冷空气的干扰,导致我们的喉咙出现一些炎症,这时我们就会感觉到喉咙部位又干又痛。在寒冷的北方由于气温比较低,所以很多家庭都会使用一