All streams
Search
Write a publication
Pull to refresh
-3
Дмитрий Романенко @WraithOWread⁠-⁠only

User

Send message
можно взять IP и затем просто отсеять всех с одинаковым UserAgent

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

Ну и MrNobody все правильно сказал про NAT и провайдера. У моего прова мизерный пул, так что иногда по вечерам вместо страницы гугла приходится читать заглушку в стиле «из вашей сети идут атаки, приходите завтра». Я теперь, конечно, могу похвастаться нотариально заверенными скриншотами того, что меня забанили в гугле, но иногда это реально бесит. И ведь не какая-то деревня Печного уезда — DC2.
TextView — это элемент отображения данных, но никак не ввода и не управления. Если хотите держать пункт «вверх» отдельно от списка — используйте кнопки.
Ставил циан несколько лет назад. И я могу смело сделать вывод что его установка ну никак не подходит под ситуацию «я простой пользователь, я нажал на кнопочку и на мой телефон что то там установилось».

Несколько лет — слишком большой срок в таких вопросах, чтобы делать «смелые» выводы. Если по существу, то процедура сильно упростилась, судите сами. И люди, не понимающие «что это» и «какие последствия», легко установят циан с помощью простого мастера. В этом и была идея.

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

Потому что они создадут себе проблемы на ровном месте. Представьте, что в ближайшем супермаркете начнут продавать яйца с эмбрионами, пусть и снабдив их большим предупреждением. Пара гурманов, решивших приготовить себе балют — оценит, но при этом обязательно найдется толпа граждан, которые сначала купят (или даже просто увидят), а потом устроят скандал и жалобу в роспотребнадзор накатают — в %shopname% тухлятину продают! Кому нужны такие проблемы?
Цвет выделения файла в зависимости от выбранной пользователем темы.

Вместо ручной установки цвета фона в getView() используйте setSelected():
view.setSelected(selectedIndex == position);

Кликать по заголовку для того, чтобы перейти на уровень вверх — ИМХО не лучшее решение, пользователь вряд ли догадается (я вот только из кода понял, как это сделать). Лучше просто добавлять в начало списка элемент с тремя точками в названии, или стрелку вверх, как в тотале.

Опять же, я так и не понял зачем нужно устанавливать CHOICE_MODE_SINGLE

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

И да, использовать «сырые» диалоги — не лучший, на мой взгляд подход. Посмотрите в сторону DialogFragment.
Посмотрите на это с точки зрения обычного пользователя, который купил телефон в евросети и слыхом не слыхивал ни про какие «ROM», «bootloader» и так далее. Он идет в официальный магазин, качает оттуда приложение, а в результате ловит какие проблемы с телефон. Более того, если он попробует воспользоваться гарантией — его завернут. В итоге с точки зрения юзера — он использовал штатный функционал, а его за это гарантии решили и телефон сломали, и вообще гугл виноват, что такое в маркет выпускает.

Ситуация с приложением от циана, конечно, неприятная, но я бы не стал так однозначно заявлять, что гугл кого-то душит. Просто рядовые пользователи (коих большинство), скорее всего, получат геморрой от такого приложения в том или ином виде, а те, кто полностью понимают, что делают и зачем им это нужно, не поленятся потратить лишние 2 минуты на то, чтобы поставить apk с сайта цианогена.
Не соглашусь. Portal 1/2, HL1/2 с эпизодами, TF — не помню никаких проблем ни с одной из них. L4D после выхода тоже вела себя вполне прилично. Сравните с GTA4, в которой после выхода были массовые проблемы с текстурами на радеонах, и которые фиксились не одну неделю, или со свежим Batman:AO, где из-за кучки неприятных багов тоже неделю с лишним страдали практически все игроки. Я не заметил, чтобы репутация Rockstar или WB Games рухнула после этого ниже плинтуса — так почему репутация Valve, при более высоком качестве продукта, должна упасть?

А что касается сетевой составляющей, то тут я вас огорчу — это норма.
Когда я играл в WoW, то регулярно падали реалмы, или начинался массовый лагодром, причем в последнем случае ТП очень любила перекидывать проблемы на сторону игрока, даже если по трейсам задержка была у провайдера близзовского датацентра.
Сейчас иногда играю в LoL, и здесь тоже периодически случаются проблемы с серверами.
Я не знаю ни одной сетевой игры, где регулярно выкатывались бы новые апдейты, добавлялись новые фичи и проводились оптимизации, и при этом никогда ничего не ломалось. Ну не бывает так, и здесь валв не лучше и не хуже остальных.
забивать на проекты, не фиксить баги годами, и выпускать недопил

А можно поподробней? Ну, если не учитывать HL3.
Вендорам наверняка компенсируют убытки.

>а не что-то не понятное от noname с 10ом игр в год.
Вот вы сейчас в точности описали ситуацию с PS3 на момент выхода. И ничего, выкарабкались, да еще как.
Их задача — не столько получить прибыль от консолей, сколько пропихнуть сам Steam на консольный рынок, и уже потом грести деньги непосредственно за счет дистрибуции игр.
ИМХО логика проста: их консоли откусывают кусок рынка, разработчики начинают выпускать игры под новую консоль, больше игр и возможность играть в игры из «десктопного» стима привлекают покупателей, доля рынка снова подрастает и так далее.
Никто, ЕМНИП, и не обещал, что вы, только распаковав девайс, сможете играть во все свои игры из любых сервисов и под любые оси. Речь шла о том, что никто не будет запрещать ручками поставить туда другую ось/клиент другого игрового сервиса и пользоваться ими. Ваше железо, что хотите, то и воротите.

А вот «из коробки» SteamBox со SteamOS и вшитым клиентом Steam будет работать только с играми из Steam. Звучит логично, на мой взгляд.
Присяжные:
а) подтвердили факт нарушения патента;
б) сочли патент обоснованным (видимо, Диффи не поверили).
Судя по этому посту, стоимость процедуры отзыва — $500k.
Есть оговоренное время когда сообщат если вас берут.

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

только этим и будешь заниматься

21й век на дворе, переключиться на вкладку с мейлом, выбрать шаблон с «бла-бла-бла к сожалению вы нам не подходите» и отправить его — дело 30 секунд, если кандидатов сотни — можно использовать списки и т.д. Зато человек будет точно знать, что в A, B, C его отшили, D сделали оффер, а E и F пока думают.
var x = point.getX()+2;
var y = point.getX()-3;
if(x==y) {
  //...
}


Если get'ы возвращают целый тип, то все хорошо, если дробный — у вас тут кучка потенциальных багов, связанных с точностью вычислений. Не зная типов, вы, скорее всего, пропустите это место — в самом деле, сложили, отняли и сравнили, где тут может быть баг?
И будет тогда решение для одного-единственного частного случая — если все имплементации интерфейса в проекте имеют одного и того же непосредственного родителя.
Остальные случае не покрыты.
Никак не привыкну к хаброшорткатам.

Вот взял программист и построил изначально дерево наследования
abstract A -> D -> C
И имплементировал в C некий интерфейс. Следуя вашей логике, нужно ввести новый абстрактный класс B между A и D, и туда поднять имплементацию интерфейса — на два уровня вверх, где этот контракт вообще не нужен.

с множественными глубокими иерархиями

Два уровня наследования — это уже глубокая иерархия?
Откуда возьмется «через D»

Оттуда же, откуда и A,B и C. Вот взял программист и построил дерево наследования
Если C наследуется от B не напрямую, а, например, через D, то метод из интерфейса получат и D, и все его наследники, а не только C, что есть нехорошо.

Кроме того, такой подход вообще не работает для ситуации, когда интерфейс имплементируют классы из совершенно разных иерархий, у которых единственный общий предок — Object. У вас по-прежнему в каждом дереве наследования будет своя копия кода для run(), и если в какой-то момент потребуется изменить поведение этого метода — изменения придется вносить во все имплементации. Методы в интерфейсах позволяют вообще выпилить подобную копипасту из проекта.

>Чтобы, случаем, не взять себе в офис «троянца».
А чем это так плохо? В конце концов, это специалист, гарантированно имеющий опыт (скорее всего, приличный) как раз в требуемой области.
Плохое решение: вы избавляетесь от методов в интерфейсе, зато ваш абстрактный класс (до которого может быть не один, не два и не пять уровней наследования) приобретет методы, которые к нему, скорее всего, вообще отношения не имеют. А заодно этот метод получат все классы из других ветвей, которые имели несчастье иметь того же предка.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity