karpkarpkarpkapr

karpkarpkarpkapr

На Пикабу
Дата рождения: 12 декабря

Может быть обновлю какую ни будь железку в компе

Особо в деньгах не нуждаюсь, но если есть возможность подключить сбор, то почему бы и нет?)

0 10 000
из 10 000 собрано осталось собрать
8865 рейтинг 45 подписчиков 54 подписки 26 постов 9 в горячем
Награды:
5 лет на Пикабу
0

Ответ на пост «Накрутчики»1

Нанимают студентов\джунов за 30-60 тысяч в месяц. Составляют им правильное резюме, накручивают опыт, дописывают технологии с которыми работал и продают заказчику как крепкого мидла\синьора за 2-2.5к в час.

Частенько бывает что с заказчиком нужно проходить собеседование, тут два варианта. Либо вместо тебя проходит собеседование кто то другой, и работает типа он, но по факту ты, либо при трудоустройстве в такую галеру тебе выдается так называемый welcome лист, где прописаны все вопросы, которые тебе нужно вызубрить, тк с высокой долей вероятности заказчик тебя их спросит.

Ну и в последствии это выливается в то, что сроки проекта жестко срываются, тк новый React разработчик оказывается никогда не работал с React и он сидит его сейчас учит, у него только базовые знания js есть. Ну и код там соответствующий, часть древнего проекта на php(laravel), наслаждайтесь)

public function getEventsGuest(GetEventsGuestRequest $request)

{

$attr = $request->validated();

$event = Event::where('events.id', '>', 0);

$add_view = null;

$has_orderBy = false;

$event = $event->where('is_deleted', 0);

$event = $event->where('is_banned', 0);

if (!array_key_exists('evt_id', $attr)) {

if (array_key_exists('is_archive', $attr) && $attr['is_archive'] == true) {

$event = $event->where('is_archive', true);

} else {

$event = $event->where('is_archive', false);

}

}

// get-event-by-id

if (array_key_exists('evt_id', $attr)) {

$add_view = $attr['evt_id'];

$event = $event->where('id', $attr['evt_id']);

}

// get-events-by-lat-long

if (

array_key_exists('lt_lat', $attr) &&

array_key_exists('rb_lat', $attr) &&

array_key_exists('lt_long', $attr) &&

array_key_exists('rb_long', $attr)

) {

$event = $event->where('evt_lat', '<=', $attr['lt_lat'])

->where('evt_lat', '>=', $attr['rb_lat'])

->where('evt_long', '>=', $attr['lt_long'])

->where('evt_long', '<=', $attr['rb_long']);

}

// get-events-by-category

if (array_key_exists('evt_ctgy_id', $attr)) {

// All children (one level deep)

$cat_ids = EventCategory::where('parent_id', $attr['evt_ctgy_id'])->pluck('id', 'id')->toArray();

// And main

$cat_ids = array_merge($cat_ids, $attr['evt_ctgy_id']);

$event = $event->whereIn('evt_ctgy_id', $cat_ids);

}

if (array_key_exists('pet_type', $attr)) {

$event = $event->whereHas('pet', function ($query) use ($request) {

$query->where('type_id', $request->get('pet_type'));

});

}

// get-events-by-date-time

if (

array_key_exists('date', $attr) &&

array_key_exists('duration', $attr)

) {

$event = $event->where('evt_dt_added', '>=', $attr['date'] - $attr['duration'])

->where('evt_dt_added', '<=', $attr['date']);

}

// get-events-by-radius

if (

array_key_exists('center_lat', $attr) &&

array_key_exists('center_long', $attr) &&

array_key_exists('distance', $attr)

) {

$event = $event->selectRaw("* ,

( 6371 * acos( cos( radians(?) ) *

cos( radians( evt_lat ) )

* cos( radians( evt_long ) - radians(?)

) + sin( radians(?) ) *

sin( radians( evt_lat ) ) )

) AS distance", [

$attr['center_lat'],

$attr['center_long'],

$attr['center_lat']

])

->having("distance", "<", $attr['distance'])

->orderBy("distance", 'asc');

$has_orderBy = true;

// dd($event->first());

}

if ($request->has('type')) {

$event->where('type', $request->type);

}

if (!$has_orderBy) {

$event->latest();

}

$limit = (int)$request->get('limit', 30);

$events = $event

->with('media')

->with('pet')

->with('pet.media')

->with('user')

->with('user.services')

->with('user.occupations')

->with('last_tree_likes')

->with('last_tree_likes.user')

// ->with('user.media')

->paginate($limit);

return response([

'status' => 'success',

'events' => EventGuestResource::collectionFull($events, $add_view)

], 201);

}

public function getEvents(GetEventsRequest $request)

{

$attr = $request->validated();

// ))))) lol

$event = Event::where('events.id', '>', 0);

$blocked_users_ids = BlockedUser::getAuthUserIds();

$event = $event->whereNotIn('user_id', $blocked_users_ids);

$add_view = null;

$has_orderBy = false;

$event = $event->where('is_deleted', (bool)$request->get('is_deleted'));

$event = $event->where('is_banned', (bool)$request->get('is_banned'));

//dd($attr);

// is archive

//7.28.22 exclude is_archive param if we are directly getting the event with evt_id

if (!array_key_exists('evt_id', $attr)) {

if (array_key_exists('is_archive', $attr) && $attr['is_archive'] == true) {

$event = $event->where('is_archive', true);

} else {

$event = $event->where('is_archive', false);

}

}

if (array_key_exists('pet_type', $attr)) {

$event = $event->whereHas('pet', function ($query) use ($request) {

$query->where('type_id', $request->get('pet_type'));

});

}

// get-event-by-id

if (array_key_exists('evt_id', $attr)) {

$add_view = $attr['evt_id'];

$event = $event->where('id', $attr['evt_id']);

EventViewHistory::addAuth(intval($attr['evt_id']));

}

// get-events-by-lat-long

if (

array_key_exists('lt_lat', $attr) &&

array_key_exists('rb_lat', $attr) &&

array_key_exists('lt_long', $attr) &&

array_key_exists('rb_long', $attr)

) {

$event = $event->where('evt_lat', '<=', $attr['lt_lat'])

->where('evt_lat', '>=', $attr['rb_lat'])

->where('evt_long', '>=', $attr['lt_long'])

->where('evt_long', '<=', $attr['rb_long']);

}

// get-events-by-category

if (array_key_exists('evt_ctgy_id', $attr)) {

//dd($attr);

if ($attr['evt_ctgy_id'][0] == 39) {

//todo: add flag/logic in db

$cat_ids = EventCategory::where('parent_id', 3)->pluck('id', 'id')->toArray();

} else {

// All children (one level deep)

$cat_ids = EventCategory::where('parent_id', $attr['evt_ctgy_id'])->pluck('id', 'id')->toArray();

// And main

}

$cat_ids = array_merge($cat_ids, $attr['evt_ctgy_id']);

$event = $event->whereIn('evt_ctgy_id', $cat_ids);

}

// get-events-by-topic

if (array_key_exists('topic', $attr)) {

$event = $event->where('evt_topic', 'like', '%' . $attr['topic'] . '%');

}

// get-events-by-user

if (array_key_exists('user_id', $attr)) {

// $event = Event::query();

$event = $event->where('events.user_id', $attr['user_id']);

if ($request->has('with_comments') && $request->with_comments) {

$has_orderBy = true;

// dd(EventComment::

// where('user_id', $attr['user_id'])

//// ->whereColumn('event_comments.event_id', 'events.id')

// ->latest()

// ->take(1)->get());

$event = $event->whereHas('comments', function ($query) use ($request) {

$query->where('user_id', $request->get('user_id'))->take(1);

});

// dd($event->get());

$event = $event->orderByDesc(EventComment::select('created_at')

->where('event_comments.user_id', $attr['user_id'])

->whereColumn('event_comments.event_id', 'events.id')

// ->latest()

->take(1)

);

$event = $event->with('comments');

// dd($event->toSql());

}

}

// get-events-by-description

if (array_key_exists('description', $attr)) {

$event = $event->where('description', 'like', '%' . $attr['description'] . '%');

}

// get-events-by-date-time

if (

array_key_exists('date', $attr) &&

array_key_exists('duration', $attr)

) {

$event = $event->where('evt_dt_added', '>=', $attr['date'] - $attr['duration'])

->where('evt_dt_added', '<=', $attr['date']);

}

// get-events-by-search

if (array_key_exists('keyword', $attr)) {

SearchKeyword::addEventSearch($attr['keyword']);

$event = $event->where(function ($q) use ($attr) {

return $q->where('evt_address', 'like', '%' . $attr['keyword'] . '%')

->orWhere('evt_topic', 'like', '%' . $attr['keyword'] . '%')

->orWhere('description', 'like', '%' . $attr['keyword'] . '%');

});

}

// get-events-by-radius

if (

array_key_exists('center_lat', $attr) &&

array_key_exists('center_long', $attr) &&

array_key_exists('distance', $attr)

) {

$event = $event->selectRaw("* ,

( 6371 * acos( cos( radians(?) ) *

cos( radians( evt_lat ) )

* cos( radians( evt_long ) - radians(?)

) + sin( radians(?) ) *

sin( radians( evt_lat ) ) )

) AS distance", [

$attr['center_lat'],

$attr['center_long'],

$attr['center_lat']

])

->having("distance", "<", $attr['distance'])

->orderBy("distance", 'asc');

$has_orderBy = true;

// dd($event->first());

}

$debug = "";

if ($request->has('order_by_user_distance')) {

$distance_direction = $request->has('order_by_user_distance_direction') &&

$request->order_by_user_distance_direction == 'desc' ? 'desc' : 'asc';

$distance_radius = $request->get('order_by_user_distance_radius', 40000);

$user_lat = auth()->user()->lat;

$user_long = auth()->user()->long;

$debug = $user_lat.' '.$user_long;

if ($user_lat && $user_long) {

$event->geofence($user_lat, $user_long, 0, $distance_radius)->orderBy(Event::DISTANCE_COLUMN, $distance_direction);

$has_orderBy = true;

} else {

Log::error('You cannot sort event by distance for user without geolocation');

}

}

// if ($request->has('limit')) {

// $event->take($request->limit);

// }

if ($request->has('search')) {

$event->orWhere(function (Builder $query) use ($request) {

$query->orWhere('evt_topic', 'LIKE', '%' . $request->search . '%')

->orWhere('description', 'LIKE', '%' . $request->search . '%');

});

}

if ($request->has('type')) {

$event->where('type', $request->type);

}

if ($request->has('da_data_region_id')) {

$event->where('da_data_region_id', $request->da_data_region_id);

}

if ($request->has('da_data_location_fias_id')) {

$event->where('da_data_fias_id', $request->da_data_location_fias_id);

}

if ($request->has('da_data_country_id')) {

$event->where('da_data_country_id', $request->da_data_country_id);

}

if ($request->has('region_query_text')) {

$region_ids = DaDataRegion::where('name', 'LIKE', '%' . $request->region_query_text .

'%')->pluck('id')->toArray();

$event->whereIn('da_data_region_id', $region_ids);

}

if ($request->has('location_query_text')) {

$region_like_query = '%' . $request->location_query_text . '%';

$location_fias_ids = DaDataCity::query()

->orWhere('address', 'LIKE', $region_like_query)

->orWhere('region', 'LIKE', $region_like_query)

->orWhere('city', 'LIKE', $region_like_query)

->pluck('fias_id')->toArray();

$event->whereIn('da_data_fias_id', $location_fias_ids);

}

if (

$request->has('da_data_region_id') ||

$request->has('da_data_location_fias_id') ||

$request->has('da_data_country_id') ||

$request->has('region_query_text') ||

$request->has('location_query_text')

) {

$event->with('daDataRegion')->with('daDataCity')->with('daDataCountry');

}

if ($request->has('is_emergency')) {

$event->where('is_emergency', (bool)$request->is_emergency);

}

if (!$has_orderBy) {

$event->latest();

}

if (array_key_exists('nolimit', $attr)) {

$limit = 1000;

} else {

$limit = (int)$request->get('limit', 20);

}

$is_map = (bool)$request->get('is_map');

if ($is_map) {

$events = $event->with('media')->paginate($limit);

return response([

'status' => 'success',

'events' => EventResourceMapVersion::collectionFull($events, $add_view)

], 201);

}

$events = $event

->withCount('comments')

->with('media')

->with('pet')

->with('pet.media')

->with('user')

->with('user.services')

->with('user.occupations')

->with('last_tree_likes')

->with('last_tree_likes.user')

// ->with('user.media')

->paginate($limit);

// dd($events->first()->comments_count);

return response([

'status' => 'success',

'events' => EventResource::collectionFull($events, $add_view),

// 'debug' => $debug

], 201);

}

Показать полностью
28

Строительство в Fallout 76

Строительство в F76 не такое глобальное и веселое как в F4, есть конечно вариант приобрести свой собственный мир и строить там без ограничений, но отдавать почти 1,5 к рублей в месяц как то уж слишком. Но небольшие уютные домики строить можно) Небольшая подборка моих избушек

  1. Мой первый бункер. Жаль, что беседка никак не может добавить нпс в убежища

2. Небольшая лесопилка

3. Поселения в игре строить не комфортно, тк все упирается в радиус строительства и в ресурсы, но мини поселение изобразить все таки можно

4. Популярная тема делать импровизированные бункеры, например можно застроить пустоту под мостом

5. Мой самый уютный дом. Влил в него почти 100% бюджета на строительство

6. Еще один небольшой бункер со всем нужным внутри.

7. Игра не позволяет строить нормальные вышки, тк есть ограничение по высоте, да и не из чего строить, но можно найти локации, которые позволяют построить повыше

8. Самый скучный дом из всех который я строил

9. Небольшая рыбацкая хижина

10. Еще одна хижина в лесу

11. Нашел спустя 3 года еще одно место, где можно разместить кемп под мостом

12. На последок решил восстановить разрушенный дом

Показать полностью 11
35

Остров Стали. Часть 7

А мы продолжаем дальше и не останавливаемся) На этот раз реализовал небольшую рыбацкую хижину с окружением, ну и опасный горный спуск\подъем на гору. Частично реализован аэродром и подгорный тоннель, в котором хочу сделать большое поселение

Первый этаж хижины

Первый этаж хижины

На втором этаже стоят верстаки

На втором этаже стоят верстаки

Что то вроде небольшого причала

Что то вроде небольшого причала

Хижина находится довольно высоко, до нее тоже нужно постараться залезть

Хижина находится довольно высоко, до нее тоже нужно постараться залезть

Хижина находится прямо под склоном аэродрома, подъем максимально опасный и самодельный

Хижина находится прямо под склоном аэродрома, подъем максимально опасный и самодельный

Забираться придется высоко

Забираться придется высоко

Сквозь густые заросли

Сквозь густые заросли

Более менее легкая часть маршрута

Более менее легкая часть маршрута

Вид сзади

Вид сзади

Поднявшись на аэродром, нас встречает заросший самолет Skylane

Поднявшись на аэродром, нас встречает заросший самолет Skylane

Вдоль полосы есть ангары с заброшенной техникой

Вдоль полосы есть ангары с заброшенной техникой

Еще один ангар

Еще один ангар

Нежилое крыло самолета

Нежилое крыло самолета

А это жилое, внутри мастерская, жилые помещения и качалка)

А это жилое, внутри мастерская, жилые помещения и качалка)

Вышка на аэродроме

Вышка на аэродроме

Внутри всякая техника

Внутри всякая техника

Административное здание вдоль аэродрома, в левой части здания мега склад с припасами

Административное здание вдоль аэродрома, в левой части здания мега склад с припасами

Тоннель, на котором транспорт может заехать на аэродром

Тоннель, на котором транспорт может заехать на аэродром

Тоннель которым сейчас занимаюсь, пока темно, но скоро там будет поселение

Тоннель которым сейчас занимаюсь, пока темно, но скоро там будет поселение

Тоннель с другой стороны

Тоннель с другой стороны

Показать полностью 19
0

Ответ на пост «Как я собеседовался в одну IT компанию»7

А еще будьте осторожны с компаниями, которые для работы предоставляют собственные ноутбуки, вроде как требование службы безопасности. Мне как то вручили такой, и во время работы у меня отключилась мышка, я подумал аккумулятор что ли разрядился, а потом смотрю на экран, а она у меня там по всему экрану скачет, впн настраивает.

Оказалось что в ноуте был какой то вшитый софт, который позволял удаленно подключаться к ноуту и мониторить активность разработчика, делать скрины экрана, снимки c вебки, ну и передавать управление ноутбуком админам.

На собеседовании естественно ни о чем таком мне не говорили, хотя я спрашивал, и про тайм трекеры спрашивал тоже. Сказали просто ноут дадут и работай не парься.

Не то что бы я титьки мял на работе, но само чувство, что тебя контролируют, отслеживают клики и тд уже вызывало дикий дискомфорт.

Сейчас на собеседованиях всегда спрашиваю, могу ли я работать на своем ноуте и нужно ли будет устанавливать какой нибудь софт. Крупные компании типа Ростелекома, Сбера и тд предоставляют свои ноуты. Некоторые компании дают полностью зашитые ноутбуки, т.е. заранее предустановленная ОС, как правило винда, хотя я на винде никогда не работал, либо линукс, либо мак. Софт также предустановлен исходя из требований службы безопасности, установить что то свое, c чем ты привык работать нельзя. Интернет только по проводу, WiFi модуль отключен, usb порты тоже отключены.

Показать полностью
25

Остров Стали. Часть 6

На этот раз сделал небольшой рефакторинг воинской части, и приступил к реализации идеи по созданию огромного военного аэродрома высоко в горах

Дорога от воинской части довольно сложная и длинная, по пути можно найти сторожевую вышку, в которой можно будет перевести дух

Дорога от воинской части довольно сложная и длинная, по пути можно найти сторожевую вышку, в которой можно будет перевести дух

На вышке есть необходимые станки, плита и кровать

На вышке есть необходимые станки, плита и кровать

С вышки открывается вид на гору, на которой расположен аэропорт

С вышки открывается вид на гору, на которой расположен аэропорт

Не повезло ребятам, оползень их настиг

Не повезло ребятам, оползень их настиг

В аэропорт можно попасть двумя путями, короткий, но опасный или длинный, по дороге в объезд

В аэропорт можно попасть двумя путями, короткий, но опасный или длинный, по дороге в объезд

Короткий путь это тоненькая лестница, которая ведет высоко в гору, вся разбита, сам несколько раз упал пока тестировал)

Короткий путь это тоненькая лестница, которая ведет высоко в гору, вся разбита, сам несколько раз упал пока тестировал)

Вид на гору немного сбоку

Вид на гору немного сбоку

Немного преобразил дорогу в воинскую часть

Немного преобразил дорогу в воинскую часть

Перед въездом в часть стоит вышка

Перед въездом в часть стоит вышка

Которую насквозь пробило дерево

Которую насквозь пробило дерево

На выезде тоже вышка есть

На выезде тоже вышка есть

Но в этой уже можно полноценно жить

Но в этой уже можно полноценно жить

В ней есть все необходимое для игрока

В ней есть все необходимое для игрока

В качестве бонуса еще несколько скриншотов будущей локации "Аэропорт", в котором находится полуразбитый самолет компании Скайлейнс, с базой внутри

Показать полностью 14
28

Остров Стали. Часть 5

Продолжаю работу над модом) Потихоньку уже начинает вырисовываться новая территория. Думаю что скоро сниму небольшое видео, минут на 10 с тем что уже сделал, на оценку, мб что то лучше будет изменить)

Южный мыс, слив с водоочистных сооружений

Южный мыс, слив с водоочистных сооружений

Южный берег

Южный берег

Заблудившийся контейнеровоз сел на мель на берегу

Заблудившийся контейнеровоз сел на мель на берегу

На борту

На борту

С другой стороны

С другой стороны

Общий вид корабля

Общий вид корабля

Вид на оползень южного берега

Вид на оползень южного берега

Чуть более детальнее

Чуть более детальнее

Вдали можно увидеть слив с водоочистных сооружений

Вдали можно увидеть слив с водоочистных сооружений

Вид на водокачку из лесу

Вид на водокачку из лесу

Внутри водокачки

Внутри водокачки

Вход в здание водокачки

Вход в здание водокачки

Рядом с водокачкой есть небольшое озеро, в котором стоят спец сооружения

Рядом с водокачкой есть небольшое озеро, в котором стоят спец сооружения

Вид на озеро с крыши водоочистительного комплекса

Вид на озеро с крыши водоочистительного комплекса

Показать полностью 15
93

Остров Стали. Часть 4

Долго думал как назвать свой мод для Fallout 4, решил остановиться на варианте "Остров Cтали". До релиза правда еще далековато, но постепенно делаю)

Один из кабинетов радиолокационной антенны

Один из кабинетов радиолокационной антенны

Здание управления антеной

Здание управления антеной

Еще один кабинет из того же здания

Еще один кабинет из того же здания

Второй этаж, центр управления

Второй этаж, центр управления

Само здание, на дальнем фоне одна из уцелевших антенн

Само здание, на дальнем фоне одна из уцелевших антенн

Сама антенна находится высоко в горах, путь к ней не легкий и совсем заросший

Сама антенна находится высоко в горах, путь к ней не легкий и совсем заросший

Пройти придется через высокогорный лес

Пройти придется через высокогорный лес

По пути встретите заброшенный обжитой маяк

По пути встретите заброшенный обжитой маяк

Карабкаться в гору не придется, если найдете заросшую лестницу

Карабкаться в гору не придется, если найдете заросшую лестницу

Часть дороги обвалилось

Часть дороги обвалилось

Сама горная гряда, там на вершине находится радиолокационная антенна

Сама горная гряда, там на вершине находится радиолокационная антенна

Еще ступеньки наверх

Еще ступеньки наверх

Тропа из военной части по краю обрыва

Тропа из военной части по краю обрыва

Если посмотреть вверх, можно увидеть отвесные склоны

Если посмотреть вверх, можно увидеть отвесные склоны

С дороги главное не оступиться, падать будите долго

С дороги главное не оступиться, падать будите долго

Еще скрин дорого по обрыву

Еще скрин дорого по обрыву

В самой части добавил 7 вышек. Одна из них

В самой части добавил 7 вышек. Одна из них

Вторая

Вторая

Что то строил, решил оставить так

Что то строил, решил оставить так

Еще один засвеченный вид на гору

Еще один засвеченный вид на гору

Показать полностью 19
41

Заброшенная военная база подготовки. Часть 2

Продолжаю потихоньку пилить свой мод для Fallout 4. Решил показать немного скринов не только зданий, но и того что я внутри настроил)

Обратная сторона казармы №1

Обратная сторона казармы №1

Штаб и вдали санчасть

Штаб и вдали санчасть

Актовый зал в штабе использовался как гараж)

Актовый зал в штабе использовался как гараж)

Жилое офицерское помещение в штабе №1

Жилое офицерское помещение в штабе №1

Жилое офицерское помещение в штабе №2

Жилое офицерское помещение в штабе №2

Второй этаж штаба

Второй этаж штаба

Рабочее помещение в штабе №1

Рабочее помещение в штабе №1

Рабочее помещение в штабе №2

Рабочее помещение в штабе №2

Рабочее помещение в штабе №3

Рабочее помещение в штабе №3

Рабочее помещение в штабе №4-5. Стена проломлена и 4 с 5 совмещены

Рабочее помещение в штабе №4-5. Стена проломлена и 4 с 5 совмещены

Вид с балкона штаба

Вид с балкона штаба

Собственно сам штаб

Собственно сам штаб

Заколоченная санчасть

Заколоченная санчасть

Одна из более менее уцелевших палат

Одна из более менее уцелевших палат

Еще одно жилое помещение в штабе. Жилые отсеки находятся в подвале

Еще одно жилое помещение в штабе. Жилые отсеки находятся в подвале

Более просторное помещение для офицеров

Более просторное помещение для офицеров

Оружейная напротив полигона

Оружейная напротив полигона

Заколоченная смотровая вышка полигона

Заколоченная смотровая вышка полигона

Вид со смотровой вышки на полигон

Вид со смотровой вышки на полигон

Небольшой гараж на 2 машины

Небольшой гараж на 2 машины

Подвал гаража

Подвал гаража

Затопленный подвал одной из казарм

Затопленный подвал одной из казарм

Туалеты в казарме

Туалеты в казарме

Комната казармы

Комната казармы

Коридор в казарме

Коридор в казарме

Показать полностью 24
Отличная работа, все прочитано!