如何看待Chrome将在2020年底不再支持Flash,这将会对国内互联网造成什么样的冲击? 获取链接 Facebook X Pinterest 电子邮件 其他应用 - 八月 24, 2019 那些老网站是这辈子都不会改用现代技术实现的,flash 在未来相当长的一段时间里依然摆脱不了 (话说 chrome 76 里好像已经开始默认禁用 Flash 了,必须在 chrome://settings/content/flash 里进行设置才能使用 Flash) 获取链接 Facebook X Pinterest 电子邮件 其他应用 评论
给你的git仓库瘦身 - 九月 07, 2019 很久没有写博客了,最近遇到了一个git问题,比较典型,记录下来与大家分享。 我们使用git版本控制的时候享受了很多便利,不管是代码合并,分支提供给我们的并发,但我们也往往忽略了每次提交之后在我们本地项目根目录下.git文件夹里面的存储变化。我遇到的git“臃肿”问题就是因为在提交的时候把较大文本加入版本控制,在其他人拉取更新反推远程分支的时候,每一次都会加剧.git下面的objects的文件夹大小,最终的结果就是再也无法顺利从远程pull,也无法顺利clone该项目。 关于.git的产生和相关文件,可见此文的详细讲解:http://www.jianshu.com/p/fa31ef8814d2 。 简单的说,每一次提交修改的改变都会以文件的形式存储在本地项目根目录下的.git中,会在.git/objects下面形成一个Blob(一段二进制数据)文件记录。这意味着,即使你只改动了某个文件的一行内容,Git 也会生成一个全新的对象来存储新的文件内容。所以git仓库随着时间变化会自增长,我们往往忽视了这种潜在的危险。 下面来就我遇到的问题来思考解决方案,其实由于.git过大,我们可以从两种方向去思考,第一种治标不治本的方法:压缩git仓库。第二种删除git提交记录中大文件,在gc压缩。第一种方法是比较直接快捷的,可以使用命令:git gc --prune=now。 当你再次du -hs的时候会发现仓库大小有一定的变小。其实git自身在可承受范围内会自动用gc帮你压缩打包,所以除非真的遇到pull,push都困难的时候,可以不用手动执行。这个方法明显的缺点在于压缩的效果有限,且大文件还一直在之后的每次提交中,为以后埋下隐患。 本人更推荐第二种方法,大文件对象再删除。 先查找大文件,命令如下: git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')" 例如删除nspatientList1.txt文件: git filter-branch --force --index-filter 'git rm -rf -... 阅读全文
Follow.is Feed Verification - 十月 12, 2024 This message is used to verify that this feed (feedId:68119418071751680) belongs to me (userId:67570460419266560). Join me in enjoying the next generation information browser https://follow.is. 阅读全文
编程语言简介 - 十二月 14, 2019 OIer从入门开始,使用的只有C++语言,最多听说过Pascal,可能以为编程只存在于OI了。殊不知,这是坐井观天的行为,井外还有一整个大千世界。了解、学习一下其余编程语言,对于提升OIer的个人素养无疑是极有好处的。 注:可能带有个人观点或列举不全,欢迎补充和纠正 编程语言的分类 此处依据语言范式分类。语言范式,即语言的计算模型,是区别各语言的一个重要的特征。另外还有领域专用语言-通用语言等的区分,留给OIer课后了解。 命令式 包括C++、C、Pascal、Java等 命令式程序明显的有“命令”的特征,即其程序由一行行指令构成,电脑按次序执行这一行行指令。 命令式可进一步细分为面向对象和面向过程,可以自行了解。 函数式 包括Haskell等 函数式语言最明显的特征是其没有副作用(即没有赋值语句与变量),这导致了其程序有高度的可并行性。函数式语言的工作原理为“映射”,通过函数将输入数据映射成输出数据。 函数式语言的工作方式较反人类,这导致了其较难推广和在工程上大规模使用。 纯函数式语言似乎只有Haskell,其余均为多范式语言,这体现了函数式语言的小众。 声明式 包括SQL、Prolog等 该语言最显著的特征是高度专业性。语言通过描述解的特征来给出解,类似于描述蛋糕的外观,产生制作蛋糕的程序。这导致该语言只能在一个特定的领域工作,例如SQL在数据库领域,Prolog在逻辑推理领域。 SQL已在工业中广泛运用。 多范式 包括F#、Scala、Lisp系等。 该语言支持多种编程范式,可以说是结合了多种范式的优点。大多数语言是综合了命令式和函数式,有助于程序员一边用着命令式一边尝试其函数式特性。C++在面向对象的传播中起到了类似作用。 此处“跨范式”不包括面向对象-面向过程的区分,因此C++不算在内。 学术界编程语言 学术语言 这类语言的学术价值较高,经常在学术界作研究项目存在。 Haskell 特点 :纯函数式编程语言,不支持任何赋值语句、变量等特性。有大量书籍 优点 :作为纯函数式编程语言,学术价值极高 缺点 :学习曲线陡峭、易沉迷,反人类 Scheme 特点 :作为Lisp方言,语法纯粹简洁,在SICP中作教学语言 优点 :多范式(偏向函数式),易于讲... 阅读全文
评论
发表评论