展开

关键词

翻译】阅读优秀的代码

阅读、理解优秀的代码是成为优秀Python程序员的秘诀。 优秀的代码符合编码规范,并尽可能向读者表达清晰、简洁的意图。 Included below is a list of recommended Python projects for reading. Howdoi Howdoi是Python写的代码搜索工具。 以上内容翻译自https://docs.python-guide.org/writing/reading/ 作者为Kenneth Reitz. 部分内容为意译。

25220

翻译】Instagram远程代码执行漏洞

翻译:https://research.checkpoint.com/2020/instagram_rce-code-execution-vulnerability-in-instagram-app-for-android-and-ios / 缺斤少两版三流翻译。 从下面代码可以看到,Ins基本复制粘贴了该库的标准用法: ? 让我们回到代码中,了解这种奇怪行为的原因。 我们在下面的这段代码中找到了答案: ? 如IDA反汇编代码片段所示,将cinfo-> out_color_space设置为RGBA(0xC)。 深入研究代码后,我们看到alpha channel(0xFF)的值被硬编码为const值。

36120
  • 广告
    关闭

    【玩转 Cloud Studio】有奖调研征文,千元豪礼等你拿!

    想听听你玩转的独门秘籍,更有机械键盘、鹅厂公仔、CODING 定制公仔等你来拿!

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    翻译】Kotlin致简代码之路

    翻译】Kotlin致简代码之路 2017-06-30 by Liuqingwen | Tags: Kotlin 翻译 | Hits 一、前言 挺适合新手的一篇建议性博文。 原文链接:Clean Code with Kotlin 因本人水平有限,翻译不好之处还请多包涵,文章中 “ Clean Code ” 我喜欢翻译成“致简代码”,但是这个名字的书一般是被翻译成“整洁代码” 二、正文 Kotlin致简代码之道 利用 Koltin 我们可以写出易懂、简短、安全而又富有表现力的代码。就像是致简代码,不是吗? 在我们开始之前,弄清楚什么是致简代码很重要。首先,致简代码是一种很容易理解的代码代码必须直观且易读。我们可以通过让自己的代码更加简洁、简短、简单并富有表现力来达到这个目的。 Kotlin 翻译

    34230

    神经机器翻译代码(上)

    目录 机器翻译 统计机器翻译 神经机器翻译 编码器 解码器 注意机制 训练 为翻译德语短语英译的Keras完整代码 机器翻译 机器翻译是将一种语言的源文本自动转换成另一种语言的文本的任务。 统计机器翻译 统计机器翻译(Statistical machine translation,简称SMT)是使用统计模型,学习将文本从源语言翻译成目标语言,给出大量实例的语料库。 神经机器翻译 神经机器翻译,简称NMT,是利用神经网络模型来学习机器翻译的统计模型。 与传统的基于短语的翻译系统不同,基于短语的翻译系统由许多单独调整的小的子组件组成,神经机器翻译试图建立和训练一个单一的、大的神经网络,它可以读取一个句子并输出正确的翻译。 ——联合学习对齐和翻译的神经机器翻译,2014 因此,神经机器翻译系统被称为端到端系统,因为翻译只需要一个模型。 NMT的优点在于它能够以端到端方式直接学习从输入文本到相关输出文本的映射。

    48310

    神经机器翻译代码(下)

    编辑 | sunlei 发布 | ATYUN订阅号 代码 本文中蓝色字体为外部链接,部分外部链接无法从文章中直接跳转,请点击【阅读原文】以访问。 complete code here #https://github.com/umer7/nmt 参考文件: 《机器翻译的统计方法 概述:基于实例的机器翻译,1999。 使用RNN编码器-解码器学习语法表示,用于统计机器翻译,2014年。 联合学习对齐和翻译的神经机器翻译,2014。 谷歌的神经机器翻译系统:弥合人类和机器翻译之间的差距,2016。 神经网络的序列到序列学习,2014。 循环连续翻译模型,2013年。 基于各国的统计机器翻译的连续空间翻译模型,2013年。

    34320

    谷歌Python代码风格指南,翻译版来了!

    非常感谢我们的忠实读者 shendeguize,在后台留言告诉我,已经翻译了《谷歌Python代码风格指南》 ,大家这样相互帮助,感觉真是太好了。 2020.01.31 Translator: shendeguize@github Link: https://github.com/shendeguize/GooglePythonStyleGuideCN 本翻译囿于水平 最精简try/except表达式内部的代码量,try代码块里的代码体量越大,月可能会在你不希望抛出异常的代码中抛出异常,进而在这种情况下,try/except掩盖了一个真实的异常 使用finally来执行代码 (此处翻译可能有误) ... 2.13 属性 使用属性可以通过简单而轻量级的访问器和设定器方法来来访问或设定数据. 2.13.1 定义 一种装饰器调用来在计算比较轻量级时作为标准的属性访问来获取和设定一个属性的方式 (译者:这段翻译可能不准确) The six, future, or past libraries 当项目需要支持Python2和3时,根据需求使用six,future和past. 2.21 带有类型注释的代码

    19620

    代码已公开--StarGAN-多领域图像翻译

    github代码:https://github.com/yunjey/StarGAN 应用到多感知信息上面。 Pix2Pix模型解决了有Pair对数据的图像翻译问题;CycleGAN解决了Unpaired数据下的图像翻译问题。 下图是StarGAN的效果,在同一种模型下,可以做多个图像翻译任务,比如更换头发颜色,更换表情,更换年龄等。 ? 图像重建可以完整这一部分,图像重建即将图像翻译从领域A翻译到领域B,再翻译回来,不会发生变化。 D的训练和G的训练如下所示。 ? 目标函数 首先是GAN的通用函数,判断输出图像是否真实 ? Pix2Pix图像翻译 [3]. CycleGAN-Unpaired图像翻译

    74340

    翻译】200行代码讲透RUST FUTURES (2)

    为了好玩,我在大多数示例中添加了一小段可运行代码。如果你像我一样,事情会变得更有趣,也许你会看到一些你从未见过的东西。 线程 现在,实现这一点的一个方法就是让操作系统为我们处理好一切。 我们只需为每个要完成的任务生成一个新的操作系统线程,并像通常那样编写代码。 我们用来处理并发性的运行时就是操作系统本身。 典型的流程是这样的: 运行一些非阻塞代码 对某些外部资源进行阻塞调用 跳转到main”线程,该线程调度一个不同的线程来运行,并“跳转”到该栈中 在新线程上运行一些非阻塞代码,直到新的阻塞调用或任务完成 下面的代码非常不安全,只是为了展示一个真实的例子。这绝不是为了展示“最佳实践”。这样我们就能达成共识了。 #! 如果上面的代码很难理解,不要感到沮丧。如果不是我自己写的,我可能也会有同样的感觉。你随时可以回去读,稍后我还会解释。

    24710

    翻译】200行代码讲透RUST FUTURES (5)

    既然您知道了现实中的 yield 关键字会将代码重写为状态机,那么您还将了解await 如何工作的,他们非常相似. 上述简单的状态机中有一些限制,当跨yield发生借用的时候会发生什么呢? 与其在理论上讨论它,不如让我们来看看一些代码。 我们将使用目前 Rust 中使用的状态机的优化版本。 , } } } 问题在于,如果在Safe Rust代码中,我们这样做: #! , } } } 运行代码并比较结果。你看到问题了吗? 等等? “Hello”怎么了? 为什么我们的代码出错了? 实际上,我已经强制上面的代码使用编译器的夜间版本。

    27740

    翻译 | 一行 JavaScript 代码的逆向工程

    我决定接受挑战 第一步:让代码变得可读 第一件事,让 HTML 文件里只有 HTML 代码,然后把 JavaScript 代码放到 code.js 文件里。 因此这些代码加上展开 & 1 后的代码看起来是下面这样的。 包装后的代码应该是这样的 ((i % 2 * j - j + n / DELAY) ^ j)。 第二步:理解代码 这部分将会介绍什么内容呢?不要心急,让我们一步一步来解析。 我不认为自己有能力写出这样的代码,但是我很享受理解它的过程。 iKcamp原创新书《移动Web前端高效开发实战》已在亚马逊、京东、当当开售。

    7220

    翻译】200行代码讲透RUST FUTURES (4)

    运行以下代码: trait SomeTrait { } fn main() { println! 让我们用代码而不是文字来解释这一点,通过这些部分来实现我们自己的 trait 对象: // A reference to a trait object is a fat pointer: (data_ptr

    29240

    翻译】200行代码讲透RUST FUTURES (3)

    三 Rust中的Futures 概述 Rust中并发性的高级介绍 了解 Rust 在使用异步代码时能提供什么,不能提供什么 了解为什么我们需要 Rust 的运行时库 理解“leaf-future” stream.write(report).await.unwrap(); // <-- yield }; 现在,正如您将看到的,当我们介绍 Futures 的工作原理时,两个yield之间的代码与我们的执行器在同一个线程上运行

    33820

    翻译】200行代码讲透RUST FUTURES (6)

    目前还没有严重的错误,但是您可以想象,使用这些代码很容易创建严重的错误。 我创建了一个图表来帮助可视化正在发生的事情: ? 图1: 交换前后 正如你看到的,这不是我们想要的结果. ("a: {}, b: {}", Test::a(test2.as_ref()), Test::b(test2.as_ref())); } 正如您从运行代码所得到的错误中看到的那样,类型系统阻止我们交换固定指针 固定到堆是安全的,这样用户不需要实现任何不安全的代码: use std::pin::Pin; use std::marker::PhantomPinned; #[derive(Debug)] struct Unpin能够阻止API的使用者移动T,除非他写出unsafe的代码. Pinning对于内存分配没有什么特别的作用,比如将其放入某个“只读”内存或任何奇特的内存中。 不安全的代码并不意味着它真的“unsafe” ,它只是减轻了通常从编译器得到的保证。一个不安全的实现可能是完全安全的,但是您没有编译器保证的安全网。

    31220

    做人肉代码翻译器是什么感受?

    我要做的事情就是把上千行只知道很重要,不知道干什么的,没有文档,没有可读性, 有几百万人在用的,输出的内容连一个字符都不能有误的php代码改成golang代码 这不仅艰难, 而且乏味 我先要使这些代码在开发环境中运行起来 既然不知道旧代码干了些什么, 那只能把自己当作人肉编译器了,通过自己对php和golang掌握, 人肉将php代码转换成golang代码,程序的逻辑丝毫不变,变的只是语法元素。 所以吧, 我哼哧哼哧写完上面这些代码, 还要写测试代码, 对比新旧两个功能返回的数据是否一致,需要精确到连一个字符都不能有差别。 于是我又是检查测试脚本, 又是琢磨旧代码, 又是修改新代码的, 使不一致的数据项减少到了五百项 还是不行 于是我又是检查测试脚本, 又是琢磨旧代码, 又是修改新代码的, 使不一致的数据项减少到了三百项 我再再再再再…一次体会到,屎一样的代码害死人、猪队友害死人(已离职) 放几张旧代码截图大家感受下 ? ? ? 这只是冰山一角

    86580

    翻译】200行代码讲透RUST FUTURES (7)

    七 实现Futures--主要例子 我们将用一个伪reactor和一个简单的执行器创建我们自己的Futures,它允许你在浏览器中编辑和运行代码 我将向您介绍这个示例,但是如果您想更深入的研究它,您可以克隆存储库并自己处理代码 ,或者直接从下一章复制代码。 两者都可以讲一个函数或者代码块转换成一个Future 这些Future是相当简单的。想象一下几章前我们的生成器。 就我们现在的例子来看,它并不比常规的同步代码好多少。对于我们来说,如果需要在同一时间等待多个Future,我们需要spawn它们,以便执行器同时运行它们。 因为我们自己创建一个这样的Parker也不需要很多行代码,所以我们将展示如何通过使用 Condvar 和 Mutex 来解决这个问题。

    39630

    翻译:如何在intellij idea中调试elasticsearch源代码

    由于PR#48188中的更改,这些说明将不适用于7.5版和更高版本.如果想了解Elasticsearch的内部工作原理,源代码是最终的权威。 如果源代码已经下载,那么像IntelliJ IDEA这样功能齐全的集成开发环境(IDE)对于浏览、编辑和调试它非常有用。 特别是,CONTRIBUTING.md 包含对将 Elasticsearch 代码导入 IntelliJ IDEA 项目的过程的描述,而 TESTING.asciidoc 描述了构建和调试代码的方法。 此外,Java 9 用于构建过程的一部分,如果未找到它,您将在构建代码时看到警告。确保您的 JAVA_HOME 和 JAVA9_HOME 环境变量设置正确。 图片完成上述步骤后,IntelliJ IDEA 将开始构建源代码。构建完成后,IntelliJ IDEA 窗口应类似于下图。

    12660

    翻译翻译,什么叫多态!

    我们只用编写父类的方法,让子类继承父类即可,不过多关注子类重写方法的代码实现。这样可以大大提高程序的可复用性。 子类的重写方法可以被父类调用,这叫向后兼容,可以提高代码的可扩充性和可维护性。 那为什么这段代码没有报错: Animal animal = new Cat(); Cat cat = (Cat)animal; cat.eat(); 因为 animal 本身指向的就是猫对象,所以它可以向下转型为

    11220

    翻译翻译,什么叫接口!

    抽象类和接口都不能实例化对象,抽象类的主要作用是抽取公共的代码。 3. 接口解决了单继承问题 5. 理解接口 其实我们的现实生活中到处都是接口的例子。 1.

    9920

    扫码关注腾讯云开发者

    领取腾讯云代金券