teleren/devto huggingface dataset:
How does DevOps Team work?
Tags: devops, devjournal, developers
Published: 2023-01-11 03:35:00

Adopting DevOps Philosophy requires: 

Change in mindset + New Tools + New Skills = Prepared for a new fast-paced world


![DevOps team](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/6vdte584w60x6ngi0xfy.png)


Thanks for reading this.

If you have an idea and want to build your product around it, schedule a call with [me](https://calendly.com/pragyanatvade).

If you want to learn more in DevOps and Backend space, [follow me](https://dev.to/pragyanatvade).

If you want to connect, reach out to me on [Twitter](https://twitter.com/pragyanatvade) and [LinkedIn](https://www.linkedin.com/in/pragyanatvade/).
Day 6 #100DaysofCode
Tags: webdev, beginners, 100daysofcode
Published: 2023-01-11 02:45:51

## Update on the Sign up Page

![Sign up page image](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/j2xyxvonofm71g7zhds6.png)

I have basically finished structuring the html page and now going to start working on the CSS. Writing out the form was not too difficult but I foresee I will have to restructure the contents to target them better with CSS. I have made efforts to commit to [Github](https://github.com/GloBoiVic/Odin-Signup-Page) more often to show the updates I am making. The goal is to be completed by tomorrow.
AppDev Week 2
Published: 2023-01-11 02:42:04

Always use bootstrap for the basic CSS on a rails app

When using if statements, until you use a method on a variable, it may be blank and may always be true because it will output “ ”

rails db:rollback to rollback 1 migration 

If you add a column, you add it to the form, forget that urls can’t be added without permitting the parameter 

rails g migration AddDirectorIdToMovies

def the subhashes in the controller function to use it as a local variable 

Partials help clean up the CSS on the application layout file significantly 

When using render template: and doing a partial, make sure the partial file name has the _ with it. 

Locals allows you to pass local variables 


https://github.com/heartcombo/simple_form

Bootstrap cards comprise head, body, and footer 

All active record objects have a partial path established

Read through the Ruby API documentation on partials 

before_action is very useful for repeating actions in the controller, can put in the application controller to make it a little more seamless

%i is a quick way (ruby ) to create symbols 
 
jbuilder is a template for creating json using ruby 

Scaffold method to generate stuff very quickly 

Use the devise gem for sign-in and sign-out, very boiler plate and easy to use !
First Day of Coding
Published: 2023-01-11 02:34:39

I will carry a Growth Mindset as I participate in my coding bootcamp and will reflect on what I learn through my Dev Posts. 

- Acknowledge and embrace that learning to code can be hard! It’s okay if you don’t understand a concept right away.
- View challenging activities as opportunities. Reflect on what you learn.
- Allocate a fixed amount of time to challenging activities. This is called timeboxing, and it's a part of a developer's normal workflow. 
- Be willing to make mistakes in front of others.
- Be open to feedback. View criticism as an opportunity to learn and grow.
- Use the word "yet" when stuck, Ex: "Im not sure how this array can work "yet"".
AWS re:Invent 2022 Sessions
Tags: aws, beginners, reinvent, discuss
Published: 2023-01-11 02:13:09


There are so many different levels and types of sessions in AWS re:Invent.Following are few sessions:

Sessions Levels:

1. 100 - Foundational
2. 200 - Intermediate
3. 300 - Advanced
4. 400 - Expert

Sessions Types:

1. Keynote
2. Leadership sessions
3. Breakout Sessions
4. Builder's Sessions
5. Bootcamp
6. Chalk Talk
7. Workshop
8. Theater Session
9. Lightning talk
10. Lab
11. Gamifies Learning
12. Community Activities  
13. Conference Services
14. Dev Chat
15. Geo Talk
16. Geo Breakout
17. Builder's Fair
如何使用 Pulumi 构建云平台 Apps 项目
Tags: pulumi, iac, kubernetes, terraform
Published: 2023-01-11 02:12:20

## 背景
Iac 领域，terraform 应用比较广，之前公司主要也是使用 kubevela 来进行整个平台组件的架构部署。
在使用过程中，kubevela 本身的弊端也显而易见。

1. kubevela 本身不支持模板，为了支持不同的测试、预发布、生产环境的配置，或者其他需要动态化配置，则需要在 kubevela 之上再封装一层模板解析过程代码，增加了整体维护复杂性。
2. 在一些全局功能中，比如日志收集 sidecar 注入或者 Prometheus 数据接入等通用功能，依赖平台对 kubevela 的扩展能力，即 workload type 和 traits 的自定义支持，从而增加了对底层平台开发人员的依赖，影响 app 开发集成效率。

基于这两点考虑，我们调研了 Pulumi 对此类问题的解决方案。

1. Pulumi 使用 golang 等通用编程语言来管理整个 app 的部署生命周期，并且使用 stack 来管理不同的测试、预发布、生产环境的配置，增加了整个架构部署平台的代码复用能力。
2. Pulumi 在构建整个架构代码时，每个 app 都是独立的 pulumi project，用户直接使用 Pulumi api 来操作，并不需要依赖底层架构开发人员的支持，减少了沟通成本，增加了 app 开发部署效率。

## 目标

基于目前公司的业务，我们对底层基础架构平台有两点基本要求，后续所有问题解决方案参考该基本要求来确认边界。

1. app 的增加集成要方便开发人员测试，开发人员可以使用 pulumi 相关原生命令来测试整个 app 的创建、更新、删除等等流程管理，而不需要其他外部资源支持。
2. 对于整体基础架构的发布，要方便平台发布人员操作使用，平台发布人员不需要对基础架构代码进行任何修改，完成一键发布、更新等操作，对于每次发布，需要生成相关的发布 preview ，方便和开发人员来确认发布计划是否存在偏差。
3. 所有 app 的管理统一集中管理，方便运维开发人员进行整体平台创建。

## Pulumi 项目结构规划

确认了目标之后，我们确定 pulumi-apps 的项目结构需要围绕这两个目标来构建。
由于Pulumi stack机制的限制，如果两个project都公用相同的stack名称时，操作一个project会删除掉另外一个project，主要原因还是pulumi后台stack管理的BUG，官方有相关讨论，暂时还未修复，参见Issues：
https://github.com/pulumi/pulumi/issues/8402
在基于此情况下，我们在automation中管理各个apps的安装，删除和与发布操作时，每个app都使用其app名称+dev/prod/test后缀来命名每个app project对应的stack名称，整个automation使用Pulumi automation API实现，参见文档：
https://www.pulumi.com/docs/guides/automation-api/getting-started-automation-api/
整体结构如下所示：
```code
|____automation
|        |______main.go
|        |______go.mod
|        |______go.sum
|        |______Pulumi.Yaml
|        |______utils
|____apps
      |______minio.app
      |         |______main.go
      |         |______go.mod
      |         |______go.sum
      |         |______Pulumi.Yaml
      |         |______Pulumi.minio.app.dev.Yaml
      |_______volcano.app
      |         |______main.go
      |         |______go.mod
      |         |______go.sum
      |         |______Pulumi.Yaml
      |         |______Pulumi.volcano.app.dev.Yaml
      |________x.app
      |________y.app
```
该结构有以下几个特点：
1、automation目录是给平台升级维护人员使用，可以管理所有apps。
2、apps目录主要是给app开发人员使用，开发人员添加一个新的app，只需要使用pulumi new命令来操作生成即可，并且，不限制pulumi app project的开发语言，开发人员可以根据自己喜好来选择app开发语言。

## 后续更新
1、后续会在automation目录下提炼出整个系统的全局变量维护和底层服务(promethues/logging)统一接入维护。
2、会利用automation不同的stack来维护整体对应不同集群配置。
3、automation功能会识别pulumi up/destroy/preview等命令，来达到pulumi原生命令的统一支持。
4、可以再封装一层使用户不关注 pulumi api。
Tecnologias que facilitam a vida das mulheres diariamente: Dicas de como usar e onde encontrar
Tags: notícias
Published: 2023-11-06 20:17:04

---
title: Tecnologias que facilitam a vida das mulheres diariamente: Dicas de como usar e onde encontrar
published: true
date: 2023-01-11 01:55:34 UTC
tags: Notícias
canonical_url: https://astronautsdevelopers.com/tecnologias-que-facilitam-a-vida-das-mulheres-diariamente-dicas-de-como-usar-e-onde-encontrar/
---

As mulheres modernas lidam com muitas responsabilidades e tarefas diárias, e às vezes pode ser difícil encontrar tempo para tudo. A tecnologia, no entanto, pode ser uma grande ajuda neste sentido. Existem várias tecnologias disponíveis no mercado que foram projetadas especificamente para facilitar a vida das mulheres e ajudá-las a gerenciar suas tarefas diárias com …

https://astronautsdevelopers.com/tecnologias-que-facilitam-a-vida-das-mulheres-diariamente-dicas-de-como-usar-e-onde-encontrar/
Week 2: intro to Ruby partials
Published: 2023-01-11 01:46:06

```
<%= render partial: "zebra/elephant" %>

```
**_Partials_** allow you to insert snippets of code into view templates to make them less bulky and incomprehensible. I'm thinking of these like old-school iframe tags in HTML but more powerful. It allows you to pull pieces of content from elsewhere to build with blocks instead of repainting each scene one by one.

```
<%= render partial: "movies/form", locals: { movie: @movie  } %>

```
More powerful though is the ability to pass variables through locals to partials. In the example above, we're saying render a snippet of code with a standard form to update a Movie object in our database. Because we want to edit an existing movie we're passing it the variable movie: and sending it the @movie value. The @movie variable comes from the params hash, it's available because we're taking a route which defines @movie within the Movie controller using

```
 @movie = Movie.find(params.fetch(:id))

```
 So, the flow is 

Route -> movies/8/edit/
goes to the routes.rb file
follows the "edit" route and passes "8" to the :id variable in the params hash.
then it runs the edit function within the movies controller...

```
 def edit
    @movie = Movie.find(params.fetch(:id))
  end 
```
which then assigns @movie an Active Record relation that matches the movie with id "8". **_That_** allows the snipped of code 

```
 <%= render partial: "movies/form", locals: { movie: @movie  } %>

```
to use @movie when passing it to the partial that runs the form

```

<% movie.errors.full_messages.each do |message| %>
  <p class="alert alert-danger w-50 mt-4"><%= message %></p>
<% end %>

<%= form_with model: movie do |form| %>
  <div>
    <%= form.label :title %>
    <%= form.text_field :title %>
  </div>

  <div>
    <%= form.label :description %>
    <%= form.text_area :description %>
  </div>

  <div>
    <%= form.submit class: "btn-primary" %>
  </div>
<% end %>

```

tl;dr the local variable in the template that calls in the partial **_must_** match the element within the partial you're calling to activate.
Alert
Published: 2023-01-11 01:44:55

I am trying to make a gui using dat.GUI and i am trying to make a key system

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/z0c0vlfpf3er7nlw8zmg.png)
if the check box is true you will have to enter an admin key if its wrong it will say wrong 

when you click "check" it will run this code 

```
 if (admin_keys.includes(Key_System.Key) && Key_System.Admin == true ){
        alert("Admin")
      
     }
   else{
   
   alert("Wrong")
   }

```
 but i dont want it to run this code when the  checkbox is false i only want it to run this code 

```
if (Key_System.Admin == false && Normal_Keys.includes(Key_System.Key) ){
   alert("Normal")
   }
   else{
   
   alert("Wrong")
   }
```
jsfiddle:  https://jsfiddle.net/baidazaid/kx9bp253/48/


```
var gui = new dat.GUI({
  load: getPresetJSON(),
  preset: 'Preset1'
});

let admin_keys = [
 "Admin"
]
let Normal_Keys = [
"Zaid"
]
let Key_System ={
   Admin:true,
   Key: '',
   Check: function(){
     if (admin_keys.includes(Key_System.Key) && Key_System.Admin == true ){
        alert("Admin")
      
     }
   else{
   
   alert("Wrong")
   }

   if (Key_System.Admin == false && Normal_Keys.includes(Key_System.Key) ){
   alert("Normal")
   }
   else{
   
   alert("Wrong")
   }
   }
   
}

let Main_System = {
   Game_Mode:'Game_Mode_DropDown',
   Game_Type: 'Game_Type_DropDown'

}

var folder1 = gui.addFolder('Key System');
folder1.add(Key_System, "Admin")
folder1.add(Key_System, "Key")
folder1.add(Key_System, "Check")
folder1.close();












function getPresetJSON() {
  return {
    "preset": "Default",
    "closed": false,
    "remembered": {
      "Default": {
        "0": {
          "type1_boolean": false,
          "type2_string": "string",
          "type3_number": 0
        },
        "1": {
          "string1": "string1",
          "string2": "string2"
        }
      },
      "Preset1": {
        "0": {
          "type1_boolean": true,
          "type2_string": "string123",
          "type3_number": -2.2938689217758985
        },
        "1": {
          "string1": "string_2",
          "string2": "string_3"
        }
      }
    },
    "folders": {
      "FolderNameA": {
        "preset": "Default",
        "closed": false,
        "folders": {}
      },
      "FolderNameB": {
        "preset": "Default",
        "closed": false,
        "folders": {}
      },
      "FolderNameC": {
        "preset": "Default",
        "closed": false,
        "folders": {}
      }
    }
  };
}

```
Como subir um cluster Kubernetes de forma manual em distros baseadas em Debian.
Tags: devops, tutorial, kubernetes, linux
Published: 2023-01-11 01:31:41

Será necessário três vms,uma para cada node. Um node terá a função de control plane e dois terão a função de workers.
Do primeiro ao nono passo os comandos são comuns aos três nodes. 

1.sudo apt-get update && sudo apt-get upgrade

2.curl -fsSL https://get.docker.com/ | sh

3.mkdir -p /etc/systemd/system/docker.service.d

4.curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -  

5.sudo apt-get update && sudo apt-get upgrade

6.echo "deb http://apt.kubernetes.io/ kubernetes-xenial main" > /etc/apt/sources.list.d/kubernetes.list

7.cat /etc/apt/sources.list.d/kubernetes.list

8.sudo apt-get update && sudo apt-get upgrade

9.sudo apt-get install -y kubelet kubeadm kubectl

A partir do décimo passo os comandos devem ser executados apenas no node que terá a função de control plane.

10. kubeadm config images pull

Caso de erro execute esses dois comandos:
sudo rm /etc/containerd/config.toml
sudo systemctl restart containerd

11.sudo kubeadm init 
(ao executar este comando será informado o comando para adicionar nodes ao control plane."kubeadm join + token" deve ser executado apenas nos dois nodes workers. Só após executar o décimo sexto passo execute o comando que foi informado "kubeadm join + token" para adicionar nodes workers.)

12.mkdir -p $HOME/.kube

13.sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

14.sudo chown $(id -u):$(id -g) $HOME/.kube/config 

15.export KUBECONFIG=/etc/kubernetes/admin.conf 

16.kubectl apply -f https://github.com/weaveworks/weave/releases/download/v2.8.1/weave-daemonset-k8s.yaml
O que é e para o que serve ACID?
Published: 2023-01-11 01:27:44

**ACID** é um acrônimo que faz referência a uma lista de 4 propriedades de transações de um banco de dados, que garantem que os sistemas de banco de dados relacionais são confiáveis e seguros.

 A - **Atomicidade** 

 C - **Consistência** 

 I - **Isolamento**  

 D - **Durabilidade**

**O que é atomicidade?**

**Atomicidade** significa que uma transação é tratada como uma unidade única, indivisível. Isso significa que, se uma transação inclui várias operações, então todas as operações serão concluídas ou nenhuma será concluída. Isso garante que, em caso de falha, o banco de dados seja deixado em um estado consistente.
Exemplo:
Imagine que você está em um e-commerce, então você adiciona um item ao seu carrinho, faz sentido que esse mesmo produto seja retirado da prateleira para que outros usuários não possam comprar este item. Nesse caso, essa operação deve ser computada, fazendo assim uma transação atômica, por que atômica? 
Porque ou ela vai ser completa inserindo tal produto a um carrinho e retirando ele da prateleira ou não haverá execução alguma. Dessa forma o banco fica com dados consistentes, não havendo problemas como a venda de um produto duas vezes.

**O que é consistência?**

**Consistência** significa que deve haver o uso a risca das regras que garantem que o banco de dados é válido e preciso. Isso garante que as restrições de integridade são sempre cumpridas e que os dados são sempre válidos. Fazendo com que os dados sejam enviados no formado pre-definido pelo banco.
O uso deste principio deve incapacitar o envio de um dado em um formato não apropriado.
Isso desde os tipos de dados como INT, Date e Decimal, a chaves primarias, chaves estrangeiras e até mesmo restrições como Unique, Cascade e outros. 

**O que é isolamento?**

**Isolamento** se refere ao fato de que as transações são executadas de forma independente entre si. Isso garante que as transações não interferem entre si, garantindo que o banco de dados é deixado em um estado consistente.

**O que é durabilidade?**

**Durabilidade** significa que, uma vez que uma transação é concluída, os seus efeitos são permanentes e resistentes a falhas. Isso garante que os dados são mantidos mesmo em caso de falhas, como falha de energia.

**Porque utilizar os princípios de ACID nos seus projetos**

Juntando todas essas propriedades garantimos que os sistemas de banco de dados relacionais são confiáveis e seguros para uso em aplicações críticas, como sistemas financeiros e de saúde.
TWIL (This Week I Learned)_2023.01.09
Published: 2023-01-11 00:59:57

- When your Application Layout file gets really big, you want to make it a little more manageable/organized by making new files within Layouts so that everything is a little more obvious
- What is a partial and why would I use it?

> A partial allows you to separate layout code out into a file which will be reused throughout the layout and/or multiple other layouts.
This. makes more sense
Tags: java, beginners
Published: 2023-01-11 00:35:38

I'm now taking the time to make flashcards when I study. This practice is forcing me to stop when I don't understand something. The whole concept of "this." in Java is easy to skip past when I'm watching tutorials at 2x speed; it finally makes sense though.

"this." allows us to have identical names for fields and parameters without causing confusion. 

public String **text**;

public void setText(String _text_) {
     this.**text** = _text_;
}


99
AppDev Week 1
Published: 2023-01-11 00:30:24

resources :movies gives you all 7 routes 



a = [1,2,3]

h = { :first => 1, :second => 2}

a.at(2)

h.fetch(“first”)

https://exercism.org/ for more practice

post used to modify the database

post needs to come with a password to ensure that a 3rd party isn’t generating a DDoS type of thing 

routes start with the plural name of the table name

use patch for updates, change http verb for different crud functions

delete, patch, post, get 




use rails/info on the bin/server url to pull up a listing of all of the routes
How to Code Chrome Dino Game with JavaScript and a HTML Canvas
Tags: gamedev, javascript, beginners, tutorial
Published: 2023-01-11 00:29:38

In this exciting tutorial we are going to build a clone of the chrome dinosaur game with Javascript and a HTML Canvas. This version of the game can be played on a touch screen or with a keyboard. The game will scale to fit on any size screen.

Try the game out [here.](https://codingwith-adam.github.io/dino-game/index.html) On a mobile device play in landscape orientation for the best experience.

The goal of the game is for the dinosaur to avoid the obstacles by jumping over them. As the dinosaur runs along the desert it will encounter cactuses. If you don't jump over them it's game over. Our dino can perform a low or high jump. A low jump is achieved with a quick tap of the screen or quick press of the space bar. A high jump requires taping the screen longer or pressing the space bar longer.

## We will cover the following topics and more:

- Game loop
- Animation
- Collision detection
- Scaling a game to fit to any size screen.
- How to take into account different frame rates.
- Randomly generating enemy sprites(cactuses)
- and much more!

If you enjoy this tutorial please subscribe, like and share on YouTube.

### YouTube Tutorial:

{% embed https://youtu.be/ooru4pyEv1I %}
Console.trace in JavaScript
Tags: javascript, tutorial, webdev
Published: 2023-01-11 00:01:36

---
title: Console.trace in JavaScript
published: true
description: How to use console.trace in JavaScript to track the execution of your application
tags: javascript, tutorial, webdev
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/0p0l8dzqtgcxo11f0kwv.png
canonical_url: https://www.jenniferbland.com/console-trace-in-javascript/
---

In yesterday's article, I showed you two ways to format your output to the console in JavaScript. If you have not read it, [check it out here](https://www.jenniferbland.com/formatting-output-to-the-console/).

Today I wanted to show you another console command: `console.trace()`.

## console.trace()
The console.trace() method outputs a stack trace to the Web console.

Here is an example of how to use this:

```javascript
function foo() {
  function bar() {
    console.trace();
  }
  bar();
}

foo();
```

In the console, the following trace will be displayed:

```javascript
bar
foo
<anonymous>
```

## Let's Connect

Thanks for reading my article today. If you like my content, please consider [buying me a coffee](https://www.buymeacoffee.com/JenniferBland) ☕.
Diving in...
Tags: beginners, programming, productivity
Published: 2023-01-10 23:30:40

Hi there. 

My name is Erynn. I've been a graphic designer for roughly 8 years now. 

I first started to learn coding in middle school while playing Neopets (my pets had incredible pages). In college, I took a few front end development and web design courses that introduced me to great wide world of coding. I have dabbled in HTML, CSS, JavaScript, SQL, and Python, though I claim no skill beyond CSS. 

I've always viewed coding as a magical practice that changes the ordinary into the extraordinary.

As I dive into my coding bootcamp course, my goal is to seamlessly blend my design skills with coding know how so I can take over the world... I mean perfect function over form.

That's it for now.
Google Chrome の CVE 脆弱性: 2022 年 12 月頃のリリースバージョンまで
Tags: chrome, chromium, security, vulnerability
Published: 2023-01-10 23:28:37

## 概要

### Google Chrome に複数の脆弱性

[CVE](https://cve.mitre.org/cve/)-2023-0140 (他)

Windows 版 [Chrome](https://www.google.co.jp/chrome/browser/) で、バージョンが 109.0.5414.74 またはそれ以前のものに、リモート攻撃のリスクがあります。(なお影響範囲は Win 版以外もあります。)

109 は先月頃にリリースされました。

\-- Chrome のアップデートが推奨されます。

### 影響範囲

> CVE-2023-0140 (他)    
> 影響範囲は Win 版以外も

Chrome でバージョンが 109.0.5414.74 以前のものに関わる他の脆弱性です。Android 版や ChromeOS 版も影響範囲です:

CVE-2023-0128, 0129, 0130, 0131, 0132, 0133, 0134, 0135, 0136, 0137, 0138, 0139, 0141.

### Chromium への影響

なおいくつかの CVE セキュリティ深刻度については、[Chromium](https://www.chromium.org/)、つまり Chrome がベースとしているものでも High (高) または Medium (中) と評価されています。

### Microsoft Edge への影響

Chromium が影響範囲にあるため、Microsoft [Edge](https://www.microsoft.com/edge) も同様の可能性があります。

### Chrome OS / ChromeBook への影響

[Chrome OS](https://www.google.com/chromebook/chrome-os/) の脆弱性も発行されているため (CVE-2023-0128,0137)、[ChromeBook](https://www.google.com/chromebook/) も早めに更新するのが良さそうです。

### As to Chrome OS / ChromeBook

As the vulnerabilities on [Chrome OS](https://www.google.com/chromebook/chrome-os/) are also registered (as CVE-2023-0128,0137), [ChromeBook](https://www.google.com/chromebook/) should be updated perhaps soon as possible.

## 補足

本記事は [小社のツイート](https://twitter.com/scqrinc/status/1612945553041788928?s=20) をもとにしています。

### CVE 発表

https://twitter.com/CVEnew/status/1612913531338235920?s=20
생각하는대로 살지 않으면, 사는대로 생각하게 된다
Tags: busy
Published: 2023-01-10 23:22:14

작성일: 2022-11-18

2022년 목표 달성을 위해 현재 조직에서 해야만 하는 일을 아둥 바둥 해 나가고 있다. 
계획에 의해 일이 설계되기 보다는, 처리되어야만 하는 일을 받아내다가 시간이 다 가는 경우도 허다하다. 이제 2022년 한 해도 얼마 남지 않았다. 한 해를 곧 또 돌아보게 될텐데, 나는 이 조직의 목표 달성을 위해 정말 잘 기여했는가? 회고하기가 두렵다. 

나의 자리에서 책임과 기여를 다 하기 위해 필요한 역량에서의 챌린지가 갑자기 달라지진 않았다. 하지만, 조직의 규모, 목표 지표의 스케일이 달라지면서, 더욱 복잡도가 높아진 조직 관리에서의 추상화 수준이 매우 부족했다. 무엇보다 반드시 되어야만 하는 일의 추진과 결과 확인에 대해서 더욱 냉정하지 못했다. 

> 생각하는대로 살지 않으면, 사는대로 생각하게 된다.

무서운 말이다. 한 해동안 기록이 정말 적었다. 기록이 적으면 생각을 덜 하게 된다. 생각의 게으름이 존재했던 것은 아닐까. 아마 맞을 것이다. 어느 한 해보다 나의 몸과 손가락 (정보와 가치 생산)은 바빴을지언정, 나의 생각의 근육은 근손실이 있었던 것 같다. 많은 일은 언제나 높은 임팩트의 기여를 의미하진 않는다. 그걸 알면서도 내가 일을 그렇게 진행했다면, 애초에 나의 메타인지에 문제가 있었을 수도 있다. 

결과를 다르게 내기 위해선, 그렇게 원하는 혁신을 내외부에서 해내기 위해선 과감한 변화가 필요하다. 구조의 변화든, 개인의 변화든 그게 무엇이든간에 말이다.