Изкачване на връх Фенгари, о. Самотраки

Накратко

Едно невероятно преживяване от ~ 0м надморска височина до 1611м (официални)! Преходът отне 11 часа през юни (светлата част на деня бе ~15 часа). Със спиране на често, качването бе – 5ч и 50мин, а слизането – 4ч и 50мин. Пътеката се вижда сравнително ясно, макар че на няколко пъти има отклонения, които могат да бъдат заблуждаващи, особено на слизане.

Маркировката

Маркировката е червена боя поставена основно върху камъни и скали

Маркировката

Стигане до острова

До островът се стига с ферибот от Александруполис. Продължителността е 2 часа в посока. Възможност за онлайн резервация и текуща справка на цената има през FerryHopper & Zante Ferries. Ориентировъчно, цената беше по 17евро на човек и 64 евро за автомобил (> 4.25м).

За острова

Самотраки е един по-див остров, изпълнен с красива природа, водопади, крайпътни заведения и… папрат. Намира се на югозапад от Александруполис (Дедеагач). Не е известен с плажовете си, макар че има няколко такива – предимно каменисти в северната част и един по-хубав в южната част. Село Терма, от където тръгва и пътеката за върха, е и известно с термалните си извори.

о. Самотраки от север

Паркиране

Ако сте с кола има паркинг точно пред супермаркета в селото: https://goo.gl/maps/kmL1caz5h8uRjz11A

Вода

Добро зареждане от поне 3-4л вода/течности трябва да е достатъчно. Чешма има малко по-надолу в селото срещу супермаркета. Вода по маршрутът няма, освен едно поточе, което не знам дали е там целогодишно и не препоръчвам да се използва за целта.

Маршрутът

Както вече стана ясно – следваме червената маркирова. Пътят към пътеката за върха започва от краят на асфалтовият път в село Терма. От там се тръгва на юг и после се поема на изток (вляво). Изглежда да се минава през черен път, а след това и частен имот – движим направо.

Първите 30-40мин от пътеката се минава през солидно количество висока папрат, затова дълъг панталон и би бил удобен, ако не искате да се надраскате.

Маршрутът. Източник: strava.com

В началото по пътеката се движим по хребетът непосредствено над селото, след което на около 1200м н.в. се правим прехвърляне на източеният хребет. Расителността е основно ниска, пътеката се откроява Пътеката нагоре става все по-камениста и растителността става по-ниска. към 1400м н.в. изчезва и се движим само по скали

След прехвърлянето на другия хребет са и последните дървета, където направихме почивка под дебелата сянка, събрахме сили и продължихме

Следва около час до билото, от където успяваме да надникнем и на югозапад

Поглед на югозапад

От тук отне още около час и половина (с почивките и снимките) докато стигнем до самият връх, който по данни на GPS-а е третият връх по пътеката. Това е снимка от върха с поглед назад:

Поглед назад към пътеката

Движим се по билото, което е най-вдясно на снимката, през върхът вляво до мястото от където е направена снимката – 1621м н.в.!

HTTP Client Hints API

Какво е Client Hints API?

Client Hints (CH) API е набор от HTTP хедъри за проактивна комуникация и трансфер на ресурси и съдържание (content-negotiation).
Към момента на писане на статията статуса на предложението е „Experimental„.
Ето и какво ще разгледаме днес:

Как функционира?

Client Hints API функционира на application ниво, и по-конкретно като extension на самият HTTP протокол, но само, когато е наличен TLS. Представлява размяна хедъри към заявките, които дават различни параметри (ресурси, информация за използваната мрежа, скорост и др.) за клиента свързващ се към сървъра като за целта сървъра инициира комуникацията, че иска тези данни. Ако погледнем следния пример – при заявка за даден ресурс на сървъра:

Сървърът връща този ресурс, добавяйки следният Accept-CH хедър:

Accept-CH = <sh-list>

И по-конкретно:

Accept-CH: Sec-CH-Example, Sec-SH-Example-2

Когато клиентът (обикновено вашият браузър) получи този хедър, това индикира, че източника (сървъра) поддържа Client Hints.

Пример за комуникация

По-цялостен и реалистичен пример за комуникация, би изглеждал така.
Client:

GET https://example.com/

Server:

Accept-CH: viewport-width, dpr, device-memory, rtt, downlink, ect
Accept-CH-Lifetime: 30

Client:

Viewport-Width: 1920
DPR: 1
Device-Memory: 8
RTT: 50
Downlink: 10
ECT: 4g

Кои са хедърите в спецификацията?

Accept-CH – Списък с необходимите хедъри от сървъра (origin)
Accept-CH-Lifetime
Viewport-Width – Ширината на дисплея в пиксели
DPR – Device Pixel Ration, индикира съотношението на физическите пиксели на дисплея към логическите в CSS (aka CSS pixel ratio)
Device-Memory* – Приблизителното стойност на оперативна памет на клиента. Примерни стойности: 0.25, 0.5, 1, 4, 8 т.н.
RTT* – Round Trip Time в милисекунди. Тъй като говорим в контекста на протокол от application layer-а, а не стандартния TTL в transport layer-а, стойностите са закръглени до 25-тата милисекунда.
Downlink* – Индикира скоростта на клиента в Mbps (megabits per second), отново закръглена.
ECT* – Effective Connection Time. Валидни стойности: 4g, 3g, 2g и slow-2g.
Save-Data – Специфичен хедър за Android у-ва, които сървъра не може да „изисква“ в първоначалния списък на Accept-CH. Активира Data Saver мерките за минимизиране на трафика. Валидна стойност: On.
Sec-CH-UA – Името на браузъра и major версията му. Примерна стойност: „Google Chrome“; v=“83″.
Sec-CH-UA-Platform – Индикира име на ОС и версията ѝ.
Sec-CH-UA-Arch – Информация за архитектурата на клиента.
Sec-CH-UA-Model – Определя модела на използваното устройство.
Sec-CH-UA-Mobile – Индикира дали response-а (като UX) трябва да е конкретно за мобилни устройства.

Допълнителна информация

Can I Use – Client Hints (DPR, Width, Viewport-Width)
Chrome Platform Status – Client Hints
Mozilla Developer Network – Client Hints
HTTP Client Hints Proposal

* С оглед превенция на fingerprinting, стойностите се закръглят

Linux: installing global npm packages without using sudo (a.k.a. resolving EACCES permissions errors when installing packages globally)

1. Create a directory where global packages will be deployed:

mkdir ~/.npm-global

2. Set the newly created directory as default global directory for npm:

npm config set prefix '~/.npm-global'

3. Update the $PATH environment variable by adding this to your .profile file (in your user home directory) so that the terminal knows where to find the global packages:

export PATH=~/.npm-global/bin:$PATH

4. Reload environment in current shell by running (or just open a new one):

source ~/.profile

5. Test if the setup was successful by installing a package (without using sudo):

npm i -g jshint

6. And running it (should print out jshint version):

jshint --version

Stay healthy!