Skip to content

Instantly share code, notes, and snippets.

@legale
legale / uri.js
Last active January 12, 2018 20:06 — forked from jlong/uri.js
php parse_url() JS analog
function parse_url(uri){
var a = document.createElement('a');
a.href = uri;
return {scheme: a.protocol, user: a.username, pass: a.password,
host: a.hostname, port: a.port, path: a.pathname,
query: a.search, fragment: a.hash
}
}
//demo
@legale
legale / longest-common-substring.php
Last active November 19, 2018 02:36 — forked from relaxnow/longest-common-substring.php
Longest Common Substring algorithm in PHP
<?php
function getLongestCommonSubstring($first, $second)
{
$longestCommonSubstringIndexInFirst = 0;
$table = array();
$largestFound = 0;
$firstLength = strlen($first);
$secondLength = strlen($second);
@legale
legale / Yatrie.php
Created August 1, 2018 10:40
Trie PHP Library
<?php
/**
* Class Yatrie
*/
class Yatrie
{
public $deal = []; //deallocated memory array to store deallocated memory blocks for the future reuse
/**
@legale
legale / wg-quick.sh
Last active February 19, 2022 07:43
wg-quick without bin/bash busybox /bin/sh is enough
#!/bin/sh
#set -x
WG_CONFIG=""
INTERFACE=""
ADDRESSES=""
MTU=""
DNS=""
DNS_SEARCH=""
TABLE=""
@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

@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 / 1. Анализ данных продолжается здесь
Created November 8, 2022 14:06 — forked from dsibi/1. Анализ данных продолжается здесь
yandex_python_data_analyst_5_Pandas для анализа данных
Данные исследуют в четыре стадии:
Получение данных и ознакомление с ними
Предподготовка данных
Анализ данных
Оформление результатов исследования
В этой теме мы начнём с первой стадии. В получении данных и ознакомлении с ними важную роль выполняет библиотека Pandas.
Чему вы научитесь
Познакомитесь с библиотекой Pandas и её базовыми методами: чтением файла, выводом данных на экран, получением сводной информации и запросом значений из определённых ячеек таблицы.
Сколько времени это займёт
2 часа = 6 уроков от 2 до 30 минут.
Самостоятельный проект — это практическая проверка знаний, приобретённых вами на вводном курсе. Каждый раздел посвящён отдельной стадии анализа данных с экскурсом в основы Python. Ещё эту работу можно добавить в портфолио. Вы начинаете собирать это портфолио прямо сейчас.
Проект выполняется в пять этапов:
Постановка задачи
Получение данных
Предобработка данных
Анализ данных
Оформление результатов
Для каждой части описаны шаги выполнения c теоретическим приложением. В Jupyter Notebook эти шаги связаны между собой выводами и результатами.
Вы закрепите применение операторов и методов языка Python (и его библиотеки Pandas) на разных стадиях анализа данных. Кроме того, получите первый опыт оформления в Jupyter Notebook проекта, которым можно поделиться.
Если возникнут сложности, всегда можно воспользоваться навигацией по пройденным урокам, а также шпаргалками.
@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
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.