{{notification.text}}

MirGames

egslava Вячеслав

Брянск, Москва
Зарегистрирован 09.08.10 20:36
Последний раз был в сети 11 дней назад
400 
Проблемы современной чат-культуры
07.05.19 21:51

Итог: никто из людей, способных как-то помочь новичкам, не может это сделать:
1. Опытные товарищи быстро банятся.
2. Если и отвечают, то нередко их сообщения могут тереться под видом флуда/флейма.

Новички не могут ориентироваться в информации, которая на них набрасывается и их постоянно дезинформируют:
1. Админ.
2. Заинтересованные лица.
3. Фейки заинтересованных лиц.
4. Те, кого уже дезинформировали.

Понятно, что бывают "плохие" люди и "хорошие". И сообщества бывают из плохих людей и из хороших. Но чаты в нынешнем виде способствуют тому, чтобы оставались "плохие" и исчезали "хорошие".

Проблемы современной чат-культуры
07.05.19 21:47
  1. Админ тоже заинтеревована в том, чтобы было больше рекламодателей и больше ц/а для этих работодателей. Пример: человек написал сообщение, очень похожее на рекламное. Кто-то продолжил разговор на предыдущую тему. Пришла админ и потёрла сообщения, сказав, что будет раздавать баны за оффтоп. Рекламное сообщие было запощено ещё раз.
  2. Контент не индексируется поисковиками. На один и тот же вопрос можно отвечать по 100 раз.
Проблемы современной чат-культуры
07.05.19 21:45
  1. Из-за того, что пользователи - анонимные, то, как мне кажется, множество "пользователей" руководятся заинтересованными лицами. Например, достоверно известно, что несколько людей (около 3, вроде), занимаются разработкой курсов для тестировщиков. Если моё мнение с мнением конкретно этих лиц расходится, и я вежливо об этом говорил, то сами люди оставались вежливыми, но появлялось 2-3 других комментатора, которые давили уже массой и такими вежливыми уже не были. Причём непонятно, либо это - действительно грубые люди, либо клоны, либо ещё что-то. Анонимность во всей красе.
Проблемы современной чат-культуры
07.05.19 21:36
  1. В чате только одна комната. Честно говоря, мне показалось, что это - самый главный буст/развитие чатов, который сильно вредит их качеству. Буст заключается в том, что во многие чаты пихают рекламу. В т.ч. завуалированную. В т.ч. непроверенную или неправильную информацию. На примере с чатом тестировщиков, в закреплённом сообщении находится ссылка на статью о зарплатах тестировщиков. После проверки источника, оказалось, что написана она компанией, которая занимается созданием курсов по тестированию для новичков. Не факт, что она ложная или предвзятая, но есть явный conflicts of interests. Попытки простого оглашения этого, вызвали резкое негодование от множества анонимных пользователей. Поведение было похоже на провокационный флуд, но, тем не менее, как минимум, информация о том, что статья может быть неправдивой, смывается с видимого места чата довольно быстро.
    Т.е. плюсы:
    a) Легче получать доход. Сообществ должно быть больше.
    Но есть минусы:
    a) Больше стимула к дезинформации.
    b) Убивается реальное общение: любой нерекламный пост, по сути, это - флуд, нежелательное сообщение.
    c) Все 1500+ пользователей писать и читать один канал не могут в принципе. Многие уходят в read-only, нарушается свобода слова.
    d) Т.к. больше нужны новички, то опытных товарищей не так много. Банально, но, более опытные коллеги - уже не Ц/А для рекламодателей подобных чатов и уже просто не нужны на ресурсе. Скорее, они даже мешают.
Проблемы современной чат-культуры
07.05.19 21:31

Не так давно, я посоватовал начинающей тестировщице вступить в какое-нибудь сообщество. Когда она меня спросила: "А в какое?", я подумал, что в любое, лишь бы не слишком крупное и попробовал сам поискать что-либо в поисковике. Нашёл @qa_juniors в Телеграме. Через некоторое время от неё поступила жалоба, что на вопросы отвечают плохо, часто посылают в поисковики. А в сообществе про з/п тестировщиков не отвечают на прямые вопросы о З/П - боятся. Т.е. смысла сидеть в группе нет - один флейм, да и тот не по теме.

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

Хотелось бы выделить следующие проблемы:
1. Все в чате - это анонимы. На форуме можно отследить, допустим, в какие разделы человек постит: 99% во флуд и 1% по теме, например. Кроме того, можно зайти в профиль человека. Мало того, что советы от анонима не всегда нужно слушать (т.к. никогда не знаешь: это самоуверенный новичок на той стороне или опытный, но осторожный в суждениях человек), это рождает ещё семён (same person) проблему.

Как Dan докатился до жизни такой?
04.02.17 00:34

Хе-хе :-) Тоже летел к "корешу из Aviasales" (одногруппник) с ещё двумя одногруппниками. Но, в итоге, так получилось, что мы теперь в Chon Buri, другой не долетел, а третий то на Пхукет, то на Самуи, то в Бангкок, то ещё куда-то. В общем, такие дела, что сидим тут одни, никто вокруг английский не понимает :-/

Если кто-то сейчас в Тае - пишите :-D Хоть буду знать, что тут есть где-то в радиусе 1500км :-D

Dan
Кстати, ты ещё в Тае? Просто интересно, неужели тут интереснее, чем в Ау/Нз? Я здесь для дешёвой жизни и огорождения от русского на момент обучения английскому. А так: в РФ же больше возможностей: универы, работы, различные конференции и проч-проч. Чем ты тут занимаешься?

Как я программирую в последнее время (kotlin vs "быдлокод")
12.09.16 18:09

В общем, т.к. рубить сгоряча не хочется, пока для себя решил так:
1. Свойства (properties) использовать тогда, когда есть какая-то сущность, которую можно положить/изъять и никогда иначе. read-only свойства так же можно использовать для любых существительных.
2. data-classes использовать всегда, но всегда быть готовым писать код вручную. Т.е. data class'ы, в основном, при создании приложения. При дальнейшем его развитии быть морально готовым к тому, что код скатывается в Java-подобный.
3. Всегда указывать тип для свойств/функций, но не указывать для локальных переменных. Потому что локальные переменные определяют алгоритм, и там чёткое указание типа вряд ли нужно. А когда открываешь код класса, хочется взглянуть - что же в нём есть.

Это по мелочи.

Мда.

Раскрой, пожалуйста. Очень интересно твоё мнение :-)

Как я программирую в последнее время (kotlin vs "быдлокод")
10.09.16 22:06

Всем привет! :-) Я тут неплохо отравился и, вместо того, чтобы чувствовать боль, наоборот, чувствую себя свежо и сплю по 4-5 часов :-) Очень странно. Но куда более странно восприятие мною стилей программирования в последнее время.

Kotlin

Когда вышел такой замечательный язык, как Kotlin, мне показалось, что он ну очень хорош - там есть extension-функции и лямбды, алгоритмы на коллекциях (fold, map, flatMap, filter, и прочее). В общем, очень удобно. Есть такая штука, как Data classes. Вот пример:
Kotlin data class Point(x: float = 0, y: float = 0);Kotlin

inline-функции. Ну и прочее-прочее.

Быдлокод

Тем не менее, я ещё фрилансирую и очень часто меня просто вызывают на час-два просто пофиксить какую-то ошибку или дописать функционал. Я работаю либо просто с довольно "простым" кодом, либо вообще с декомпилированным через TeamViewer. И, как бы ни было странно, в "быдло"-коде я делаю функционал гораздо быстрее, чем в своём "хорошем". Поэтому, как бы мне ни было грустно расставаться с чувством красоты, мне кажется, я скоро окончательно избавлюсь от Kotlin'а в сторону Java, либо буду писать на Kotlin'е как на Java, добровольно отказавшись от некоторых его фишек.

Причины, по которым я выбираю "Быдлокод"

Их много, но, например:
1. type inference имеет один минус: я не вижу типа. Банально, конечно, но, оказывается, если хочется обойти дерево файлов, то возвращается Sequence, а не List (что логично). Не помню подробностей недавней утилиты, но так оно дальше и покатилось - Sequence через Sequence ("ленивая структура данных"). В итоге, я вылетел из памяти по непонятным, на первый взгляд, причинам. Меня вообще не напрягают явные типы в Java. Да-да. Мне всё равно на эти большие конструкции - в 99% случаев я их просто пропускаю, не отдавая им внимания. А если там написано что-то неверное, то могу и заметить. Я не пишу эти конструкции, не трачу на них время. Я просто жму cmd + alt + v и всё! =) Всё пишется само. Избытычность не мешает, даже помогает.
2. Когда я программирую на супер-пупер высокоуровнем языке (Kotlin) он должен работать идеально. Он, чуть ли, не сам программы писать должен. Потому что, если есть какая-то высокоуровневая конструкция, которая работает неидеально, то я даже не могу её сразу увидеть и должен проходиться отладчиком.
3. смотрю на Kotlin - в нём не хватает фич. Смотрю на Scala - не хватает скорости компилятора. В итоге, имхо, лучше уж писать на Java, чем иметь ни то, ни сё. Взять те же data-classes. Что будет, если я захочу исключить какое-то поле из toString? Пример простой: у меня есть дерево, у его узла есть parent и children[]. Что-то я, да захочу исключить - иначе вывод строки зайдёт в рекурсию. Ок, что мне предлагают сделать? Правильно, переписать toString() самому. И, вот, data-классы уже не такие уж и красивые.
4. Надо слишком много думать. Да, я, наверное, не очень быстро думаю. Особенно, когда речь заходит о выборе, который почти ничего не значит и его надо просто сделать случайным образом.

Вопросы, которые не нужны и которые мешают

Позволю себе раскрыть это чуть подробнее. Есть список вопросов, которые меня заставляют просто зависнуть на несколько секунд:
1. Надо ли стирать это бельё? Если я выбил много кофе, то я становлюсь дерзким и сразу спрашиваю "зачем"? Мне говорят, про какое-то пятно и я тогда говорю, что да, стирать надо. Но, чаще всего, всё происходит не так: я думаю, хм, а надо ли? Или не надо? Надо? Вроде, норм. *Тут я перехожу в овощное состояние и могу задуматься и о чём-либо ещё". Короче говоря, оба варианта мне - безразличны, а зависаю я над ними надолго
2. Будешь чай? (Именно тогда, когда я его не сам хочу, а мне его предлагает кто-то). Я начинаю думать, ломаться, что-то там прокручивать в голове. Не слишком ли ещё поздно для кофеина, не буду ли я хотеть потом есть. А какого размера кружка - мне же потом в дорогу. И т.д.

Совсем другое дело, если бы меня спросили - давай я тебе сегодня долг верну? Ответ на этот вопрос возникает сам собой. Нет трудностей с ответом.

Что я вижу плохого в Kotlin'е

К сожалению, красивые языки вроде Kotlin'а порождают много стилистических вопросов. Не неся никакой практической нагрузки (вопрос только стиля), он порождает много неуверенности.

  1. Надо ли писать метод глобально или написать метод в companion object'е?
  2. Надо ли писать data class, или лучше на Java, т.к. стабильно?
  3. "Как бы сделать покрасивше?"
  4. Как бы это сделать на билдерах, чтобы переменную, которая часто встречается, вообще не надо было нигде указывать.
  5. Как extension-методе сохранить произвольную информацию об объекте? (оказалось, что никак)
  6. Стоит ли писать

fun getVelocity() = (x - lastX)/time

или лучше написать

  fun velocity(): float { 
     return (x - lastX) / time 
  }

или лучше вообще

  val velocity: float get() {
      return (x - lastX) / time
  }

И возникают ещё дополнительные проблемы:

  • Почему ORM опять упал? Нужно сделать @JvmField? @JvmStatic? Ещё как-то?
  • А почему десериализатор тогда не упал?
  • А почему резко улетела память непонятно куда?
  • Приложение стало собираться медленно из-за Kotlin/APT/ещё какого-либо фреймворка или из-за моих кривых рук?

И т.д. пишу я это всё, скорее для себя, т.к. попробую продолжать писать на Kotlin'е, но учитывая предыдущие ошибки.

Наша первая игрушка - хочется советов и фидбэк :)
12.01.16 11:28

Я играл на Андроиде. Скучно, однообразно, темно, непонятно. Непонятно, почему, если у меня есть монетки, я не могу ничего купить. Непонятно - другие уровни будут или нет? Музыка тоже приедается быстро. Реклама в огроменных количествах. Даже не знаю, что сказать. Вы либо просто троллируете, либо у нас ну уж очень разные вкусы.

g2mp
09.01.16 16:04

Блин, ну очень круто :-) Смотрю на тебя с Мефом и просто обалдеваю: один такой классный портал забабахал один, другой такой движок и редактор сделал один. И это всё без анонсов, без сбора денег или команды, без понтов (навроде, мы используем RoR/Go/Scala, поэтому сделан такой-то проект в такие-то сроки и мы ищем спонсора). Всё просто работает. С одной стороны всё очень скромно, с другой стороны - нереально круто :-)

Спасибо, Dan! Не знаю, чем могу помочь, но, мне кажется, что если я расскажу друзьям - уже будет хоть что-то :-) У проекта есть страничка, на которую можно было бы кинуть ссылку?

В гугле нашёл только репу на github'е, поэтому пока бросаю ссылку на эту страницу и на видео.

g2mp
26.12.15 13:10

Очень-очень здорово выглядит! :-) Особенно радует, что есть быстрый запуск и "просмотр" игры. Т.к. я пишу под Андроид, я уже и забыл, что такое быстрая сборка. Ну, очень классно, в самом деле. Быстро, удобно, хорошо. Почитал - вроде, есть даже поддержка Android, что тоже круто :-) Поражаюсь тебе Dan, как же тебе, всё-таки, удаётся писать такие здоровские вещи? Какие качества нужны человеку, чтобы делать также хорошо? :-/

Вызов методов суперкласса в методах его подкласса
13.02.14 20:44

http://docs.python.org/3.1/reference/grammar.html (краткий пересказ книг Лутца о пайтоне в 100 с небольшим строчках)

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

Вызов методов суперкласса в методах его подкласса
13.02.14 00:07

И да, если есть какой-нибудь класс сокет, который может передавать только поток байт, то вспомогательные классы ТекстовыйСокет (который может передавать текст) и ШифрованныйСокет (который может передавать шифрованные данные), я реализую не с помощью наследования, а просто как отдельные классы внутри пакета "сокеты", которые используют приватную переменную типа Сокет.

Мне кажется, что подобный код намного проще для восприятия. Как минимум потому, что когда где-то используется наследование, то при вызове метода подключисьКТойСтороне(), я не знаю, используется метод Сокета или метод ШифрованногоСокета и устанавливается шифрованное соединение. Т.е. я должен каждый раз мысленно чекать это. В общем, не нравится мне подобный код.

Вызов методов суперкласса в методах его подкласса
13.02.14 00:04

А можно подробнее, почему так?

Спросили не меня, но хочется выразить моё отдельно взятое, думаю, очевидное, мнение :-) Для меня общее правило такое: использовать наследование только в тех случаях, когда можно сказать что что-то является чем-то. И больше не использовать никогда.

Яблоко наследуется от фрукта, потому что яблоко - это фрукт. Фрукт наследуется от объекта, потому что фрукт - это объект. Ну и т.д. Речь идёт о существительных: т.е. объект, фрукт, яблоко.

Если речь идёт о прилагательных, то я их делаю интерфейсами: вкусный, цветной, и т.д. Сами же значения прилагательных (т.е., по сути, перечисления: очень вкусный/вкусный и т.п., красный/синий/зелёный) я делаю как свойства в интерфейсе.

Т.е. интерфейс вкусный будет иметь свойство цвет, которое может возвращать красный/синий/зелёный и т.п.

Итак, итоговый пример:
Класс фрукт наследуется от класса объект. Он реализует интерфейсы Вкусный и Цветной. Класс Яблоко наследуется от Фрукта и реализует интерфейс СКосточками.

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

WIP: MirGames
12.02.14 18:47

Мне кажется, что если я пишу пост, то чужие сообщения не подгружаются. У меня было как:

  1. Я пишу пост.
  2. Зачем-то на открыл ту же тему на другой вкладке
  3. Оказывается, что на другой вкладке уже есть новые сообщения
  4. На прошлой вкладке отправляю своё сообщение
  5. Моё сообщение добавляется, но чужое новое сообщение "не пришло".