Skip to content

Instantly share code, notes, and snippets.

@legale
legale / README.md
Created September 2, 2023 13:29 — forked from hkwi/README.md
Linux vxlan nat traversal example

This example shows vxlan nat traversal, using UDP hole punching.

         +---------------+
         | (node5) vxlan |
         +---------------+
                  | uplink
       +--------------------+
       | (node4) masquerade |
 +--------------------+
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
/* event_struct.h must be included first cause of LIST_HEAD macro used by libevent2 */
#include <event2/event.h>
#include <syslog.h>
#include <event2/event_struct.h>
#include <json-c/json.h>
#include <iwinfo.h> /* iwinfo library (package/libiwinfo */
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
@legale
legale / sprint3_1.py
Created November 24, 2022 11:21 — forked from akrisanov/sprint3_1.py
Yandex.Praktikum 🍂
import pandas as pd
data = pd.read_csv("/datasets/visits.csv", sep="\t")
data['local_time'] = (
pd.to_datetime(data['date_time'], format='%Y-%m-%dT%H:%M:%S')
+ pd.Timedelta(hours=3)
)
data['date_hour'] = data['local_time'].dt.round('1H')
data['too_fast'] = data['time_spent'] < 60
data['too_slow'] = data['time_spent'] > 1000
Самостоятельный проект — это практическая проверка знаний, приобретённых вами на вводном курсе. Каждый раздел посвящён отдельной стадии анализа данных с экскурсом в основы Python. Ещё эту работу можно добавить в портфолио. Вы начинаете собирать это портфолио прямо сейчас.
Проект выполняется в пять этапов:
Постановка задачи
Получение данных
Предобработка данных
Анализ данных
Оформление результатов
Для каждой части описаны шаги выполнения c теоретическим приложением. В Jupyter Notebook эти шаги связаны между собой выводами и результатами.
Вы закрепите применение операторов и методов языка Python (и его библиотеки Pandas) на разных стадиях анализа данных. Кроме того, получите первый опыт оформления в Jupyter Notebook проекта, которым можно поделиться.
Если возникнут сложности, всегда можно воспользоваться навигацией по пройденным урокам, а также шпаргалками.
@legale
legale / 1. Анализ данных продолжается здесь
Created November 8, 2022 14:06 — forked from dsibi/1. Анализ данных продолжается здесь
yandex_python_data_analyst_5_Pandas для анализа данных
Данные исследуют в четыре стадии:
Получение данных и ознакомление с ними
Предподготовка данных
Анализ данных
Оформление результатов исследования
В этой теме мы начнём с первой стадии. В получении данных и ознакомлении с ними важную роль выполняет библиотека Pandas.
Чему вы научитесь
Познакомитесь с библиотекой Pandas и её базовыми методами: чтением файла, выводом данных на экран, получением сводной информации и запросом значений из определённых ячеек таблицы.
Сколько времени это займёт
2 часа = 6 уроков от 2 до 30 минут.
@legale
legale / 1. Принимаемся за статистику
Created November 8, 2022 14:03 — forked from dsibi/1. Принимаемся за статистику
yandex_python_data_analyst_7_Анализ данных и оформление результатов
Когда данные очищены от мусора, можно приступить к самому интересному — расчётам и презентации результатов заказчику.
Чему вы научитесь
Принципам группировки и сортировки данных, расчёту статистики и формированию наглядного отчёта об исследовании.
Сколько времени это займёт
1,5 часа = 5 уроков от 1 до 25 минут.
Постановка задачи
Завершаем анализ данных Яндекс.Музыки, выполняем поставленную менеджером задачу и сдаём отчёт.
@legale
legale / wireguard_layer2.md
Created November 5, 2022 12:34 — forked from zOrg1331/wireguard_layer2.md
wireguard, wireguard layer 2, wireguard over TCP

Intro

This note describes how to connect two networks/devices/VMs over public network using Wireguard with Layer 2 support (ARP, IPv6 link-local, etc).

This can also be achieved using SSH and its "tap" tunnel, however, it does not provide the same level of latency and bandwidth as full-blown VPN such as Wireguard.

In addition, this note describes how to tunnel Wireguard over TCP connection. This may be of use if you encounter firewall in-between so, for instance, you can use TCP port 443 only.

Objective