ビリャチピスデツナフイ Войти !bnw Сегодня Клубы
УНЯНЯ. У нас есть немножечко инфы об этом пользователе. Мы знаем, что он понаписал, порекомендовал и даже и то и другое сразу. А ещё у нас есть RSS.
Теги: Клубы:

Чуваки, наткнулся тут на канал на котором можно НЕСКУЧНО убить не один час, особенно если вы не сморите ютуб не в х2 скорости. Кратко и по делу: чувак путешествует(по бомжвею) автостоп, зацепинг, копания в помойках (если кому интересна имеено эта тема https://www.youtube.com/watch?v=LvPucEICDyw). Сам то я перся от Бродяги Фишая, но тут ребята, совсем другой уровень другой уровень (в лучшую сторону). Собственно сам канал https://www.youtube.com/channel/UCtrmW6hFYWt2cevdanrIVvg/videos
#3SIYXW (2+1) / @jahfhar / 2455 дней назад

https://esquire.ru/futures
Порекомендуйте биосы рынка, с помощью которых его обыгрывать

#FZFK0S (6+1) / @cat-o-nine-tails / 2455 дней назад

@je
Рекомендую для выбора съемного жилья заюзать google maps api distance matrix. У меня, например, собран список более менее рандомных мест, в которые я могу ходить. Я считаю с помощью google maps api, сколько из разных потенциальных жилищ я буду в среднем времени тратить в пути (либо с коэффициентами, например огромный коэффициент для места работы и маленький для любимого наркопритона, либо поровну) и строю таблицу для всех потенциальных квартир:

  • велосипедом

  • общественный транспорт, меньше всего пересадок (самый нормальный режим для гугл мапс по Москве)

  • только метро, мцк и поезда, потому что наземный транспорт в Москве слишком рандомно ходит

Код, который придется почитать, чтобы как-нибудь использовать. Строит таблички со среднем временем в пути в месяц для каждой квартиры и это же время, конвертированное в рубли (умноженное на константу)

#!/usr/bin/env python3
import pandas as pd
import googlemaps
import pytz

from collections import namedtuple
from pprint import pprint
from itertools import chain, repeat
from datetime import datetime, tzinfo
from functools import partial

gmaps = googlemaps.Client(key='AREDACTEDREDACTEDREDACTED')

# ЗАПОЛНИТЬ: сюда следует ввести адреса потенциальных мест, где я буду жить
# каждое значение может быть либо строкой с адресом, либо GPS координатами
home_addresses = [
    "Россия, Москва, ул. Усачева, 29к3",
    "Россия, Москва, ул. Беговая, 17к1",
    "Россия, Москва, Коптевская ул., 83к2",
    "Россия, Москва, ул. Степана Супруна, 3-5",
    "Россия, Москва, Новокузнецкая ул., 13/15",
    "Россия, Москва, Бутырская ул., 86Б",
    "Россия, Москва, ул. Правды, 6/34",
    "Россия, Москва,  ул. Зои и Александра Космодемьянских, 11А",
    "Россия, Москва, Ленинградский просп., 78К1",
    "Россия, Москва, Новокузнецкая ул., 13С1",
    "Россия, Москва, Севастопольский просп., 5АК1",
    "Россия, Москва, ул. 1812 года, 4/45К2",
    "Россия, Москва, Светлый проезд, 4К4",
    "Россия, Москва, Делегатская ул., 14/2",
    "Россия, Москва, ул. Маршала Рыбалко, 3",
]


# In[31]:

# ЗАПОЛНИТЬ: сюда следует ввести пары вида: 
# (адрес часто посещаемого места, период как часто вы будете добираться туда-обратно между домом и этим местом)
#
# первое значение может быть либо строкой с адресом, либо GPS координатами
#
# если второе значение например 8, это значит,
# что раз в 8 дней я езжу туда и обратно домой.
# если у вас есть место, куда вы ездите раз в 7 дней, но оттуда
# всегда едете еще куда-то, то ставьте значение 14

favorite_places = [
    ("Россия, Москва, ул. Кузнецкий Мост, 13"),  # habimoshka
    ("Россия, Москва, ул.Большая Дорогомиловская, д.5 к.2"),  # кочерга
    ("Россия, Москва, Хохловский пер, 7/9 стр 2"),  # neuron hackspace
    ("Россия, Москва, Бобров пер. 6 стр. 1, 2"),  # библиотека тургенева
    ("Россия, Москва, Милютинский пер., 19/4, стр.1"),  # зеленая дверь
    ("Россия, Москва, шелапутинский переулок, д. 6"), # swing-in-moscow
    ((55.737924, 37.620204)), # рандомный дом в центре
    ("Россия, Москва, Ленинградское шоссе, 39Ас3"), # рандомная потенциальная работа - касперский
    ("Россия, Москва, Кожевническая улица, 7"), # рандомная работа
    ("Россия, Москва, Нижний Сусальный переулок, 5с19"), # рандомная работа
    ("Россия, Москва, ул. Волочаевская, д. 5, корп. 1"), # рандомная работа - крок
    ("Россия, Москва, ул. Летниковская, 10, стр. 5"), # рандомная работа
    ("Россия, Москва, Лесная улица, 7"), # рандомная работа - авито
    ("Россия, Москва, пр-т Андропова, д. 18, корп. 1"), # рандомная работа
    ("Россия, Москва, Дмитровское шоссе, 157с5"), # рандомная работа
    ("Россия, Москва, Трубная улица, 23-2"), # ранд работа
    ("Россия, Москва, Никопольская улица, 4"), # рандом работа
    ("Россия, Москва, улица Ленинская Слобода, 19"), # рандомная работа
    "Москва, ул. Малая Юшуньская, д. 1 к2",  # locus solus
    "Москва, метро Римская",  # предел
    "Москва, Образцова, 14"  # msds
]
favorite_places = list(zip(
    favorite_places,
    repeat(len(favorite_places) / (2 * 4.5 / 7))))


def calc_avg_travel(home_addresses, favorite_places,
                    how: str, depart_when: datetime):
    request_funcs = {
        "bike": partial(gmaps.distance_matrix, mode="bicycling"),
        "car": partial(gmaps.distance_matrix, mode="driving"),
        "walking": partial(gmaps.distance_matrix, mode="walking"),
        "subway_train": partial(
            gmaps.distance_matrix, mode="transit",
            transit_mode=["subway", "train"],
            transit_routing_preference="fewer_transfers"),
        "public_transport": partial(
            gmaps.distance_matrix, mode="transit",
            transit_routing_preference="fewer_transfers")}
    assert how in request_funcs.keys()
    favorite_places = [{"location": location, "period_in_days": period_in_days}
                       for location, period_in_days in favorite_places]
    location_col = []
    duration_col = []
    home_address_col = []
    period_in_days_col = []
    for home in home_addresses:
        result = request_funcs[how](
            [home], [place["location"] for place in favorite_places],
            departure_time=depart_when)
        assert result["status"] == "OK"
        assert len(result["destination_addresses"]) == len(favorite_places)
        assert len(result["origin_addresses"]) == 1

        location_col += result["destination_addresses"]
        duration_col += [record["duration"]["value"] for record in result["rows"][0]["elements"]
                         if record["status"] == "OK"]
        home_address_col += [result["origin_addresses"][0]] * len(result["destination_addresses"])
        period_in_days_col += [place["period_in_days"] for place in favorite_places]

    data = pd.DataFrame({
        "location": location_col, "duration": duration_col,
        "home_address": home_address_col, "period_in_days": period_in_days_col
    })

    data["duration_per_day"] = data.duration / data.period_in_days
    return data

DEPARTURE_TIME = datetime(2017, 9, 5, 12, 0, tzinfo=pytz.utc) # сейчас указано в UTC. Москва это UTC+3

# a dumb test, kinda
def test_gmaps_api():
    home_addresses = [
        "Россия, Москва, Коптевская ул., 83к2",
        "Россия, Москва, ул. Степана Супруна, 3-5"
    ]
    destination_addresses = zip(home_addresses, [1, 3])
    data = calc_avg_travel(home_addresses, destination_addresses,
                           "public_transport", DEPARTURE_TIME)
    print(data)
    durations = data["duration"]
    assert durations.iloc[0] == 0
    assert durations.iloc[1] != 0
    assert durations.iloc[2] != 0
    assert durations.iloc[3] == 0

test_gmaps_api() # yeah it works


data = calc_avg_travel(home_addresses, favorite_places,
                       "subway_train", DEPARTURE_TIME)


unique_home_addresses = pd.DataFrame(pd.Series(data["home_address"].unique()).rename("address_by_google"))
unique_home_addresses["input_home_address"] = home_addresses
print(unique_home_addresses)
# ВАЖНО: проверьте в этой табличке, что в колонке address_by_google стоит адрес,
# понятый гуглом правильно (изначальные адреса - в колонке input_home_address)


# In[62]:

unique_destination_addresses = pd.DataFrame(pd.Series(data["location"].unique()).rename("address_by_google"))
unique_destination_addresses["input_favorite_place"] = [str(pair[0]) for pair in favorite_places]
print(unique_destination_addresses)
# ВАЖНО: проверьте в этой табличке, что в колонке address_by_google стоит адрес,
# понятый гуглом правильно (изначальные адреса - в колонке input_favorite_place)


# In[63]:

print(data.head())
print(data.tail())
# ЗАМЕЧАНИЕ: здесь будут просто показаны конец и начало получившейся таблицы
# Если не лень, можете посмотреть, чтобы каких-то неадекватных значений не было
# duration - время чтобы добраться от места до места в секундах
# period_in_days - тот самый указанный выше период в днях
# duration_per_day - кол-во секунд в день


# In[64]:

# calculate travel time per day for each home address

travel_times_per_day_per_home = pd.DataFrame(
    (data.groupby("home_address")["duration_per_day"].sum() / 60)
    .rename("minutes_of_travel_per_day")
).sort_values(by="minutes_of_travel_per_day")
print(travel_times_per_day_per_home)
# ВАЖНО: это финальный результат
# для каждого адреса квартиры в другой колонке будет указано кол-во минут, затрачиваемых на дорогу, в день
# адреса будут отсортированы от самых выгодных по времени в дороге до самых невыгодных


# In[65]:

COST_PER_HOUR = 340  # RUR
costs = travel_times_per_day_per_home     .assign(hours_per_month=lambda df: (df["minutes_of_travel_per_day"] * 30.5 / 60).round(1))     .assign(converted_rur_per_month=lambda df: df["hours_per_month"] * COST_PER_HOUR)

print(costs)
#UVGF8R (19+6) / @cat-o-nine-tails / 2455 дней назад
Как в 2017 году добавить библиотеку в проект. - java: скачать бинарь и добавить референс в редакторе - c#: тренькнуть nuget (или скачать бинарь и добавить референс в редакторе) - go: тренькнуть go install - node: тренькнуть npm install - python: тренькнуть pip install - c/c++: скачать бинарь, скачать отладочный бинарь, скачать хедеры, скачать все зависимости, добавить путь и имя линковщику для отладочной и для релизной сборки, добавить путь к хедерам в инклюды, добавить бинарь в PATH, добавить инструкцию в скриптопарашу которая собирает дистрибутив с всеми зависимостями, потеребить флаги линковщика (добавить/удалить эксепшоны), понять что бинарь собран без нужных флагов, скачать исходники, установить cmake\automake\bjam\younameit, установить сдк, понять что версия компилятора не поддерживается, отредактировать код для поддержки версии компилятора, академическая шаблонопараша не собирается вываливаясь с трансцедентной ошибкой
#G6FM1E (7+3) / @mugiseyebrows / 2457 дней назад

Nextcloud - говно. Под дебиан нет пакета. Со snap-пакетом невозможно изменить конфигурацию апача или чего-либо еще - работает он на localhost:80, и все, больше нигде, ну охуеть теперь. Просто скачать nextcloud-12.0.0.tar.gz и сделать make && ./configure && make install это пушка, потому что хуй тебе, а не секурити апдейты. Docker это сложно, в первую очередь потому что нет разделения на секурити апдейты и на прочие, а значит при обновлениях что-нибудь может сломаться. Ну и чтобы обновлялось само, надо попердолиться. Где там ваши домашние облака на битчизах и бласуксах?

Алсо бнващеры, где вы храните телефоны, имейлы, адреса и прочие данные о знакомых и как синхронизируете между девайсами? Надеюсь, не через гугл.

#7IP860 (7) / @cat-o-nine-tails / 2462 дня назад
# cat /etc/systemd/system/restart-prosody.service 
[Unit] 
Description=restart prosody 
Requisite=prosody.service 

[Service] 
Type=oneshot 
ExecStart=/bin/systemctl restart prosody.service 

# cat /etc/systemd/system/restart-prosody.timer 
[Unit] 
Description=reload prosody once a month, otherwise https certificate may get old and prosody won't reload it automatically 

[Timer] 
OnCalendar=monthly 
Persistent=true 

[Install] 
WantedBy=timers.target
#VC9KI3 (2) / @cat-o-nine-tails / 2465 дней назад
Видеохроники от первого лица "один мой день".
#636BVU (11+2) / @l29ah / 2469 дней назад

Как вести себя при обыске: https://twitter.com/polinanem/status/857603674939510784
У вас есть 15-30 минут, потом дверь действительно могут вскрыть. Успейте смыть все в-ва в унитаз.

#LFQBUK (2+1) / @cat-o-nine-tails / 2469 дней назад

Порекомендуйте костыль для youtube, чтобы можно было одновременно скачивать видос на диск и при этом стримить его. Крайне желательно чтобы можно было перематывать на места, которые еще не скачались.

#GPMUAX (3) / @cat-o-nine-tails / 2474 дня назад

Пришла моя очередь поддаться на троллинги о вкусной еде. https://i.imgur.com/SSSOAn9.jpg

#ZSQOJ6 (7) / @cat-o-nine-tails / 2475 дней назад

Пришло время пердоликами со всякими жирнолисами обновить карту территории: https://radar.metrika.yandex/browsers?selected_rows=Ct58LP%252CRysHuf%252CnmpVtr%252C%252Fl27zq%252C%252BjXhkh%252Ce1IAm2%252C2kuSN7%252Cs%252FDH9r%252CkCujza яндекс браузер - 2-ой по популярности в России. Это вообще супер внезапно для меня. А фуррифокс менее популярный, чем сафари.

#CDMWDO (4) / @cat-o-nine-tails / 2478 дней назад
http://velopiter.spb.ru/forum/topic/241359-%D1%81%D1%82%D0%B0%D1%82%D0%B8%D1%81%D1%82%D0%B8%D0%BA%D0%B0-%D0%B2%D0%B5%D0%BB%D0%BE%D0%B4%D1%82%D0%BF-2016/ Бесполезная статистика, потому что в ней большинство людей - велосипедисты, ездящие по тротуарам. 5. Условия и нарушения  Ниже представлены основные тезисы, касающиеся аналитики по условиям ДТП, нарушениям и виновникам.  1) Перегоны  Треть всех велосипедных ДТП Петербурга 2016 года случилась на перегонах, то есть вне каких-либо дорожных сооружений. Виновность в таких ДТП распределялась примерно поровну между водителями и велосипедистами, год назад водители становились виновниками чаще.  2) Зебра  Каждое четвёртое велоДТП произошло на пешеходном переходе (в зоне перекрёстка или вне его). На регулируемых переходах велоДТП случаются в 2,5 раза чаще, чем на переходах без светофора. В 70% таких ДТП виновником признаётся велосипедист, ещё в 15% ответственность разделяют оба участника. Несмотря на такой перевес, год назад ситуация была ещё менее выгодной для велосипедистов.  3) Перекрёсток  Каждое четвёртое велоДТП произошло на перекрёстке, в том числе 58% из них – на переходе в зоне перекрёстка. Соотношение велоДТП на регулируемых и нерегулируемых перекрёстках примерно такое же, как и на зебрах. Велосипедист признавался виновником таких ДТП в 51% случаев, а водитель – в 40%. При этом в случае ДТП на нерегулируемом перекрёстке виновником чаще оказывался водитель.  4) Тротуары, дворы и выезды из них  Каждое четвёртое велоДТП произошло на выезде с прилегающей (14%), на внутридворовой территории (10%) или тротуаре (6%). В таких велоДТП вина, как правило, приписывалась водителю (в среднем в 76%, в зависимости от места ДТП), причём в этом году – чаще, чем в прошлом.
#VBW2CT (1) / @cat-o-nine-tails / 2478 дней назад
НИ ЕДИНОГО СЕГФОЛТА!!!! https://habrahabr.ru/company/erlyvideo/blog/334912/ "А чего там про Rust Вот как раз стример у нас ржавый. Целая пачка unsafe кода, автогенеренного из сишного кода SDK с помощью bindgen, подпатченый биндинг к libc (постараемся залить патч в апстрим) и дальше реализация RTSP на tokio. Даже уже есть возможность посмотреть видео с камеры в обычном браузере — это недостижимая роскошь для китайских камер, которые поголовно требуют установку ActiveX. Структура очень непривычна после эрланга: ведь тут нет процессов и сообщений, есть каналы, а с ними всё становится немножко по-другому. Как я уже выше писал, современно написанный код с правильной организацией дает возможность раздавать видео не 2-3 клиентам, а более 50 без какой-либо просадки производительности. Важный момент: за время разработки пока не случилось ни единого сегфолта. Пока есть стойкое ощущение, что Rust заставляет писать так, как в принципе пишут хорошие поседевшие сишники, повидавшие всякого нехорошего. Так что пока всё нравится. В течение августа есть планы закончить работу по базовому сценарию, так что есть вопрос к аудитории, который идет в опросе. Ну и задавайте вопросы, которые возникли."
#NGXQPU (0+1) / @o01eg / 2480 дней назад

EIN (Emacs Ipython Notebook) - глючное говно, поэтому я, попробовав его 2 дня, ухожу обратно в веб интерфейс страдать без удобных шорткатов.

#BDIWUV (0) / @cat-o-nine-tails / 2481 день назад

Сегодня мною был куплен https://lleo.me/dnevnik/2010/09/veshi_shturmovik1.jpg за 1500р. Завтра-послезавтра узнаю, не зря ли на него так дрочат.

#6AFJ3I (6) / @cat-o-nine-tails / 2487 дней назад

Какой клиент для xmpp с поддержкой perfect forward secrecy самый секурный? Pidgin с libpurple и purple-otr, насколько я знаю, никто нихуя не аудировал. А может хмпп вообще не нужен, и какой-нибудь там signal безопаснее?

#P2HC2P (2) / @cat-o-nine-tails / 2492 дня назад
Какой формат аукциона равновыгоден как для приобретателя, так и для продавца, и при этом товар достаётся наиболее желающему его человеку?
#YTZF5G (6+1) / @l29ah / 2499 дней назад
https://news.drweb.ru/show/?i=11373&lng=ru&c=14 ура, электронное правительство!
#WW0IP4 (0+2) / @l29ah / 2503 дня назад
--
ipv6 ready BnW для ведрофона BnW на Реформале Викивач Котятки

Цоперайт © 2010-2016 @stiletto.