Перейти к содержимому

Начать игру

Начните играть на RedServer прямо сейчас!

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

Флудилка


  • Авторизуйтесь для ответа в теме
Сообщений в теме: 13068

#12561
aliyldrm

aliyldrm

    Продвинутый пользователь

  • Игрок
  • PipPipPip
  • 389 сообщений
  • 118

Нечего делать

Прикрепленные изображения

  • real.png


#12562
BlackSun

BlackSun

    ⒷⓛⓐⓒⓚⓈⓤⓝ

  • Игрок
  • PipPipPip
  • 1 933 сообщений
  • 2 014

"А не поставить ли мне Dark Souls?" подумал я. Первый раз установщик вылетел на 70%, забрав с собой браузер. Во второй попытке что-то пошло не так на 100% и всё установленное было удалено. Даже R.Lab'овская тулза не смогла найти свеже-удаленные файлы. Нет, я знаю, что игра не из простых, но не до такой же степени..



#12563
guineafrom

guineafrom

    Мне давай слона!

  • Заблокирован
  • PipPipPip
  • 3 947 сообщений
  • 1 263

За что Кубика и Ханеса с Модерки убрали?


И Эделя...



#12564
SirEdivn

SirEdivn

    Дварф-лентяй

  • Игрок
  • PipPipPip
  • 3 479 сообщений
  • 1 987

@eXend, так же, в том же классе есть функция isLetter, которую можно использовать в том же цикле. И вообще без регулярок обойтись. 

 

+ по хорошому, стоит все-таки один раз вызвать message.lenght() и записать в локальную переменную. 


Сообщение отредактировал SirEdivn: 25 Апрель 2016 - 00:35

Приватные сборки рулят!
Давайте вместе сделаем что-то интересное!, все тлен

#12565
eXend

eXend

    Unixoid

  • Игрок
  • PipPipPip
  • 1 576 сообщений
  • 642

@eXend, так же, в том же классе есть функция isLetter, которую можно использовать в том же цикле. И вообще без регулярок обойтись.

Так-то да, но длина не уменьшится и % будет криво считать...

 

+ по хорошому, стоит все-таки один раз вызвать message.lenght() и записать в локальную переменную. 

Верно, на производительности не нужно экономить. Часто так делаю, но это на компилируемых ЯП, а тут жава, даже не знаю насколько много смысла в этом.


А в регулярном выражении вообще же можно проще написать и вызвать:
message.replaceAll("\\W|\d", "");
Не?


d0cee29cc7.gif4585a79f2b.gif

Умываю руки, можете считать себя победителем (:

виндовс переучтанавливаеш а толку нет всеравно

Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"?


#12566
SirEdivn

SirEdivn

    Дварф-лентяй

  • Игрок
  • PipPipPip
  • 3 479 сообщений
  • 1 987

Так-то да, но длина не уменьшится и % будет криво считать...

Алгоритмическая сложность станет меньше. Регулярка во много раз хуже цикла.

 

Верно, на производительности не нужно экономить. Часто так делаю, но это на компилируемых ЯП, а тут жава, даже не знаю насколько много смысла в этом.

Ну, по идее, после 100-200 вызовов оно запихнет все нормально, но зачем, если можно нормально написать? + такое даже на плюсах не прокатити ниже o2.

 

message.replaceAll("\\W|\d", "");

Можно просто \\W по идее. 


Приватные сборки рулят!
Давайте вместе сделаем что-то интересное!, все тлен

#12567
Nuclear

Nuclear

    Продвинутый пользователь

  • Разработчик
  • PipPipPip
  • 137 сообщений
  • 214

@Nuclear, я конечно имел очень малый опыт работы с регулярными выражениями, и уже успел забыть их, но как я понял в первой строке сначала выпиливаются только пробелы, а следом все кроме букв и пробельных символов, если не ошибся. Вопрос, зачем оставлять другие пробельные символы? Будет ли всё работать если сделать только один вызов replaceAll("[^A-Za-zа-яА-Я]")? Возможно я чего-то тут не догоняю...
Зачем крутить цикл полностью? Ведь если процент будет уже превышен, то остальную часть можно оставить в покое.
Например так:

short upper_сhars = 0;short caps_not_percent = plugin.config.capsPercent / 100;for(char ch : message){	if(Character.isUpperCase(ch) && (++upper_сhars / message.length() > caps_not_percent))		return Violation.CAPS;}
И как-то даже компактней.
Код писался с учётом сбора статистики. И насчет пробелов, вы забыли что это чат minecraft, тут не может быть других символов, так зачем мне делать их удаление, если их нет?

Сообщение отредактировал Nuclear: 25 Апрель 2016 - 02:01


#12568
eXend

eXend

    Unixoid

  • Игрок
  • PipPipPip
  • 1 576 сообщений
  • 642

@eXend, так же, в том же классе есть функция isLetter, которую можно использовать в том же цикле. И вообще без регулярок обойтись.

@SirEdivn, я почитал подробнее о функции, оказалось она даже различает символы цифр и букв. В таком случае действительно подходит, только вызывать не в том же цикле, а сначала в отдельном, для подсчета букв.

 

Можно просто \\W по идее. 

Не, \W включает в себя и цифры тоже, а их нужно выпилить.

Я еще забыл про то, что caps_not_percent нужно было сделать float, а не short :facepalm: Но float медленнее целых считается, поэтому наверное лучше оставить умножение на 100.
В итоге вместо этого:

e3d2b8c75f.png

Должно получиться как-то так:

short value;
short upper_сhars = 0;
short letters = 0;

for(char ch : message)
	if(Character.isLetter(ch))
		++letters;

if(letters <= plugin.config.capsMinLength)
	return Violation.NONE;

value = plugin.config.capsPercent * letters / 100;

for(char ch : message)
	if(Character.isUpperCase(ch) && (++upper_сhars > value))
		return Violation.CAPS;

Хотя value можно было сделать опять же float, но тут погрешность всего-то в 1 символ. И да, тут еще отвалились всякие умножения и деления в цикле.


Код писался с учётом сбора статистики. И насчет пробелов, вы забыли что это чат minecraft, тут не может быть других символов, так зачем мне делать их удаление, если их нет?

Т.е. это такая оптимизация? Тогда способ, который предложил @SirEdivn намного лучше.


Сообщение отредактировал eXend: 25 Апрель 2016 - 02:31

d0cee29cc7.gif4585a79f2b.gif

Умываю руки, можете считать себя победителем (:

виндовс переучтанавливаеш а толку нет всеравно

Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"?


#12569
SirEdivn

SirEdivn

    Дварф-лентяй

  • Игрок
  • PipPipPip
  • 3 479 сообщений
  • 1 987

Код писался с учётом сбора статистики. И насчет пробелов, вы забыли что это чат minecraft, тут не может быть других символов, так зачем мне делать их удаление, если их нет?

 
Если учитывать, что это чат майнкрафта и быть уверенным в том, что Андрей никогда не добавит UnicodeFix или подобную хрень, почему бы не делать вообще так:
 

int letterCount = 0;
int bigLetterCount = 0;
int length = r.length();
for (int i = 0;i < length; i++){
    int charAt = r.codePointAt(i);
    if ((charAt >= 1024 && charAt <= 1071) || (charAt >= 65 && charAt <= 90)){
        bigLetterCount++;
        letterCount++;
    } else if ((charAt >= 1072 && charAt <= 1119) || (charAt >= 97 && charAt <= 122)) {
        letterCount++;
    }
}
System.out.printf("%d %d -> %d", bigLetterCount, letterCount, length);

Таблица символов для проверки кодов - http://foxtools.ru/Unicode


Сообщение отредактировал SirEdivn: 25 Апрель 2016 - 08:30

Приватные сборки рулят!
Давайте вместе сделаем что-то интересное!, все тлен

#12570
eXend

eXend

    Unixoid

  • Игрок
  • PipPipPip
  • 1 576 сообщений
  • 642

@SirEdivn, был бы там utf-8... (:


d0cee29cc7.gif4585a79f2b.gif

Умываю руки, можете считать себя победителем (:

виндовс переучтанавливаеш а толку нет всеравно

Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"?


#12571
SirEdivn

SirEdivn

    Дварф-лентяй

  • Игрок
  • PipPipPip
  • 3 479 сообщений
  • 1 987

@SirEdivn, был бы там utf-8... (:

Java таки использует unicode в символах :) 


Приватные сборки рулят!
Давайте вместе сделаем что-то интересное!, все тлен

#12572
eXend

eXend

    Unixoid

  • Игрок
  • PipPipPip
  • 1 576 сообщений
  • 642

Java таки использует unicode в символах :)

@SirEdivn, мб utf-32 она использует?


И с 2 циклами я переборщил. Следуя твоему последнему примеру, можно было бы запилить все в 1, и крутить полностью, все равно нужно считать все буквы.
Я тут подредактировал: http://redserver.su/...ion/?p=11296899


d0cee29cc7.gif4585a79f2b.gif

Умываю руки, можете считать себя победителем (:

виндовс переучтанавливаеш а толку нет всеравно

Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"?


#12573
SirEdivn

SirEdivn

    Дварф-лентяй

  • Игрок
  • PipPipPip
  • 3 479 сообщений
  • 1 987

@SirEdivn, мб utf-32 она использует?

Ноуп, utf8. Ну ... почти uft8.

У java в char влазит целых два байта, что вмешает в себе почти все символы юникода, кроме трех-байтных. Их оно складывает из двух. + тут используется функция codePoint, которая возвращает юникод код в int)


Приватные сборки рулят!
Давайте вместе сделаем что-то интересное!, все тлен

#12574
eXend

eXend

    Unixoid

  • Игрок
  • PipPipPip
  • 1 576 сообщений
  • 642

Ноуп, utf8. Ну ... почти uft8.
У java в char влазит целых два байта, что вмешает в себе почти все символы юникода, кроме трех-байтных. Их оно складывает из двух. + тут используется функция codePoint, которая возвращает юникод код в int)

@SirEdivn, тогда это utf-16.
Не нужно объяснять мне его работу, я знаю это во всех подробностях, ведь нужно было как-то писать конвектор из utf-8 в utf-32 и обратно.

Спойлер

И да, UTF-16 бредовая кодировка, как говорится "ни рыба ни мясо".


d0cee29cc7.gif4585a79f2b.gif

Умываю руки, можете считать себя победителем (:

виндовс переучтанавливаеш а толку нет всеравно

Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"?


#12575
SirEdivn

SirEdivn

    Дварф-лентяй

  • Игрок
  • PipPipPip
  • 3 479 сообщений
  • 1 987

Почему люди так сильно верят в новомодную херню от маркетологов типа докера? 


Приватные сборки рулят!
Давайте вместе сделаем что-то интересное!, все тлен

#12576
eXend

eXend

    Unixoid

  • Игрок
  • PipPipPip
  • 1 576 сообщений
  • 642

@SirEdivn, ты о чем вообще?


d0cee29cc7.gif4585a79f2b.gif

Умываю руки, можете считать себя победителем (:

виндовс переучтанавливаеш а толку нет всеравно

Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"?


#12577
SirEdivn

SirEdivn

    Дварф-лентяй

  • Игрок
  • PipPipPip
  • 3 479 сообщений
  • 1 987

@SirEdivn, ты о чем вообще?

https://www.docker.com/


Приватные сборки рулят!
Давайте вместе сделаем что-то интересное!, все тлен

#12578
eXend

eXend

    Unixoid

  • Игрок
  • PipPipPip
  • 1 576 сообщений
  • 642

в новомодную херню

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


d0cee29cc7.gif4585a79f2b.gif

Умываю руки, можете считать себя победителем (:

виндовс переучтанавливаеш а толку нет всеравно

Андрей помнишь ты ставил перд модерацию сообщений eXend'a - в общем теперь я понял почему. Может вернуть ее, не думаю что нам нужен местный "троль"?


#12579
SirEdivn

SirEdivn

    Дварф-лентяй

  • Игрок
  • PipPipPip
  • 3 479 сообщений
  • 1 987

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

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

 

Но теперь его пихают везде. 


"@_WaRLoCK_" От того что у тебя бомбит, никто скоро ничего решать не будет, тем более на публику. Если этот вопрос и будет решатся, то явно ответ в теме даватся не будет, так что не стоит звать в тему Андрея. 
p.s. я ничего против не имею против всех кто тут описывали в теме, но все же, Андрей не слепой, и уже видел эту тему, раз не отписался, значит решит вопрос по своему усмотрению, и потому я прошу @Psi32 закрыть тему, дабы в теме больше не было флуда

Андрей иногда скажем ... забывает про темы :) 


Приватные сборки рулят!
Давайте вместе сделаем что-то интересное!, все тлен

#12580
The_Destroyer

The_Destroyer

    Продвинутый пользователь

  • Игрок
  • PipPipPip
  • 160 сообщений
  • 58

Ха-ха-ха

4bb947db74.png


И у тебя, по-твоему, диск фигня? :D

Красава)0

Прикрепленные изображения

  • Скриншот 24-04-2016 220602.png

Сообщение отредактировал The_Destroyer: 25 Апрель 2016 - 22:15

Юки сервера RedPower #2 





Количество пользователей, читающих эту тему: 2

0 пользователей, 0 гостей, 0 анонимных пользователей


    Bing (1), Yandex (1)