Какой из них допускает дублирование элементов?
Anonymous Quiz
63%
List
19%
Set
10%
Все
8%
Ни один из вышеперечисленных
#python
Почему в Python нет операторов ++ и -- ?
Если вы действительно хотите знать причину, то придется читать древние, как документации COBOL, форумы Python разработчиков.
Как пишут благородные питонисты: "Простые инкременты и декременты не так нужны, как в других языках. Вы не очень часто пишете такие вещи, как for(int i = 0; i < 10; ++i) в Python; вместо этого вы делаете такие вещи, как for i in range(0, 10) ". То есть нет необходимости прописывать итерацию в циклах.
Есть ли такая необходимость добавить унарные операторы инкрементации и декрементации? Помните, что это целых четыре оператора (два инкремента и два декремента), каждый из которых должен иметь собственную перегрузку класса, которая тормозит VM.
Эти операторы просто избыточны и ненужны в пайтон, когда можно использовать += и -=.
Keep it simple.
Почему в Python нет операторов ++ и -- ?
Если вы действительно хотите знать причину, то придется читать древние, как документации COBOL, форумы Python разработчиков.
Как пишут благородные питонисты: "Простые инкременты и декременты не так нужны, как в других языках. Вы не очень часто пишете такие вещи, как for(int i = 0; i < 10; ++i) в Python; вместо этого вы делаете такие вещи, как for i in range(0, 10) ". То есть нет необходимости прописывать итерацию в циклах.
Есть ли такая необходимость добавить унарные операторы инкрементации и декрементации? Помните, что это целых четыре оператора (два инкремента и два декремента), каждый из которых должен иметь собственную перегрузку класса, которая тормозит VM.
Эти операторы просто избыточны и ненужны в пайтон, когда можно использовать += и -=.
Keep it simple.
#java
Есть три основные виды множеств -
HashSet хранит элементы в произвольном порядке, но зато быстро ищет. Подходит, если порядок Вам не важен, но важна скорость. Более того, для оптимизации поиска, HashSet будет хранить элементы так, как ему удобно.
LinkedHashSet будет хранить элементы в порядке добавления, но зато работает медленнее.
TreeSet хранит элементы отсортированными.
Set -
это такой же способ хранения данных, как массив или список. Но особенность множества в том, что оно может хранить только уникальные значения. Можете быть спокойны - дублироваться в множествах ничего не будет.Есть три основные виды множеств -
HashSet, LinkedHashSet и TreeSet.
Чем отличаются HashSet, LinkedHashSet и TreeSetHashSet хранит элементы в произвольном порядке, но зато быстро ищет. Подходит, если порядок Вам не важен, но важна скорость. Более того, для оптимизации поиска, HashSet будет хранить элементы так, как ему удобно.
LinkedHashSet будет хранить элементы в порядке добавления, но зато работает медленнее.
TreeSet хранит элементы отсортированными.
#cybersecurity
Clubhouse, или open data storage?
Я нашел бота, который без особого труда позволяет записывать разговоры. Вот краткий обзор статьи habr, автора бота.
Сам алгоритм: "Быстро вырисовалась базовая схема. Получаем от пользователя ссылку на активную комнату или на событие в будущем. Если это активная комната, то дергаем ручку /join_channel, получаем оттуда токен и название комнаты. Сразу же выходим из комнаты, и передаем полученные данные специальному демону, который делает простейшую вещь: если это новая комната, то он стартует отдельный бинарник, который, собственно, делает непосредственно всю работу по записи аудиопотока и записывает chat_id телеграммной беседы, чтобы обрадовать счастливого слушателя, когда всё будет готово. Если же это уже известная комната, которая уже записывается, то, разумеется, новый поток не запускается, но слушатель дописывается в список тех, кто решил записать эту беседу раньше.
Если же это событие в будущем (event в терминах Clubhouse), то начинается веселье. С некоторой периодичностью, которая увеличивается со временем, мы начинаем дергать ручку /get_event. Мы извлекаем оттуда ориентировочное время старта беседы (потому что оно может меняться со временем) и, если беседа уже началась, идентификатор комнаты. Как только это происходит, бот информирует всех заинтересованных о том, что беседа началась и далее автоматически происходит процедура из предыдущего абзаца. Бывают случаи, когда событие так и не начинается. В этом случае бот убивает событие в очереди демона и отправляет грустное сообщение интересантам."
Полная стаття на habr- https://habr.com/ru/post/543764/
Реп - https://github.com/stypr/clubhouse-py
Clubhouse, или open data storage?
Я нашел бота, который без особого труда позволяет записывать разговоры. Вот краткий обзор статьи habr, автора бота.
Сам алгоритм: "Быстро вырисовалась базовая схема. Получаем от пользователя ссылку на активную комнату или на событие в будущем. Если это активная комната, то дергаем ручку /join_channel, получаем оттуда токен и название комнаты. Сразу же выходим из комнаты, и передаем полученные данные специальному демону, который делает простейшую вещь: если это новая комната, то он стартует отдельный бинарник, который, собственно, делает непосредственно всю работу по записи аудиопотока и записывает chat_id телеграммной беседы, чтобы обрадовать счастливого слушателя, когда всё будет готово. Если же это уже известная комната, которая уже записывается, то, разумеется, новый поток не запускается, но слушатель дописывается в список тех, кто решил записать эту беседу раньше.
Если же это событие в будущем (event в терминах Clubhouse), то начинается веселье. С некоторой периодичностью, которая увеличивается со временем, мы начинаем дергать ручку /get_event. Мы извлекаем оттуда ориентировочное время старта беседы (потому что оно может меняться со временем) и, если беседа уже началась, идентификатор комнаты. Как только это происходит, бот информирует всех заинтересованных о том, что беседа началась и далее автоматически происходит процедура из предыдущего абзаца. Бывают случаи, когда событие так и не начинается. В этом случае бот убивает событие в очереди демона и отправляет грустное сообщение интересантам."
Полная стаття на habr- https://habr.com/ru/post/543764/
Реп - https://github.com/stypr/clubhouse-py
Хабр
ClubHouseRec_bot — расцвет и падение или как записать беседу бесплатно и без смс
ВступлениеПервые дни Клабхауса в России были чудесными - люди, с которыми большинство из нас вряд ли когда-то сможет побеседовать вживую, рассказывают дико интер...
Какой интерфейс нужно реализовать для сортировки по множеству критериев?
Anonymous Quiz
51%
Comparable
37%
Comparator
7%
Serializable
5%
SortMap
#web
HTTP — это протокол, позволяющий получать различные ресурсы, например HTML-документы.
Протокол HTTP лежит в основе обмена данными в Интернете. HTTP является протоколом клиент-серверного взаимодействия, что означает инициирование запросов к серверу самим получателем, обычно веб-браузером (web-browser).
Полученный итоговый документ будет (может) состоять из различных поддокументов являющихся частью итогового документа: например, из отдельно полученного текста, описания структуры документа, изображений, видео-файлов, скриптов и многого другого.
Каждый запрос (англ. request) отправляется серверу, который обрабатывает его и возвращает ответ (англ. response). Между этими запросами и ответами как правило существуют многочисленные посредники, называемые прокси, которые выполняют различные операции и работают как шлюзы или кэш, например.
HTTP — это протокол, позволяющий получать различные ресурсы, например HTML-документы.
Протокол HTTP лежит в основе обмена данными в Интернете. HTTP является протоколом клиент-серверного взаимодействия, что означает инициирование запросов к серверу самим получателем, обычно веб-браузером (web-browser).
Полученный итоговый документ будет (может) состоять из различных поддокументов являющихся частью итогового документа: например, из отдельно полученного текста, описания структуры документа, изображений, видео-файлов, скриптов и многого другого.
Каждый запрос (англ. request) отправляется серверу, который обрабатывает его и возвращает ответ (англ. response). Между этими запросами и ответами как правило существуют многочисленные посредники, называемые прокси, которые выполняют различные операции и работают как шлюзы или кэш, например.
Что гарантирует безопасность типов в коллекции?
Anonymous Quiz
67%
Generics
13%
Abstract classes
13%
Interfaces
8%
Collection
#python
Что лучше, import или from import?
Обратимся к первоисточникам, а именно-к PEP8. Когда импортируете класс из модуля, будет нормально сделать это так:
from myclass import MyClass
from foo.bar.yourclass import YourClass
Если это вызывает локальный конфликт Имен, то можно сделать это явно:
import myclass
import foo.bar.yourclass
Для того, чтобы понять, как надо импортировать каждую библиотеку нужно читать документацию к каждому модулю, ведь автор сам решает, какой import нужно использовать.
Flask импортируется:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!
Pytest импортируется:
import pytest
def test_zero_division():
with pytest.raises(ZeroDivisionError):
1 / 0
При написании тестов порой надо подменить какие-то методы. Вот тут с импортами из модуля начинается цирк. К моменту, когда накладывается патч, ссылка на объект уже имеется в тех местах, где он импортирован, и патчить нужно не место, где объект объявлен, а все места, где был сделан импорт. Несложно, но немного запарно, и есть шанс что-то поломать при рефакторинге.
Этот момент – достаточно частый источник недоумения.
Что лучше, import или from import?
Обратимся к первоисточникам, а именно-к PEP8. Когда импортируете класс из модуля, будет нормально сделать это так:
from myclass import MyClass
from foo.bar.yourclass import YourClass
Если это вызывает локальный конфликт Имен, то можно сделать это явно:
import myclass
import foo.bar.yourclass
Для того, чтобы понять, как надо импортировать каждую библиотеку нужно читать документацию к каждому модулю, ведь автор сам решает, какой import нужно использовать.
Flask импортируется:
from flask import Flask
app = Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello, World!
Pytest импортируется:
import pytest
def test_zero_division():
with pytest.raises(ZeroDivisionError):
1 / 0
При написании тестов порой надо подменить какие-то методы. Вот тут с импортами из модуля начинается цирк. К моменту, когда накладывается патч, ссылка на объект уже имеется в тех местах, где он импортирован, и патчить нужно не место, где объект объявлен, а все места, где был сделан импорт. Несложно, но немного запарно, и есть шанс что-то поломать при рефакторинге.
Этот момент – достаточно частый источник недоумения.
Что позволяет удалять элементы из коллекции?
Anonymous Quiz
12%
Enumeration
10%
Serializable
44%
Iterator
34%
метод removeObj()
#definition
Reverse Engineering (ревёрсинг, обратная разработка) — это процесс «заимствования», восстановления исходников из конечного продукта инженерной и/или научной деятельности с интуитивным конструированием внутренней механики по принципу «а какие процессы должны вызвать такое внешнее поведение этого продукта?». Ориентируясь на нюх, так сказать. Иногда приводит к написанию собственного дока. Много их, ибо ваистену
Примером RE является создание базы данных из готовых сущностей в Spring.
Reverse Engineering (ревёрсинг, обратная разработка) — это процесс «заимствования», восстановления исходников из конечного продукта инженерной и/или научной деятельности с интуитивным конструированием внутренней механики по принципу «а какие процессы должны вызвать такое внешнее поведение этого продукта?». Ориентируясь на нюх, так сказать. Иногда приводит к написанию собственного дока. Много их, ибо ваистену
Примером RE является создание базы данных из готовых сущностей в Spring.
Что из этого синхронизировано и не допускает нулевых элементов?
Anonymous Quiz
33%
Vector
28%
CopyOnWriteArraySet
11%
CopyOnWriteArrayList
28%
ConcurrentSkipListSet
#web
HTTPS vs HTTP
HTTPS не является отдельным протоколом передачи данных, а представляет собой расширение протокола HTTP но со встроенным шифровальщиком. Добавочная буква «S» в аббревиатуре означает «Secure», то есть «безопасный».
HTTPS это закрытый протокол имеющий надстройку шифрования и использующий по умолчанию порт 433, тогда как HTTP – открытый протокол который использует порт 80
Данные передаваемые по протоколу HTTPS всегда больше по объёму чем те самые данные на HTTP поэтому их передача в обе стороны занимает чуть больше времени
HTTPS использует SSL-сертификаты для шифрования информации
Как это происходит?
Если на сайте есть SSL-сертификат, между браузером клиента и сайтом устанавливается защищённое соединение. В этом случае браузер сначала преобразует номер карты в случайный набор символов и только потом отправляет его на сервер.
Расшифровать сообщение получится только специальным ключом, который хранится на сервере.
HTTPS vs HTTP
HTTPS не является отдельным протоколом передачи данных, а представляет собой расширение протокола HTTP но со встроенным шифровальщиком. Добавочная буква «S» в аббревиатуре означает «Secure», то есть «безопасный».
HTTPS это закрытый протокол имеющий надстройку шифрования и использующий по умолчанию порт 433, тогда как HTTP – открытый протокол который использует порт 80
Данные передаваемые по протоколу HTTPS всегда больше по объёму чем те самые данные на HTTP поэтому их передача в обе стороны занимает чуть больше времени
HTTPS использует SSL-сертификаты для шифрования информации
Как это происходит?
Если на сайте есть SSL-сертификат, между браузером клиента и сайтом устанавливается защищённое соединение. В этом случае браузер сначала преобразует номер карты в случайный набор символов и только потом отправляет его на сервер.
Расшифровать сообщение получится только специальным ключом, который хранится на сервере.
что выведется на экран в результате выполнения программы?
Anonymous Quiz
2%
java
55%
JAVA
40%
Java
3%
jAVA
#interviewTasks
Раздобыли тестовое задание на Strong Junior Java Developer.
Если вам было бы интересно с ним ознакомиться, ждем от вас реакций.
Раздобыли тестовое задание на Strong Junior Java Developer.
Если вам было бы интересно с ним ознакомиться, ждем от вас реакций.
#java
Wildcards (Generics)
Знак вопроса (?) Известен как подстановочный знак в универсальном программировании. Представляет неизвестный тип.
Подстановочный знак можно использовать в различных ситуациях, таких как тип параметра, поля или локальной переменной; иногда как возвращаемый тип.
В отличие от массивов, разные экземпляры универсального типа несовместимы друг с другом даже явно. Эта несовместимость может быть смягчена подстановочным знаком, если ? используется как фактический параметр типа.
Wildcards (Generics)
Знак вопроса (?) Известен как подстановочный знак в универсальном программировании. Представляет неизвестный тип.
Подстановочный знак можно использовать в различных ситуациях, таких как тип параметра, поля или локальной переменной; иногда как возвращаемый тип.
В отличие от массивов, разные экземпляры универсального типа несовместимы друг с другом даже явно. Эта несовместимость может быть смягчена подстановочным знаком, если ? используется как фактический параметр типа.
#patterns
Одиночка (англ. Singleton) — порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру.
Одиночка (англ. Singleton) — порождающий шаблон проектирования, гарантирующий, что в однопоточном приложении будет единственный экземпляр некоторого класса, и предоставляющий глобальную точку доступа к этому экземпляру.
Что выведет этот код?
Anonymous Quiz
16%
JavaPython
21%
C++C++
9%
PythonJava
14%
JavaC++
37%
JavaJava
2%
PythonPython