Перейти к публикации
  • Сейчас на странице   Всего пользователей: 1   (0 пользователей, 1 гость)

Rooster

Программирование, т. 8

  

315 пользователей проголосовало

У вас нет прав на голосование в этом опросе, или на просмотр результатов опроса. Пожалуйста, войдите или зарегистрируйтесь для голосования в опросе.

Рекомендованные сообщения

(изменено)

дедскин чисто как старый пердун все вещает о языках и крестоблядстве, а жаст дуит чисто как бизнес-тренер все о вэлью пиздит и пиздит

кресты та ещё хуита, я до сих пор не могу поверить что мне на них удобнее писать чем на питоне том же, но тем не менее...

 

тут я отвечу - чтобы не писать как в джаве ВСЁ, даже то что тривиальное

как в скале имплиситы - чтобы в некоторых случаях делать код читаемее.

неявное нужно для упрощения - для ситуаций когда всё тривиально либо подразумеваемо

это трейдофф - абсолютный контроль над всем который требует этот контроль прописать

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

 

плохо когда одна магия

плохо когда один контроль

хорошо когда баланс

 

PS: все больше понимаю насколько ахуенная скала. щас вот еще третью версию через 3-5 лет запилят и вообще кайфушки будут

да какой ещё абсолютный контроль, что ты вообще под этим подразумеваешь? выкинуть нахуй понятие скоупа чтоб можно было написать a = 10; без типа или var? выкинуть типобезопасность перемнной чтоб эту а можно было заменить на строку полфункции спустя? писать сиги функций без типов аргументов? вот в матлабе тебе даже не обязательно кол-во аргументов и выводов писать, пишешь function varargout = f(varargin) и заебись себе в рантайме решаешь сколько просить аргументов и сколько отдавать, а чо, зачем контроль? тебе жалко чтоли принять на пятёрик аргументов больше?

 

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

 

вот если из скалы твой пример с имплисит вещами из скалы, я погуглил и нашёл такое: https://docs.scala-lang.org/tour/implicit-parameters.html

 

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

 

я попробовал по приколу подобное сделать, но ближайшее что у меня вышло это считай 1:1 только надо указывать тип моноида (и тип данных в нём тоже, но только потому что надо указать абсолютно все дженерики если хоть один оно не может поймать)

 

Console.WriteLine(Sum(List(1, 2, 3))); // не собираются
Console.WriteLine(Sum(List("a", "b", "c")));

Console.WriteLine(Sum<int, IntMonoid>(List(1, 2, 3))); // собираются
Console.WriteLine(Sum<string, StringMonoid>(List("a", "b", "c")));
ещё такой есть: https://docs.scala-lang.org/overviews/core/implicit-classes.html

 

но это вообще изи делается экстеншнами, не понимаю зачем городить класс который такой_же_класс_но_на_1_функцию_больше если для именно такого есть расширения, кол-во классов и методов будет реально 1в1

 

 

 

public static void times(this int a, Action act)
{
    foreach (int elem in Enumerable.Repeat(0, a))
    {
        act();
    }
}

// вызов
10.times(() => Console.WriteLine("HI"));

 

 

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

 

понятно что джава в это всё не умеет потому что тормоз и фичи добавляются раз в сто лет и в половине случаев через жопу

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

 

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

в скале в том числе

 

не смог прочитать код, так как ослеп от светлой темы

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

Поделиться сообщением


Ссылка на сообщение

ну так наведи мышкой и посмотри  :hmtroll:

`KV понравилось это

Торжество разума в том, чтобы уживаться с теми, у кого этого разума нет. Вольтер.
Чтобы хорошо высыпаться, нужно спать 8 часов в день. И еще столько же ночью.

Поделиться сообщением


Ссылка на сообщение

 

 

я ебал в рот динамику потому что её невозможно нормально дебажить даже имея утилки для этого


Изи дебажится

 

а даже ебаный с++ проще дебажить тк ты никогда не чекаешь что какого типы и ищешь только проблемы в логике
 

Интересно почему у меня нет таких проблем на пхп :hmm: 

Поделиться сообщением


Ссылка на сообщение
(изменено)

@@Zellar

@@hira88 Че думаешь насчет webGL(Браузерная симуляция физики). Уже опробовал ее. Говно чи нет?

эм?

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

https://www.shadertoy.com/view/ltGBRD и на тыщи частиц https://www.shadertoy.com/view/ldy3D1 (реальной физики)

 

particle force field тоже "не физика" видео

 

 

 

"физика на видеокарте"(реальная где каждая частица частица, а не один вертекс-шейдер с формулой(банальный пример игра The Polynomial - Space of the music из стима, это максимум "арт на вертекс шейдерах без физики"(или вот похожий аналог онлайн с сотнями тыщ частиц https://www.vertexshaderart.com/art/nL6YpkW8YvGKNEKtj )))

с реальным применением, для например "миллиона частиц" возможна только через Вулкан, и теже Сони год назад показывали такую демку

 

если ты про простейшие демки "falling sand" на процессоре-то земля пухом их авторам, это привет из 80-х не более того, ибо на шейдерах "falling sand" дает 0% использования процессора, и минимум нагрузку на видеокарту

https://www.shadertoy.com/view/4d3cDn

да даже ебаный с++ проще дебажить тк ты никогда не чекаешь что какого типы и ищешь только проблемы в логике

все функции вулкана(как пример) принимают и передают тип void*

как и 90% любого ААА+ С++ кода

дебаж наздоровье :lol: :lol: :lol:


Изменено пользователем hira88

Поделиться сообщением


Ссылка на сообщение

 

 

йоу мужики мужичеллы мужланы

 

нормальный ли паттерн хранить в таблице маркер "занятости" записи или это как-то иначе, по-взрослому, решается? база постгре

 

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

 

сейчас у меня есть поле-булеан "being_processed", которое ставится в тру перед началом обработки записи и в фолс по освобождению и уважается всеми остальными желающими поработать с нею, но я вижу в этом потенциальные проблемы (навсегда остаться в состоянии being_processed в случае какого фейла, например) и вообще есть душок говнокодерства, но вроде пока обеспечивает то, что от него требуется

Гуглируй optimistic vs. pessimistic locking и выбирай что тебе больше подходит. Все остальные решения будут доморощенными и хуёвыми костылями с вероятностью 99% :buba:

 

оптимистик локинг через БД не подскажешь как реализовать?

мб там есть какой-то аналог CAS ?

 

просто если ты в транзакции делаешь boolean_locked = true то его другие транзакции не увидят при попытке посмотреть не занято ли им. если ты сделаешь в отдельной подтранзакции - как чел говорит если что-то пойдет не так и всё наебнется то что-то может заблочиться "навечно"

вроде еще некоторые бд поддерживают вложенные транзакции - сначала коммитится какая-то подтранзакция, потом если падает основная то вторая тоже откатывается.

 

Не знаю даже, я же веб-макака. У нас в случае конфликта для каждого из полей предлагается применить свои изменения, или те что были сделаны другим юзером, либо вернуть старое (типа в результате чьих-то изменений лучше вертать всё взад) :buba:

 

Сегодня впервые понадобилась реальная динамическая типизация. Делать неявное возвращение другого потока в rxjs и оказалось что тайпскрипт не может. Пришлось делать as any :trollbrow:

 

Вот минимальное воспроизведение. TS ругается, но компиляция проходит и код работает как ожидается:

post-33804-0-22823400-1547758782_thumb.png

 

Поделиться сообщением


Ссылка на сообщение

30wNLBb.png

самая пиздатая цветовая схема в истории человечества

чо за тема?


javascript:void(0);

Поделиться сообщением


Ссылка на сообщение
(изменено)

 

йоу мужики мужичеллы мужланы

 

нормальный ли паттерн хранить в таблице маркер "занятости" записи или это как-то иначе, по-взрослому, решается? база постгре

 

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

 

сейчас у меня есть поле-булеан "being_processed", которое ставится в тру перед началом обработки записи и в фолс по освобождению и уважается всеми остальными желающими поработать с нею, но я вижу в этом потенциальные проблемы (навсегда остаться в состоянии being_processed в случае какого фейла, например) и вообще есть душок говнокодерства, но вроде пока обеспечивает то, что от него требуется

Гуглируй optimistic vs. pessimistic locking и выбирай что тебе больше подходит. Все остальные решения будут доморощенными и хуёвыми костылями с вероятностью 99% :buba:

 

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

 

немного детальней как это делается

1) делаешь селект select id, other_columns.... where processing = 0

2) сразу делаешь update tablename  wehre id = some_id and processing = 0 (с автокомитом)

3) смотришь прошел ли апдейт, если количество измененных строк = 1 значит прошел, если нет то значит другой поток сделал это раньше поэтому просто скипаем эту запись (или не скипаем а делаем что-то другое в зависимости от того что нужно)

4) если апдейт прошел значит процесим запись, делаем всю логику, после чего апдейтим запись update tablename set ..... where id = some_id

5) отпускаем лок update tablename set pocessing = 0 where id = some_id

 

это хорошо работает только если мы гарантируем что только тот тред который просетил processing = 1 будет делать апдейты строк и никто другой их апдейтить в это время не будет.

 

и кстати на случай крашей после которых запись осталась в статусе processing = 1 нужно добавить после locked_timestamp куда записывать время когда мы меняли статус в processing = 1

и создается таска которая будет искать записи с processing = 1 и locked_timestamp + X < NOW и отпускать локи

update table_name set porcessing = 0 where processing = 1 and locked_tmestamp + 24h < NOW   например


Изменено пользователем DDamager

Поделиться сообщением


Ссылка на сообщение

все функции вулкана(как пример) принимают и передают тип void*

как и 90% любого ААА+ С++ кода

дебаж наздоровье :lol: :lol: :lol:

с добрым утром, вот только это С, а не С++

 

void * это замена темплейтам по сути, чистый С++ код который не должен интеропить с С их не юзает буквально никогда

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

 

а правильный темплейтный С++ по сути не очень далеко от манаджед языка, весь код что я пишу интерактит только с либамы расчитаными на С++ и в целом имеет минимальное кол-во дерефересн-звёздочек, это или оверлоад на итераторы, или опциональные аргументы функции которые в отличи от обязательных передаются как указатели, а не как ссылки чтоб дефолтное значение можно было поставить nullptr

Поделиться сообщением


Ссылка на сообщение

 


"Эта бесконечная вереница интерфейсов, скобочек и безумного количества мусорного кода с пробрасыванием интерфейсов, наследования от интерфесов, где у 99,99% интерфейсов всего одна единственная реализаця."

каждый раз рофлю с этого

ЗАТО ПА ПАТТЕРНАМ !!!111КАК АТЦЫ ЗАВЕЩАЛИ!11 


 

 

понимаю насколько ахуенная скала

как яп или как подход или как способ реализации через считай чистую математику?

ну в плане разве знание синтаксиса скалки таки ценится нежели умение применять сколку для фп программинга и прочей залупы типа монад хуе мое F со скобочками etc? 


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

Ну в плане секса, скала ахуенна. Поебешься с ней знатно


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

Украл тут Ультимейт идею для практики в EE (хотя по идее нашему универу по студакам должны давать) перенес настройки с комьюнити на пару месяцев отставшей хуе мое

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

ZaB6fUT.png

 

инбифо очередной срач по цветовой схеме

 

как я понял это подчеркиваются переменные которые проинициализированы как null, 0 для инта или '' для строк например


:buba:

ни мало ни много, а много и мало

Поделиться сообщением


Ссылка на сообщение

 

"Эта бесконечная вереница интерфейсов, скобочек и безумного количества мусорного кода с пробрасыванием интерфейсов, наследования от интерфесов, где у 99,99% интерфейсов всего одна единственная реализаця."

каждый раз рофлю с этого

ЗАТО ПА ПАТТЕРНАМ !!!111КАК АТЦЫ ЗАВЕЩАЛИ!11 

 

 

понимаю насколько ахуенная скала

как яп или как подход или как способ реализации через считай чистую математику?

ну в плане разве знание синтаксиса скалки таки ценится нежели умение применять сколку для фп программинга и прочей залупы типа монад хуе мое F со скобочками etc? 

 

как язык, который позволяет это всё делать удобно

ну то что есть встроенное ФП это тоже оч круто

в джовке тоже можно в ФП. только будет это зачастую выглядеть как мракобесие + придется понаподключать всяких ФП библиотек

 

Украл тут Ультимейт идею для практики в EE (хотя по идее нашему универу по студакам должны давать) перенес настройки с комьюнити на пару месяцев отставшей хуе мое

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

ZaB6fUT.png

 

инбифо очередной срач по цветовой схеме

 

как я понял это подчеркиваются переменные которые проинициализированы как null, 0 для инта или '' для строк например

 

возможно при этом еще учитывается ветвление и что в последствии может быть не проинициализированно - в данном примере может быть ситуация эксепшна в new Robot(), его обработка  и NPE в последнй строчке


 

очень крутые котейки

RqvSzvr.png


Кому-то пизды дал - нужно сделать скрин обязательно. (с) Solo

Поделиться сообщением


Ссылка на сообщение

а шо не так со скалой? у нас разраб баба из поляндии на скале ебёт всё и ей норм


Скрытый текст

 

OMGVERYLONGNAME написал 08.06.2018 в 12:50:
потому что ты не игрок, ты мразь на любой роли
ZombBomb написал 05.12.2018 в 19:27:
лол
Fint написал 19.07.2019 в 15:49:
Ок, я ошибся

 

 

NaniQue- написал 30.07.2019 в 10:37:
висп вроде норм игрок

 

 

Поделиться сообщением


Ссылка на сообщение

а шо не так со скалой? у нас разраб баба из поляндии на скале ебёт всё и ей норм

Баба симпотичная?


 

Жиза для любопытных

Чекнул = пидор

 

Поделиться сообщением


Ссылка на сообщение

 

 

чо за тема?

vs code если не путаю 


Скрытый текст

 

OMGVERYLONGNAME написал 08.06.2018 в 12:50:
потому что ты не игрок, ты мразь на любой роли
ZombBomb написал 05.12.2018 в 19:27:
лол
Fint написал 19.07.2019 в 15:49:
Ок, я ошибся

 

 

NaniQue- написал 30.07.2019 в 10:37:
висп вроде норм игрок

 

 

Поделиться сообщением


Ссылка на сообщение

 

чо за тема?

vs code если не путаю 

 

вроде не то


javascript:void(0);

Поделиться сообщением


Ссылка на сообщение
(изменено)

ну редактор угадал ) 

я юзаю везде High Contrast темы, которые типа для слепых, но у меня со зрением все заебись, просто очень приятная и вызывает наименьшую усталость


Изменено пользователем sonac

Поделиться сообщением


Ссылка на сообщение

для истории, пусть полежит здесь

 

 

Программа:

Скачать бесплатно без смс без регистрации апаем топан скачать смотреть онлайн гейпорно онлайн скачать смотреть бесплатно:

http://dl.dropbox.com/u/46195746/apaem_topan/apaem_topan_pd_v_0_5_beta_2.zip

Гайд:

качаем, распаковываем
у программы должна быть отдельная папка, т.к. там не один файл и возможно скоро замучу апдейтер
Состав программы:
- APAEM TOPAN PD.exe - какбы сама программа
- System.Data.SQLite.DLL - програмный модуль для работы с базой даных
- Config.db - база даных, она хранит все настройки по работе программы
- /music/ ну тут всё понятно ^_^ содержимое можете менять по своему усмотрению

Отдельно предоставляю пак контента.

Качать по ссылке: http://dl.dropbox.com/u/46195746/apaem_topan/content.zip

распаковываем в папку /content/ в папку с прогой, об импорте в прогу будет ниже, после успешного импорта папку можно сносить
в паке такие хиты как солодракбан, COUNTRY и другие вырвиглазы + видеопослание илзе и видео "Kojot, Bazi, PeeRZet - daj nam majk"

1. Подготовка к апанию.

1.1) список тем
кликаем "Generate" - выбираем нужные форумы и получаем список номерков в окошке рядом
по желанию добавляем свои темы (например некропостинг)
желательно кликаем [save] и список сохранён, после перегрузки программы он останется

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

во втором блоке менеджмент:
импорт из файла nicknames.txt в формате {LOGIN}_password
рега новых акков
добавить в базу существующие и т.д.
массрега пока не пашет

суть для нормального апания - иметь около 10-12 акков на человека, на даный момент особо больше тупо нет смысла
отдельно по реге - жмёте кнопку, вводите логин (пасс советую выбрать стадартный и юзать только его) для нашего доу сквада пусть это будет osiris

1.3) контент

есть импорт из папки /content/, тупо жрёт все *.txt файлы и добавляет в базу проверяя, чтобы не было дубликатов
есть кнопка [Add New] - это добавить в базу или сгенерировать что-то

отдельно про эту кнопку:
Custom Content - никаких модификаций, тупо текст в поле слева попадает в базу как вариант поста
Image spam - вводим URL(ы) картинки(ок) и получаем сгенерированый пост длинной в 20к символов состоящий полностью из картинки(ок)
Multicolor text - тупо любой текст превращает в разноцветный
Mix with smiles - текст заполняется хуевой тучей пд-смайлов
YouTube video spam - сейм, что и с картинками

внимание, для разноцветного текста недопустимо наличие в оригинале текста смайликов или бб-кодов, в т.ч. вставленых картинок, т.к. программа не умеет их обходить и тупо сломает.
внимание2, для картинок или ютуба вводить только url, без тэгов; если 2 и больше - каждый с новой строки

контент можно исключать из ротации, для этого прокликайте стрелками вправо до нужного и нажмите [Excl.] по дефолту в ротацию контент включён
там же можно удалить совсем или изменить содержимое - для этого в поле отредактируйте и нажмите Save (если текст отредактирован, то кнопка светится красным)

1.4) параметры апания

1.4.1) делей - для продоты 20 секунд, пока в программу не будут включены прокси или админы не решат законтрить свои проблемы длинным делеем - этот параметр не менять

1.4.2) циклы. кол-во прогонов. не знаю зачем эта опция нужна, но параметр 0 в помощь - это бесконечный цикл, т.е. пока не перебанят все акки

1.4.3) задержка перед стартом. ну это на ваше успотрение - жмёте [set] и выбираете через сколько часов/минут/секунд запускать

остальные кнопаффки вроде как должны быть понятны и не требуют доп. объяснений

_____________________

APAEM TOPAN

жмём кнопку, программа рапортует о том, что всё началось, в консоли рапорты о том, что постинг успешен/не успешен и т.д.
пока что определение успешности постинга очень багнутое, потому что движок пд очень конченый, адекватно отслеживать успешность постинга это такой пиздец, что ну его нахуй

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

пока что прокси я ещё не добавил ни в каком виде - если нет возможности сменить ай-пи - лучше не апать
о том будет ли прога работать с ТОРом и другими сервисами смены айпи на уровне системы - неебу

_____________________

For great JUSEtice!

 


Tony and Friends - моя компания по бустингу в разных онлайн играх. 3-20 баксов в час в зависимости от скила и заказа.

кто лизал клитор миллионам девчонок в дрожащих лучах заката, просыпался с красным лицом и снова лизал клитор заре, и светил своей задницей возле сараев и голый купался в пруду.(с)
пруф что я олдскул - funkyimg.com/i/2QixB.png | акки на пд начиная с самого первого - DestRuBat0r, KlonD90(друг дал погонять), Sweet_Melony, YYF, Zenit4ik! и другие.   https://allmylinks.com/quadrotonyda

Поделиться сообщением


Ссылка на сообщение

чо за тема?

mariana в саблайм текст 3
Ramil понравилось это

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации сообщений.

×
×
  • Создать...