Ruth Netser 发布的文章

与你最亲近的人建立一种开放的文化,并带着它走遍天下。

作为 80 年代的叛逆少年,“因为我这么说”是我在家里经常听到的一句话。我并不是一个真正的叛逆者。我只是想让别人听到我的声音,把我看成是一个开始表达自己想法和情感的人。

我那种不被倾听/聆听的感觉让我相信,培养不害怕说话的孩子很重要,但他们也能学会适应。倾听他们的意见,与孩子们合作,也可以帮助他们发挥创造力,最终让他们成为成功组织的一部分。

孩子们如何解释信息

我并没有刻意鼓励孩子们的开放行为,也没有主动告诉孩子们要大声说话。尽管如此,在我大儿子上幼儿园的第一天,他的老师给我们打电话。她告诉我们,当她和全班同学一起讨论不打架、不推搡等规则时,我的孩子举手告诉她,他的父母允许他一直争论和辩论。

这是真的。我让我的孩子们表达自己的意见,并让他们听到。但我孩子的话让我感到惊讶。直到那时我才意识到,虽然我一直在做正确的事情,但事实上,我的孩子们的行为不应该只是对我们教育他们的方式的反应。我们也不应该让他们从二手语境中挑选东西。那一天对我来说是一个游戏规则的改变,践行开放的文化正式主动地进入我们的家庭。

为成长而开放

在我小的时候,父母和长辈是有知识的人。

作为一个孩子,要获得信息并不容易。虽然我被鼓励表达意见,但也只是到了一个规范的、“容易消化”的程度。今天,父母、老师和孩子都有同样的手段来获取数据。你如何处理它,完全取决于你。

例如,在用希伯来语玩 Scattergories 时,“病毒”一词通常是大多数人玩的唯一以 “V” 开头的生物。为了获得更多的分数,我们决定寻找其他符合条件的动物名称。不一会儿,我们就找到了不是一种而是三种新的生物(我孩子的老师认为“小袋鼠”(希伯来语中以 “V” 拼写)不是一种真实的东西,但这是另一个故事)。

我教我的孩子阅读字里行间的内容,决不要不加质疑地接受作为“事实”呈现给他们的东西。这使他们能够练习批判性思维。这也使他们能够质疑我,从而使我们进行公开和透明的讨论。

这些讨论容易吗?不是。我总是有精力进行这些讨论吗?绝对不是。

然而,为了帮助他们练习学会倾听的“肌肉”,这些对话是必须的。

偶尔,我们必须强迫自己找到时间,把注意力集中在家庭上。建立一个强大而开放的文化需要时间,随着人们的变化,你的家庭文化也在变化。你必须适应并努力保持它的活力。作为群体的领导者,我必须为我的孩子们提供一个安全的地方,一个他们可以公开分享自己想法的地方,一个他们有归属感的地方。

在一个家庭中,你们必须合作,共同解决问题。倾听不同的想法和解决问题的方法可以让你想出创造性的(但并不总是符合每个人的喜好)解决方案。

我家里的一个问题是玩电脑游戏时家里的噪音。这种情况大多发生在深夜和周末。我们一起坐下来,想出了一个商定的嘈杂游戏的时间段。从那时起,那些想玩的人知道他们什么时候可以玩,而那些寻求一些安静时间的人也知道这些时间会发生什么。随着孩子们的长大,决定和讨论的性质也发生了变化。

这是否意味着所有的决定都与孩子们分享?不。这是否意味着都是玫瑰花?绝对不是。

鼓励孩子们建立联系可能会以一个破花瓶告终,似乎没有人对此负责。这可能会导致“因为我这么说”来拜访。然而,进行具有挑战性但又具有包容性的对话、鼓励创新思维以及让孩子参与决策都是让他们为成年做好准备的方法。希望它也能让他们成为更好的人(到目前为止,以我的拙见,这运作良好)。

开放的家庭文化

实行开放的文化不是一次性的事情。它是一个旅程,也是一种心态。我相信它为我和我的孩子们提供了工具,使他们在屋内和屋外都能坚韧不拔、思想开放、宽容和充满好奇心。与你最亲近的人建立一种开放的文化,并带着它走遍天下。

(题图:MJ/76568fbf-4e8a-4a9e-9ff1-d6a7e0922622)


via: https://opensource.com/article/23/3/open-source-family

作者:Ruth Netser 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

结合开放的 API 和 Python 编程语言的力量。

围绕 API 创建封装器的开源项目正变得越来越流行。这些项目使开发人员更容易与 API 交互并在他们的应用中使用它们。openshift-python-wrapper 项目是 openshift-restclient-python 的封装器。最初是一个帮助我们的团队使用 OpenShift API 的内部包,后来变成了一个开源项目(Apache 许可证 2.0)。

本文讨论了什么是 API 封装器,为什么它很有用,以及封装器的一些例子。

为什么要使用 API 封装器?

API 封装器是位于应用和 API 之间的一层代码。它通过将一些涉及发出请求和解析响应的复杂性抽象出来,以简化 API 访问过程。封装器还可以提供 API 本身提供的功能之外的附加功能,例如缓存或错误处理。

使用 API 封装器使代码更加模块化并且更易于维护。无需为每个 API 编写自定义代码,你可以使用封装器来提供与 API 交互的一致接口。它可以节省时间,避免代码重复,并减少出错的机会。

使用 API 封装器的另一个好处是它可以保护你的代码免受 API 变化的影响。如果 API 更改了它的接口,你可以更新封装器代码而无需修改你的应用程序代码。随着时间的推移,这可以减少维护应用程序所需的工作。

安装

该应用位于 PyPi 上,因此使用 pip 命令 安装 openshift-python-wrapper

$ python3 -m pip install openshift-python-wrapper

Python 封装器

OpenShift REST API 提供对 OpenShift 平台的许多功能的编程访问。封装器提供了一个简单直观的界面,用于使用 openshift-restclient-python 库与 API 进行交互。它标准化了如何使用集群资源,并提供了统一的资源 CRUD(创建、读取、更新和删除)流程。它还提供额外的功能,例如需要由用户实现的特定于资源的功能。随着时间的推移,封装器使代码更易于阅读和维护。

简化用法的一个示例是与容器交互。在容器内运行命令需要使用 Kubernetes 流、处理错误等。封装器处理这一切并提供 简单直观的功能

>>> from ocp_resources.pod import Pod
>>> from ocp_utilities.infra import get_client
>>> client = get_client()

ocp_utilities.infra INFO Trying to get
client via new_client_from_config

>>> pod = Pod(client=client, name="nginx-deployment-7fb96c846b-b48mv", namespace="default")
>>> pod.execute("ls")

ocp_resources Pod INFO Execute ls on
nginx-deployment-7fb96c846b-b48mv (ip-10-0-155-108.ec2.internal)

'bin\nboot\ndev\netc\nhome\nlib\nlib64\nmedia\nmnt\nopt\nproc\nroot\nrun\nsbin\nsrv\nsys\ntmp\nusr\nvar\n'

开发人员或测试人员可以使用这个封装器,我们的团队在编写代码的同时牢记测试。使用 Python 的上下文管理器可以提供开箱即用的资源创建和删除,并且可以使用继承来扩展特定场景的功能。Pytest fixtures 可以使用代码进行设置和拆卸,不留任何遗留物。甚至可以保存资源用于调试。可以轻松收集资源清单和日志。

这是上下文管理器的示例:

@pytest.fixture(scope="module")
def namespace():
    admin_client = get_client()
    with Namespace(client=admin_client, name="test-ns",) as ns:
        ns.wait_for_status(status=Namespace.Status.ACTIVE, timeout=240)
        yield ns

def test_ns(namespace):
    print(namespace.name)

生成器遍历资源,如下所示:

>>> from ocp_resources.node import Node
>>> from ocp_utilities.infra import get_client
>>> admin_client = get_client()
# This returns a generator
>>> for node in Node.get(dyn_client=admin_client): 
        print(node.name)

ip-10-0-128-213.ec2.internal

开源社区的开源代码

套用一句流行的说法,“如果你热爱你的代码,就应该让它自由。” openshift-python-wrapper 项目最初是作为 OpenShift 虚拟化 的实用模块。随着越来越多的项目从代码中受益,我们决定将这些程序提取到一个单独的仓库中并将其开源。套用另一句俗语,“如果代码不回到你这里,那就意味着它从未属于你。” 一旦这种情况发生,它就真正成为了开源。

更多的贡献者和维护者意味着代码属于社区。欢迎大家贡献。

(题图:MJ/5ca32a4a-2194-4b36-ade9-053433e79201)


via: https://opensource.com/article/23/4/cluster-open-source-python-api-wrapper

作者:Ruth Netser 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出