Uncategorized – Derek Demuro https://www.derekdemuro.com Software Engineer Tue, 03 Jun 2025 18:27:49 +0000 en-US hourly 1 160473225 The Evolution of Personal Values: A Journey of Self-Discovery https://www.derekdemuro.com/2025/06/03/the-evolution-of-personal-values-a-journey-of-self-discovery/ https://www.derekdemuro.com/2025/06/03/the-evolution-of-personal-values-a-journey-of-self-discovery/#respond Tue, 03 Jun 2025 18:20:50 +0000 https://www.derekdemuro.com/?p=50827
3 brains different colors showing a shift

As I reflect on my experiences, I’m reminded of a profound realization – our values and beliefs are not fixed entities, but rather dynamic and context-dependent. It’s a notion that has been reinforced by my encounters with diverse cultures and societies. The more I engage with different environments, the more I understand that my personal values serve as a guiding compass, allowing me to navigate complex issues and adjust my stance accordingly.

A notable example that comes to mind is my time in Uruguay, where I found myself aligning more closely with the conservative party. In contrast, during my experiences in the US, I’ve discovered that my views resonate more with the progressive party. This shift in perspective has taught me that it’s not about identifying with a particular ideology or party affiliation, but rather about embracing a set of core values that can be applied flexibly across different contexts.

The epiphany:

This epiphany has led me to develop a framework for approaching my own beliefs, one that has significantly impacted my thought process on various topics. I’ve come to realize that issues like abortion, homosexuality, and religion require a nuanced and multi-faceted approach, one that takes into account the intricacies of human experience and the complexities of societal norms.

As I’ve navigated this journey of self-discovery, I’ve also come to understand that humans are inherently flawed. We’re complex beings, driven by a mix of emotions, experiences, and biases. This realization has been incredibly liberating, as it’s allowed me to approach conversations and relationships with empathy and compassion. I’ve learned to see that people’s opinions and beliefs are often shaped by their unique experiences and perspectives, rather than being simply right or wrong.

This mindset shift has brought a tremendous amount of positivity into my life. By recognizing the gray areas between black and white, I’ve been able to engage in more meaningful conversations and build deeper connections with others. I’ve learned to listen actively, seeking to understand the underlying values and experiences that shape people’s perspectives. This, in turn, has helped me to become a more empathetic and open-minded individual.

The Benefit:

One of the most significant benefits of this mindset shift has been the ability to see multiple sides of an issue. I no longer feel constrained by binary thinking, where every topic is reduced to a simple yes or no, or right or wrong. Instead, I’ve come to understand that most issues exist on a spectrum, with nuances and complexities that require careful consideration.

For instance, when discussing topics like social justice, I’ve learned to recognize the historical and systemic contexts that shape our current reality. I’ve come to see that these issues are not simply matters of individual morality, but rather complex problems that require a comprehensive understanding of power dynamics, institutional structures, and cultural norms.

Similarly, when engaging with individuals who hold differing views, I’ve learned to approach conversations with curiosity and empathy. Rather than trying to “win” an argument or convince someone of my perspective, I seek to understand the underlying values and experiences that shape their beliefs. This has allowed me to build bridges across ideological divides, fostering a sense of community and shared humanity.

According to Dr. Brené Brown, a research professor at the University of Houston, “Vulnerability is the birthplace of love, belonging, and creativity” (Brown, 2012). By embracing our flaws and vulnerabilities, we can create space for deeper connections and more meaningful relationships.

As I continue on this path of self-discovery, I’m reminded of the importance of maintaining a balance between conviction and open-mindedness. It’s a delicate tightrope to walk, but one that ultimately allows for a more authentic and compassionate engagement with the world around me.

I’d love to hear from you – how have your experiences shaped your personal values and beliefs? What frameworks or approaches have you developed to navigate complex issues, and how do you strive to maintain a balance between conviction and open-mindedness?

If you’d like to see the framework, check my other post:

]]>
https://www.derekdemuro.com/2025/06/03/the-evolution-of-personal-values-a-journey-of-self-discovery/feed/ 0 50827
I got a 3D Printer! https://www.derekdemuro.com/2025/06/03/i-got-a-3d-printer/ https://www.derekdemuro.com/2025/06/03/i-got-a-3d-printer/#respond Tue, 03 Jun 2025 17:30:24 +0000 https://www.derekdemuro.com/?p=4601 Embracing the World of 3D Printing: A Journey of Discovery

I never thought I’d be the type of person to own a 3D printer, but life has a way of surprising us, doesn’t it? One day, I found myself intrigued by the idea of learning something new, and before I knew it, I was diving headfirst into the world of 3D printing.

As I began to research and explore my options, I realized that buying a pre-assembled printer might not be the best choice for me. I wanted to understand the inner workings of this technology, and what better way to do that than to build it myself? My brother, an expert in the field (check out his work at www.armorbionics.com ), was more than happy to guide me through the process.

After careful consideration, I decided on the Crealty Ender 3 v2. The assembly process was relatively straightforward, and I was relieved to find that it worked beautifully right from the start. To ensure I didn’t miss any crucial steps, I followed a YouTube assembly video – always better to be safe than sorry, right?

As I delved deeper into the world of 3D printing, I discovered a community that’s passionate, innovative, and always eager to share knowledge. From troubleshooting common issues to experimenting with new materials and designs, there’s no shortage of exciting projects to tackle.

So, what sparked my interest in 3D printing?

For me, it was the desire to learn something new and challenge myself. But I’m curious – what about you? Have you ever considered exploring the world of 3D printing? Perhaps you’ve already taken the plunge and have some amazing projects to share?

Let’s start a conversation!

What drew you to 3D printing, or what’s holding you back from giving it a try? Share your thoughts, experiences, and questions in the comments below. Let’s learn from each other and discover the endless possibilities that 3D printing has to offer.

I was not planning on buying a 3D Printer, but… over time I realized it’d be a good idea to learn something new.

One thing led to another and I ended up building the whole set.

The printer

I didn’t want to buy something crazy and super expensive off the bat, so I researched, spoke to my brother (www.armorbionics.com) and decided on an Crealty Ender 3 v2.

Crealty 3d printer

The assembly was easy enough, right off the bat worked pretty well. I did use a youtube assembly video just to make sure I don’t screw it up, there’s a few

]]>
https://www.derekdemuro.com/2025/06/03/i-got-a-3d-printer/feed/ 0 4601
Cultivating Nuance in Decision-Making: A Framework for Empathetic and Informed Opinions https://www.derekdemuro.com/2025/06/03/cultivating-nuance-in-decision-making-a-framework-for-empathetic-and-informed-opinions/ https://www.derekdemuro.com/2025/06/03/cultivating-nuance-in-decision-making-a-framework-for-empathetic-and-informed-opinions/#respond Tue, 03 Jun 2025 14:54:50 +0000 https://www.derekdemuro.com/?p=50762
Man looking at light

As we navigate the complexities of life, we are constantly faced with decisions that impact not only ourselves, but also those around us. Developing a nuanced approach to decision-making is crucial in ensuring that our choices are informed, empathetic, and aligned with our personal values. In this blog post, we will delve into a comprehensive framework designed to guide you through the process of forming opinions and making decisions that consider multiple perspectives and potential consequences.


Introduction to the Framework

The framework outlined below is structured around several key questions, each designed to prompt a deeper reflection on the implications and ethical considerations of any decision or opinion. By systematically considering these aspects, individuals can foster a more thoughtful and empathetic approach to their choices.

  1. How Does This Affect Me?

    • Consider both direct and indirect impacts on your life, well-being, and goals.
    • Evaluate potential benefits, drawbacks, and trade-offs.
    • Ask yourself: “Will this change my daily life, relationships, or opportunities in any significant way?”

  2. How Does This Affect the Other Person?

    • Put yourself in their shoes and try to understand their perspective, emotions, and needs.
    • Consider how they might be impacted, including potential benefits, harms, or changes to their circumstances.
    • Ask yourself: “Will this improve or worsen their life, relationships, or opportunities?”

  3. How Should This Offset My View?

    • Reflect on how new information or perspectives might alter your opinion or stance.
    • Consider whether your initial reaction was based on assumptions, biases, or incomplete data.
    • Ask yourself: “What new insights or evidence have I encountered that challenge or support my existing views?”

  4. Does This Contradict Any Other Core Value?

    • Identify potential conflicts between your values, principles, and the issue at hand.
    • Evaluate whether your stance aligns with your personal code of ethics, morals, and long-term goals.
    • Ask yourself: “Is this decision or opinion consistent with my identity, character, and sense of purpose?”

  5. What Is the Basis for My Opinion? (Evidence-Based)

    • Identify the sources of information that shape your views (data, research, experts, personal experience).
    • Evaluate the credibility, reliability, and relevance of these sources.
    • Ask yourself: “Is my opinion grounded in empirical evidence, logical reasoning, or sound judgment?”

  6. How Will This Affect Me/The Other Person/Society in the Long Run?

    • Consider potential consequences that may emerge over time (months, years, decades).
    • Evaluate how short-term gains or losses might impact long-term outcomes.
    • Ask yourself: “What are the potential downstream effects of this decision or opinion on individuals, communities, and the environment?”

  7. Are There Alternative Viewpoints That I Should Consider?

    • Engage with diverse perspectives, including those from different cultures, disciplines, or expertise.
    • Listen to counterarguments and be open to revising your views based on new insights.
    • Ask yourself: “Have I considered a range of possible interpretations, or am I settling for a single narrative?”

  8. How Will This Affect Marginalized or Vulnerable Populations?

    • Consider the potential impact on groups that may be disproportionately affected (e.g., due to systemic inequalities).
    • Evaluate whether your stance might exacerbate existing disparities or create new ones.
    • Ask yourself: “Will this decision or opinion contribute to greater equity, justice, and inclusivity, or undermine these values?”

  9. Is My Stance Consistent with My Personal Values and Principles?

    • Reflect on how your opinion aligns with your core values, ethics, and sense of purpose.
    • Evaluate whether your stance honors your commitment to fairness, compassion, and respect for others.
    • Ask yourself: “Does this decision or opinion align with my aspirational identity, or does it compromise my integrity?”

  10. Am I Bringing Any Unconscious Biases or Assumptions to This Issue?

    • Recognize that everyone has biases and try to acknowledge yours.
    • Consider how your personal experiences, cultural background, or social environment might shape your views.
    • Ask yourself: “What are the potential blind spots or areas where my own biases might be influencing my opinion?”

Putting the Framework into Practice

Incorporating this framework into your decision-making process requires a commitment to reflection, empathy, and continuous learning. Here are some actionable steps you can take:

  • Engage in Reflective Journaling: Regularly write down your thoughts, feelings, and rationales behind your decisions and opinions. This practice helps in identifying patterns, biases, and areas for personal growth.
  • Seek Diverse Perspectives: Actively seek out viewpoints different from your own. This could involve reading literature from various disciplines, engaging in discussions with people from diverse backgrounds, or following news sources that offer a range of perspectives.
  • Educate Yourself: Continuously update your knowledge on issues that matter to you and the world around you. This involves staying abreast of scientific research, political developments, and social trends.

Conclusion

Cultivating nuance in decision-making and opinion formation is a journey that requires patience, empathy, and a willingness to learn and adapt. By incorporating the guidelines outlined in this framework into your daily life, you can develop a more informed, empathetic, and thoughtful approach to the choices you make and the opinions you hold. Remember, the goal is not to achieve perfection, but to embrace a process of continuous improvement and learning.

We invite you to share your experiences and insights on how you’ve applied these principles in your own life or challenges you’ve faced in trying to adopt them. Your stories can serve as powerful examples for others navigating similar paths. Together, we can foster a community that values nuanced thinking, empathy, and the pursuit of knowledge.

Share Your Thoughts: How do you approach decision-making and forming opinions? Have you encountered any challenges or successes in cultivating nuance in your thought process? We look forward to hearing your stories and insights.

]]>
https://www.derekdemuro.com/2025/06/03/cultivating-nuance-in-decision-making-a-framework-for-empathetic-and-informed-opinions/feed/ 0 50762
Deploying Ansible, Docker, and Kubernetes on Debian 10. https://www.derekdemuro.com/2021/01/24/deploying-ansible-docker-and-kubernetes-on-debian-10/ https://www.derekdemuro.com/2021/01/24/deploying-ansible-docker-and-kubernetes-on-debian-10/#respond Sun, 24 Jan 2021 22:02:08 +0000 https://www.derekdemuro.com/?p=11931 Working for a client, I just realized… I never wrote myself a deploy script so I can quickly deploy Docker / Kubernetes on a Debian 10 installation.

Let’s get 3 things so we can ease future pain, one is Ansible, second Docker and lastly Kubernetes.

Ansible, quite straight forward:

Install Ansible:

# In case its a brand new VM
apt update

# Lets add Ansible Repo
echo "deb http://ppa.launchpad.net/ansible/ansible/ubuntu bionic main" | tee /etc/apt/sources.list.d/ansible.list
apt -y install gnupg2
apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 93C4A3FD7BB9C367

# Lets get the new repo
apt update

# Lets install ansible
apt install -y ansible

# Check ansible is installed.
ansible --version
ansible 2.8.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/home/debian/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/dist-packages/ansible
  executable location = /usr/bin/ansible
  python version = 2.7.16 (default, Apr  6 2019, 01:42:57) [GCC 8.3.0]

Lets go over the details of ansible, later.

Install Docker:

# In case youre doing it wrong
apt update

# Install requirements, again, in case you're skipping ansible
apt -y install apt-transport-https ca-certificates curl gnupg2 software-properties-common

# Lets add the key
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -

# Lets add the repo
add-apt-repository \
   "deb [arch=amd64] https://download.docker.com/linux/debian \
   $(lsb_release -cs) \
   stable"

# Classic update to fetch new repo
apt update

# Install docker
apt -y install docker-ce docker-ce-cli containerd.io

# Add user and group
usermod -aG docker $USER
newgrp docker

# Check docker is good
docker version
Client: Docker Engine - Community
 Version:           19.03.2
 API version:       1.40
 Go version:        go1.12.8
 Git commit:        6a30dfc
 Built:             Thu Aug 29 05:29:29 2019
 OS/Arch:           linux/amd64
 Experimental:      false

Server: Docker Engine - Community
 Engine:
  Version:          19.03.2
  API version:      1.40 (minimum version 1.12)
  Go version:       go1.12.8
  Git commit:       6a30dfc
  Built:            Thu Aug 29 05:28:05 2019
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.2.6
  GitCommit:        894b81a4b802e4eb2a91d1ce216b8817763c29fb
 runc:
  Version:          1.0.0-rc8
  GitCommit:        425e105d5a03fabd737a126ad93d62a9eeede87f
 docker-init:
  Version:          0.18.0
  GitCommit:        fec3683

If that worked, then you can test if you wish it's working?



If you were able to reproduce this on the screen, you should be good.
docker run --rm -it  --name test alpine:latest /bin/sh

Unable to find image 'alpine:latest' locally
latest: Pulling from library/alpine
cd784148e348: Pull complete 
Digest: sha256:46e71df1e5191ab8b8034c5189e325258ec44ea739bba1e5645cff83c9048ff1
Status: Downloaded newer image for alpine:latest

 / # cat /etc/os-release 
 NAME="Alpine Linux"
 ID=alpine
 VERSION_ID=3.9.2
 PRETTY_NAME="Alpine Linux v3.9"
 HOME_URL="http://alpinelinux.org"
 BUG_REPORT_URL="http://bugs.alpinelinux.org"
 / # exit

Install NodeJS:

curl -sL https://deb.nodesource.com/setup_15.x | bash -
apt-get install -y nodejs
npm install npm --global

Since we got this far, lets make our lives easier and get Ansible AWX installed.

apt -y install python3-pip git pwgen vim  python3-docker 
pip3 install requests==2.14.2
update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives --install /usr/bin/python python /usr/bin/python3 2

# MATCH DOCKER COMPOSE VERSIONS!
docker-compose version
docker-compose version 1.24.1, build 4667896
docker-py version: 3.7.3
CPython version: 3.6.8
OpenSSL version: OpenSSL 1.1.0j  20 Nov 2018

pip3 install docker-compose==1.24.1

# Clone the repo
su -
git clone --depth 50 https://github.com/ansible/awx.git
cd awx/installer/
# Customize
vim inventory
# Lets generate a password
pwgen -N 1 -s 30
KEY

Fix inventory

dockerhub_base=ansible
awx_task_hostname=awx
awx_web_hostname=awxweb
postgres_data_dir=/tmp/pgdocker
host_port=80
host_port_ssl=443
docker_compose_dir=/tmp/awxcompose
pg_username=awx
pg_password=awxpass
pg_database=awx
pg_port=5432
rabbitmq_password=awxpass
rabbitmq_erlang_cookie=cookiemonster
admin_user=admin
admin_password=StrongAdminpassword
create_preload_data=True
secret_key=KEY

Lets run that playbook!

ansible-playbook -i inventory install.yml

Now you can access the web on the host and port in inventory. At the folder:

cd ~/.awx/awxcompose/

Stop docker

docker-compose stop
Stopping awx_task      ... done
Stopping awx_web       ... done
Stopping awx_rabbitmq  ... done
Stopping awx_postgres  ... done
Stopping awx_memcached ... done

Lets pull new images:

docker-compose pull
Pulling rabbitmq  ... done
Pulling memcached ... done
Pulling postgres  ... done
Pulling web       ... done
Pulling task      ... done

Lets re-start it, and with that we have full loop!

docker-compose up --force-recreate -d
Recreating awx_postgres  ... done
Recreating awx_rabbitmq  ... done
Recreating awx_memcached ... done
Recreating awx_web       ... done
Recreating awx_task      ... done
Last step!

Kubernetes!


# We need to enable bridge netfilter
modprobe br_netfilter;
echo 'net.bridge.bridge-nf-call-iptables = 1' > /etc/sysctl.d/20-bridge-nf.conf;
sysctl --system;

Lets take some other steps in case you're ignoring the rest.

# install tools for adding apt sources
apt-get update;
apt-get install -y \
  apt-transport-https \
  ca-certificates \
  curl \
  gnupg2;

If you already installed docker, ignore this step:

# install docker
mkdir /etc/docker;
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": { "max-size": "100m" },
  "storage-driver": "overlay2"
}
EOF
curl -fsSL https://download.docker.com/linux/debian/gpg | apt-key add -;
echo 'deb [arch=amd64] https://download.docker.com/linux/debian buster stable' > /etc/apt/sources.list.d/docker.list;
apt-get update;
apt-get install -y --no-install-recommends docker-ce;

Finally, Kubernetes time!

# install kubernetes
# NOTE: "xenial" is correct here. Kubernetes publishes the Debian-based packages at kubernetes-xenial.
# reference: https://kubernetes.io/docs/tasks/tools/install-kubectl/#install-using-native-package-management
cat > /etc/docker/daemon.json <<EOF
{
  "exec-opts": ["native.cgroupdriver=systemd"],
  "log-driver": "json-file",
  "log-opts": { "max-size": "100m" },
  "storage-driver": "overlay2"
}
EOF
service docker restart
swapoff -a
echo "REMEMBER TO DISABLE SWAP!"

curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | apt-key add -;
echo 'deb https://apt.kubernetes.io/ kubernetes-xenial main' > /etc/apt/sources.list.d/kubernetes.list;
apt-get update;
apt-get install -y kubelet kubeadm kubectl;

# initialize kubernetes with a Flannel compatible pod network CIDR
kubeadm init --pod-network-cidr=10.244.0.0/16;

# Lets enable transparent huge pages
echo always > /sys/kernel/mm/transparent_hugepage/enabled

# setup kubectl
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config;

# install Flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml;

# install Dashboard
kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/master/aio/deploy/recommended.yaml
cat > dashboard-admin.yaml <<EOF
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
roleRef:
  apiGroup: rbac.authorization.k8s.io
  kind: ClusterRole
  name: cluster-admin
subjects:
  - kind: ServiceAccount
    name: kubernetes-dashboard
    namespace: kubernetes-dashboard
EOF
kubectl delete clusterrolebinding/kubernetes-dashboard;
kubectl apply -f dashboard-admin.yaml;

# Revert to default iptables
update-alternatives --set iptables /usr/sbin/iptables-legacy
update-alternatives --set ip6tables /usr/sbin/ip6tables-legacy
update-alternatives --set arptables /usr/sbin/arptables-legacy
update-alternatives --set ebtables /usr/sbin/ebtables-legacy

# Accept all traffic first to avoid ssh lockdown  via iptables firewall rules #
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
 
# Flush All Iptables Chains/Firewall rules #
iptables -F
 
# Delete all Iptables Chains #
iptables -X
 
# Flush all counters too #
iptables -Z 
# Flush and delete all nat and  mangle #
iptables -t nat -F
iptables -t nat -X
iptables -t mangle -F
iptables -t mangle -X
iptables iptables -t raw -F
iptables -t raw -X

# get the dashboard secret and display it
kubectl get secret -n kubernetes-dashboard \
| grep kubernetes-dashboard-token- \
| awk '{print $1}' \
| xargs kubectl describe secret -n kubernetes-dashboard;

# Lets enable running pods on master!
kubectl taint nodes --all node-role.kubernetes.io/master-

# Lets create a default storage location
mkdir -p /mnt/pv1
chmod 777 /mnt/pv1
cat > /root/kubernetes-storage.yaml <<EOF
{
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: localstorage
  annotations:
    storageclass.kubernetes.io/is-default-class: "true"
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: Immediate
reclaimPolicy: Delete
allowVolumeExpansion: True
---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-volume1
  labels:
    type: local
spec:
  storageClassName:
  capacity:
    storage: 60Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/pv1"
}
EOF

# Lets apply it!
kubectl apply -f /root/kubernetes-storage.yaml

Perfect, now we have access to kubernetes, now lets make the access public on port 8001.

kubectl -n kubernetes-dashboard edit service kubernetes-dashboard

Let’s see the services running in the context of our dashboard.

kubectl -n kubernetes-dashboard get services

Let’s get the port being used:

kubectl -n kubernetes-dashboard get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kube-dns ClusterIP 10.96.0.10 [none] 53/UDP,53/TCP 20d
kubernetes-dashboard NodePort 10.107.194.201 [none] 443:32414/TCP 20d

Let’s check it’s listening.

lsof -i tcp:32414
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
kube-prox 3440 root 7u IPv6 32584 0t0 TCP *:32414 (LISTEN)

Let’s get the token if needed and other info.

kubectl -n kube-system describe $(kubectl -n kube-system get secret -n kube-system -o name | grep namespace) | grep token:

Lets add some storage…

mkdir -p /mnt/pv{1,2}
kubectl create -f - <<EOF
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-volume1
spec:
  storageClassName:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/pv1"
---
kind: PersistentVolume
apiVersion: v1
metadata:
  name: pv-volume2
spec:
  storageClassName:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  hostPath:
    path: "/mnt/pv2"
EOF

If we want to see our storage:

kubectl get pvc

This should be enough to start…. we’ll add more in a new post!

]]>
https://www.derekdemuro.com/2021/01/24/deploying-ansible-docker-and-kubernetes-on-debian-10/feed/ 0 11931
Simulate typing clipboard. https://www.derekdemuro.com/2021/01/06/simulate-typing-clipboard/ https://www.derekdemuro.com/2021/01/06/simulate-typing-clipboard/#comments Wed, 06 Jan 2021 04:45:00 +0000 https://www.derekdemuro.com/?p=10681 The Power of Automation: Simplifying Server Management with AutoHotKey

As someone who has spent countless hours managing servers, I’ve often found myself in situations where copying and pasting passwords or commands just doesn’t work. Whether it’s logging into a server via VNC or using lights-out management tools, there are times when typing is the only option. And let’s be honest, who likes typing out complex passwords or commands?

That’s where AutoHotKey comes in – a powerful scripting language that can automate tasks and make our lives easier. One of its most useful features is the ability to type out the contents of our clipboard using a simple hotkey. This can save us a significant amount of time and frustration, especially when working with sensitive information.

The Solution: AutoHotKey Script

To get started, you’ll need to create an AutoHotKey script that types out the contents of your clipboard. Here’s a sample script to get you started:

Script:

#NoEnv          ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input  ; Recommended for new scripts due to its superior speed and reliability.

^+v::Send {Raw}%Clipboard%

This script uses the Ctrl + Shift + V hotkey to type out the contents of your clipboard. You can customize this hotkey to suit your needs, but the basic idea remains the same.

The Easy Way Out: Pre-Built Executable

If setting up AutoHotKey and creating a script from scratch sounds like too much work, don’t worry! You can download a pre-built executable that includes this functionality. Simply run the executable, and you’ll have access to the Ctrl + Shift + V hotkey to type out your clipboard contents.

Actionable Insights:

  1. Save time: By automating tasks like typing out passwords or commands, you can free up more time for critical server management tasks.
  2. Reduce errors: With AutoHotKey handling the typing, you’ll reduce the likelihood of typos and other human errors that can lead to security issues or system downtime.
  3. Improve productivity: By streamlining your workflow with tools like AutoHotKey, you can improve your overall productivity and focus on higher-priority tasks.

What’s Your Experience?

Have you ever found yourself in a situation where typing out passwords or commands was the only option? How did you handle it? Share your stories and tips for managing servers efficiently. Let’s start a conversation!

Sample:

Download the following exe.

Download “AHK Type Clipboard” type_clipboard.zip – Downloaded 2458 times – 521.91 KB

When it’s time to type your keyboard content, press CNTRL+SHIFT+V to enjoy the contents being typed in.

]]>
https://www.derekdemuro.com/2021/01/06/simulate-typing-clipboard/feed/ 3 10681
Finding USB devices with lsusb & idVendor – idProduct https://www.derekdemuro.com/2020/06/06/finding-usb-devices-with-lsusb-idvendor-idproduct/ https://www.derekdemuro.com/2020/06/06/finding-usb-devices-with-lsusb-idvendor-idproduct/#respond Sat, 06 Jun 2020 07:12:42 +0000 https://www.derekdemuro.com/?p=4226 idVendor – idProduct, lazy way out.

Let’s say we already have this info; we want to be able to… I don’t know de-auth the device, so it’s like we manually disconnected it.
Assuming you have a device with idProduct 0610, do the following:

grep 0610 /sys/bus/usb/devices/*/idProduct
/sys/bus/usb/devices/1-2.4/idProduct:0610

Same if you have an idVendor:

grep 05e3 /sys/bus/usb/devices/*/idVendor
/sys/bus/usb/devices/1-2.4/idVendor:0610

Perfect, you found the path to your device under sys… now lets look at lsusb.

lsusb way… the hard way.

 ⚡ root@vmin01  /sys/bus/usb/devices/1-2.4  lsusb
Bus 008 Device 002: ID 03f0:1027 HP, Inc Virtual keyboard and mouse
Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 010: ID 05e3:0749 Genesys Logic, Inc.
Bus 003 Device 008: ID 067b:2773 Prolific Technology, Inc. PL2773 SATAII bridge controller
Bus 003 Device 005: ID 05e3:0620 Genesys Logic, Inc.
Bus 003 Device 003: ID 0bda:0411 Realtek Semiconductor Corp.
Bus 003 Device 012: ID 0bc2:ac25 Seagate RSS LLC
Bus 003 Device 011: ID 1058:25a3 Western Digital Technologies, Inc. Elements Desktop (WDBWLG)
Bus 003 Device 007: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 003 Device 009: ID 0bc2:ab38 Seagate RSS LLC Backup Plus Hub
Bus 003 Device 006: ID 0bc2:ab45 Seagate RSS LLC
Bus 003 Device 004: ID 0bc2:331a Seagate RSS LLC
Bus 003 Device 002: ID 2109:0812 VIA Labs, Inc. VL812 Hub
Bus 003 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 05e3:0610 Genesys Logic, Inc. 4-port hub
Bus 001 Device 009: ID 0e8d:1887 MediaTek Inc.
Bus 001 Device 003: ID 0bda:5411 Realtek Semiconductor Corp.
Bus 001 Device 006: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 004: ID 0bc2:ab44 Seagate RSS LLC
Bus 001 Device 002: ID 2109:2812 VIA Labs, Inc. VL812 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Perfect, now let’s get the tree version…

 ⚡ root@vmin01  /sys/bus/usb/devices/1-2.4  lsusb -t
/:  Bus 08.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
    |__ Port 1: Dev 2, If 0, Class=Human Interface Device, Driver=usbhid, 12M
    |__ Port 1: Dev 2, If 1, Class=Human Interface Device, Driver=usbhid, 12M
/:  Bus 07.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 06.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 05.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 04.Port 1: Dev 1, Class=root_hub, Driver=ehci-pci/8p, 480M
/:  Bus 03.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 5000M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 4: Dev 7, If 0, Class=Hub, Driver=hub/4p, 5000M
            |__ Port 1: Dev 11, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
            |__ Port 2: Dev 12, If 0, Class=Mass Storage, Driver=uas, 5000M
        |__ Port 2: Dev 4, If 0, Class=Mass Storage, Driver=uas, 5000M
        |__ Port 3: Dev 6, If 0, Class=Hub, Driver=hub/3p, 5000M
            |__ Port 1: Dev 9, If 0, Class=Mass Storage, Driver=uas, 5000M
    |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 5000M
        |__ Port 4: Dev 5, If 0, Class=Hub, Driver=hub/4p, 5000M
            |__ Port 1: Dev 8, If 0, Class=Mass Storage, Driver=usb-storage, 5000M
/:  Bus 02.Port 1: Dev 1, Class=root_hub, Driver=uhci_hcd/2p, 12M
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/2p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 4, If 0, Class=Hub, Driver=hub/3p, 480M
        |__ Port 4: Dev 6, If 0, Class=Hub, Driver=hub/4p, 480M
    |__ Port 2: Dev 3, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 3: Dev 9, If 0, Class=Mass Storage, Driver=usb-storage, 480M

Now we know what’s what… and we can map our device.

/sys/bus/usb/devices/[bus]-[port].[device]

Excellent, now you can manually find the path if you know what you’re looking for… if you need more help there’s one more option for you.

 ⚡ root@vmin01  /sys/bus/usb/devices/1-2.4  lsusb -v

Bus 008 Device 002: ID 03f0:1027 HP, Inc Virtual keyboard and mouse
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0        64
  idVendor           0x03f0 HP, Inc
  idProduct          0x1027 Virtual keyboard and mouse
  bcdDevice            0.02
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           59
    bNumInterfaces          2
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x60
      (Missing must-be-set bit!)
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      1 Keyboard
      iInterface             16
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      65
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0008  1x 8 bytes
        bInterval              10
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        1
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         3 Human Interface Device
      bInterfaceSubClass      1 Boot Interface Subclass
      bInterfaceProtocol      2 Mouse
      iInterface             32
        HID Device Descriptor:
          bLength                 9
          bDescriptorType        33
          bcdHID               1.01
          bCountryCode           33 US
          bNumDescriptors         1
          bDescriptorType        34 Report
          wDescriptorLength      50
         Report Descriptors:
           ** UNAVAILABLE **
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x82  EP 2 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0005  1x 5 bytes
        bInterval              10

Bus 008 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0001 1.1 root hub
  bcdDevice            5.04
  iManufacturer           3
  iProduct                2
  iSerial                 1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255

Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               2.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0002 2.0 root hub
  bcdDevice            5.04
  iManufacturer           3
  iProduct                2
  iSerial                 1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0004  1x 4 bytes
        bInterval              12

Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0001 1.1 root hub
  bcdDevice            5.04
  iManufacturer           3
  iProduct                2
  iSerial                 1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255

Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0001 1.1 root hub
  bcdDevice            5.04
  iManufacturer           3
  iProduct                2
  iSerial                 1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255

Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0001 1.1 root hub
  bcdDevice            5.04
  iManufacturer           3
  iProduct                2
  iSerial                 1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255

Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               1.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         0 Full speed (or root) hub
  bMaxPacketSize0        64
  idVendor           0x1d6b Linux Foundation
  idProduct          0x0001 1.1 root hub
  bcdDevice            5.04
  iManufacturer           3
  iProduct                2
  iSerial                 1
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           25
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            3
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval             255

Bus 003 Device 010: ID 05e3:0749 Genesys Logic, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         9
  idVendor           0x05e3 Genesys Logic, Inc.
  idProduct          0x0749
  bcdDevice           15.34
  iManufacturer           3
  iProduct                4
  iSerial                 2
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           44
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0x80
      (Bus Powered)
    MaxPower              224mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               4
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x02  EP 2 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst               4

Bus 003 Device 008: ID 067b:2773 Prolific Technology, Inc. PL2773 SATAII bridge controller
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            0 (Defined at Interface level)
  bDeviceSubClass         0
  bDeviceProtocol         0
  bMaxPacketSize0         9
  idVendor           0x067b Prolific Technology, Inc.
  idProduct          0x2773 PL2773 SATAII bridge controller
  bcdDevice            1.00
  iManufacturer           1
  iProduct                2
  iSerial                 3
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           44
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xc0
      Self Powered
    MaxPower               24mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           2
      bInterfaceClass         8 Mass Storage
      bInterfaceSubClass      6 SCSI
      bInterfaceProtocol     80 Bulk-Only
      iInterface              0
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x84  EP 4 IN
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x01  EP 1 OUT
        bmAttributes            2
          Transfer Type            Bulk
          Synch Type               None
          Usage Type               Data
        wMaxPacketSize     0x0400  1x 1024 bytes
        bInterval               0
        bMaxBurst              15

Bus 003 Device 005: ID 05e3:0620 Genesys Logic, Inc.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.10
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         3
  bMaxPacketSize0         9
  idVendor           0x05e3 Genesys Logic, Inc.
  idProduct          0x0620
  bcdDevice           93.02
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           31
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          0
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              1
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x83  EP 3 IN
        bmAttributes           19
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               8
        bMaxBurst               0

Bus 003 Device 003: ID 0bda:0411 Realtek Semiconductor Corp.
Couldn't open device, some information will be missing
Device Descriptor:
  bLength                18
  bDescriptorType         1
  bcdUSB               3.00
  bDeviceClass            9 Hub
  bDeviceSubClass         0 Unused
  bDeviceProtocol         3
  bMaxPacketSize0         9
  idVendor           0x0bda Realtek Semiconductor Corp.
  idProduct          0x0411
  bcdDevice            1.21
  iManufacturer           1
  iProduct                2
  iSerial                 0
  bNumConfigurations      1
  Configuration Descriptor:
    bLength                 9
    bDescriptorType         2
    wTotalLength           31
    bNumInterfaces          1
    bConfigurationValue     1
    iConfiguration          4
    bmAttributes         0xe0
      Self Powered
      Remote Wakeup
    MaxPower                0mA
    Interface Descriptor:
      bLength                 9
      bDescriptorType         4
      bInterfaceNumber        0
      bAlternateSetting       0
      bNumEndpoints           1
      bInterfaceClass         9 Hub
      bInterfaceSubClass      0 Unused
      bInterfaceProtocol      0 Full speed (or root) hub
      iInterface              5
      Endpoint Descriptor:
        bLength                 7
        bDescriptorType         5
        bEndpointAddress     0x81  EP 1 IN
        bmAttributes           19
          Transfer Type            Interrupt
          Synch Type               None
          Usage Type               Feedback
        wMaxPacketSize     0x0002  1x 2 bytes
        bInterval               8
        bMaxBurst               0
]]>
https://www.derekdemuro.com/2020/06/06/finding-usb-devices-with-lsusb-idvendor-idproduct/feed/ 0 4226
Turing.com test, review, opinion. https://www.derekdemuro.com/2019/04/13/turing-com-test-review-opinion/ https://www.derekdemuro.com/2019/04/13/turing-com-test-review-opinion/#comments Sat, 13 Apr 2019 10:27:40 +0000 https://www.derekdemuro.com/?p=3836 A bit of background, I am always entertained to check out new websites this time I saw on Instagram an advertisement to check out Turing.com test

I have to admit it’s exciting until you’re done playing with their coding challenges. I did 3, okay, I didn’t kill myself over them, but it was to check it out. It’s 5:18 in the morning, and I couldn’t fall asleep, so I decided to check what’s up in the remote job land.

Anyways, my opinion?

The website seems sleek very minimal, sadly takes a long time to load. The first time you load the page, you’re hit with pointless “coolio” animations that didn’t add much… other than the suspense, of course.

Thinking it was slow just for me, I found other people complaining about the same thing, so I decided to check out if it’s quiet for us two, or more people.

Lets see how long it takes for Pingdom to get the website from their San Francisco server.

Okay, 702 ms plus the animation there we go. At least I know it’s not just me, it’s slow.

Why is it taking so long to start downloading?

117 ms on DNS… interesting, they are using cloudflare.

Regardless, the tests were fun, but when I got the “test” and saw it was like 40 hours, I decided… maybe I can do it quicker…

Well, no. It’s very vague, doesn’t contain too many guidelines it’s up to you to do everything, so I have to admit getting just an email and google docs specifying what needed to be done was an instant-turnoff. The website needs a lot of love and polishing if they plan on competing with market leaders, you know, toptal, and others.

Kudos to you guys, at least the tests were fun for tonight. Hopefully, in the future, we’ll see the website blossom, and maybe their competitors will fear them?

That’s all for now, I’m not posting the challenges so at least I leave some mystery behind.

]]>
https://www.derekdemuro.com/2019/04/13/turing-com-test-review-opinion/feed/ 1 3836