Как стать автором
Обновить
100
1
Slava Vedenin @vedenin1980

Java developer

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

Конечно, oDesk, например. С иностранными заказчиками работать сложнее из-за языка, зато куда более выгоднее из-за курса. Потом, когда-то у Internet Explorer'a не было конкурентов, но «можно бесконечно долго обманывать одного человека, можно непродолжительное время обманывать большое количество людей, но нельзя постоянно обманывать всех». © Авраам Линкольн
А я ушел, после того как их арбитраж вернул все деньги заказа откровенно кинувшему меня заказчику, несмотря на все доказательства выполненной работы и махинаций заказчика.
Ну, это из другой оперы, если так рассуждать то посадить можно вообще любого, даже если он ничего не сделал.
Закон, например?

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

Сайт обычными методами позволяет получать с него информацию? Позволяет, следовательно нарушение установленного порядка доступа информации тут нет. Если вы сами будите разбрасывать по улицам ксерокопии своего паспорта глупо обвинять кого-то кроме себя в нарушении ваших персональных данных.
Если ты сам оставил ноут на лавочке в парке, то глупо говорить «украли», правильно говорить «прое%%%ал». Закон чаще всего не защищает в случаях «сам дурак», даже если ты найдешь того кто взял твой ноут ему ничего не будет.
Какая разница, если файлы доступны всем подряд? Тут не в прямой ссылке дело, а в том что она доступна тем кому не должна.
Нее, если сайт сам позволяет получать данные, то какой тут неправомерный доступ?
Например, показывать эти документы только авторизованным пользователям.

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

Сеариализация: строка_json = new Gson().toJson(объект_или_коллекция);
Десериализация: Объект = new Gson().fromJson(строка_json, тип_объекта_или_коллекции);

Достаточно запомнить только это, а все форматы представлений объектов и коллекций абсолютно типовые для json'a.

Если интересно, то статический анализатор Idea в умеренно-параноидальном режиме увидев такое выдаст кучу непечатных слов…
примерно вот таких...
HashMap<Integer, String>' does not define 'clone()'
Reports classes which implement the Cloneable interface, but which do not override the clone() method. Such classes use the default implementation of clone(), which is often not the desired behavior.

Anonymous class 'HashMap<Integer, String>' may be a named 'static' inner class
Reports any anonymous classes which may safely be made into a named static inner class. An anonymous class may be static if it doesn't explicitly reference its enclosing instance or local variables from its surrounding method.
A static inner class does not keep an implicit reference to its enclosing instance. This prevents a common cause of memory leaks and uses less memory per instance of the class.

Anonymous class explicitly extends 'java.util.HashMap'
Reports any clases which extend concrete classes of type java.util.Collection or java.util.Map. Subclassing collection types is a common practice of novice object-oriented developers, but is considerably more brittle than delegating collection calls.

Double brace initialization
Reports Double Brace Initialization. Double brace initialization can cause memory leaks when used from a non-static context, because the anonymous class created will maintain a reference to the surrounding object. It has worse performance than regular initialization because of the additional class loading required. It can cause equals() comparisons to fail, if the equals() method does not accept subclasses as parameter (see link above). And finally, it cannot be combined with Java 7 diamond operator, because that cannot be used with anonymous classes.

Inner class 'HashMap<Integer, String>' does not define a 'serialVersionUID' field
Reports Serializable non-static inner classes which do not provide a serialVersionUID field. Without a serialVersionUID field, any change to a class will make previously serialized versions unreadable. It is strongly recommended that Serializable non-static inner classes have a serialVersionUID field, otherwise the default serialization algorithm may result in serialized versions being incompatible between compilers, due to differences in synthetic accessor methods.

Inner class 'HashMap<Integer, String>' is serializable while its outer class is not
Reports Serializable non-static inner classes whose outer classes are non-Serializable. Such classes are unlikely to serialize correctly, due to implicit references from the inner to outer class.
Потому что в таком случае надо писать явно

String jsonStr = gson1.toJson(mapItems, HashMap.class);

Тогда все будет работать. Использование такого формата инициализации считается bad practise, так как на самом деле этот код создаст inner class и тип у mapItems будет не HashMap, а inner подкласс наследник от HashMap (можете увидит эту магию в любом дебагере). К тому же такого формат инициализации может привести к утечки памяти. В целом, это скорее глюки (точнее не очень ожидаемое поведение) компилятора Java. Ну и лучше вообще никогда не иницилизировать так map'ы (может за исключением явных константных map)
Разве на этом заработаешь? Надо примерно так.

Техническое задание: написать программу печатающую Hello world!
Шаг 1:
Как известно константы в коде это не наш метод, поэтому добавим программе гибкости и будем хранить их вне кода. Для гибкости в json, xml, ymi и properites формате. На работу с этими форматами запросим мелочь по тысячи строк с каждого.

Шаг 2:
Естественно, реализуем фабрику, абстрактную фабрику и систему редеров и лодеров всех этих файлов. Ну, пара тысяч строк.

Шаг 3:
Вспомним про мультиязыковую поддержку и создадим файлы на 50 мировых языках, реализуем поддержку всех возможных кодировок. Мы ведь хотим чтобы у нас было гибкое приложение? Ну, ещё тысяч пять строк.

Шаг 4:
Нет, ну как в нашем системе без unit tes'ов? Никак, увеличем кол-во строк ещё вдвое.

Шаг 5:
А ещё интеграционные тесты, ну пару тысяч. Это мелочь.

Шаг 6:
Таак, а если пользователь захочет поменять сообщение сам? Нет, мы за гибкость. Реализуем Rest Api, web интерфейс, desktop интерфейс для основных ОС и делаем приложение для основных мобильных платформ. Ну, тут без 50 тысяч строк никак.

Шаг 7:
Нам ведь строку надо где-то хранить, правильно? Релизуем работу с основными СУБД (мало ли что заказчик захочет), вспомним про nosql и поддержим несколько nosql систем.

Шаг 8:
Ну да, юнит тесты, интеграционные тест, автоматические тесты, тесты производительности. Все по правильному. Умножаем все строчки кода ещё раза в три.

Шаг 9:
Вспоминаем про многопоточность и реализуем коллизии одновременных изменений строки hello word. Вспомнием про отказоустойчивость, обработку ошибок, логирование…

Шаг…

Шаг N:
Понимаем что технологии на шагах 1..N-1 уже устарели, их выкидываем, делаем рефакторинг и делаем все заново.

Шаг…

Итого: это проект в несколько миллионов строк кода и много лет работы команды из сотни человек.
Ну, главное принцип, учитывая развитие камер не такая уж фантастика очень дорогой скрытой камерой считать со зрачка информацию. А учитывая моду на выкладывания видеороликов о себе любимом вполне можно найти видео когда кто-то вводит пароль или что-то вроде.
Этого мало, особенно если ты вводишь пароль к банковскому сервису в этот момент? В принципе получается можно придти в банк со скрытой камерой и прочитать логин и пароль оператора по отражению в его глазах/очках (или часть пароля, что тоже не мало).
1) Делаем бота, подписывающегося на рассылку всех сайтов подряд,
2) получаем на ящик настоящую рассылку,
3) Другим ботом вычисляем email'ы пользователей сайта (иногда это возможно),
4) шлем им ту же рассылку, но с левыми url'aми,
5) profit
В теории можно. Например, сделав фейковую рассылку как бы от крупного сайта, что-то вроде рассылки от майл.ру или яндекса, которая в от кого пишет правильный email, текст рассылки ровно такой же как у настоящей, но все ссылки ведут на XXX сайт или что ещё хуже на сайт с кучей вирусов. В самом худшем случае они ведут на копию сайта банка или платежной системы и крадут деньги пользователей. Скажем, рассылка точная копия сбербанка, но все ссылки ведут на фековый сайт.
Не стоит забывать о ботах:
1) проверяющих формы загрузки файлов на сайте на возможность залить произвольный файл на сервер (встречается например если программист забыл поставить проверку, что залить на сервер можно только картинку или проверяет только на вхождение ".jpg", тогда может сработать заливка blackdoor.jpg.php)

2) Проверяющих формы комментирования и т.п. на возможность залить рекламу или произвольный javascript код, для воровства трафика или дохода за контекстной рекламы.

Кстати, кроме «светлых» и «темных», есть ещё «серые» боты, это боты, которые не пытаются получить доступ к информации или как-то навредить сайту, однако пытающиеся получить ту информацию или возможности, что обычно ботам не доступны (например, на сайте бронирования билетов онлайн, пытаются получить данные о всех возможных рейсах). Почему серые? Потому что не всегда смысл таких ботов в том чтобы нанести вред, иногда у сайта нет подходящего api (или его получить слишком сложно) для вполне мирных и полезных целей (например, для того чтобы моментально обновлять ассортимент и цены на сайте посредника при изменениях на сайте производителя).
Не спорю, можно завести несколько логинов, можно даже пару десятков, но сотни и тысячи? Не говоря уже о том насколько подозрительно одному человеку иметь сотни сбербанковских карточек на одно имя. Налоговая приедет раньше. :)
Кстати, наберите в гугле/яндексе что-нибудь вроде «владимир александрович телефон», они вам выдадут по полмиллиона результатов, нужно только их распарсить и выделить мобильные телефоны. И так для любых распространенных пар имени/отчества.

Информация

В рейтинге
1 430-й
Откуда
Luxemburg, Luxembourg, Люксембург
Дата рождения
Зарегистрирован
Активность