== Машинное обучение. Байесовская классификация
https://youtu.be/qMndsltzNGA
https://youtu.be/qMndsltzNGA
YouTube
Машинное обучение. Байесовская классификация. К.В. Воронцов, Школа анализа данных, Яндекс.
Восстановление плотности распределения по выборке – важный класс задач машинного обучения. В частности, к ним сводится построение байесовского классификатора. Рассматриваются три подхода к восстановлению плотности. Самый простой – непараметрический, это оценка…
== Сети X.25. Начало глобальных сетей
https://youtu.be/WA8wI6AI2bM
- 255 адресов всего
- сложность изменением топологией и динамической конфигурацией.
- важен порядок добавления компьютеров в сеть
https://youtu.be/WA8wI6AI2bM
- 255 адресов всего
- сложность изменением топологией и динамической конфигурацией.
- важен порядок добавления компьютеров в сеть
YouTube
Сети X.25. Начало глобальных сетей
Вашему вниманию предложена одна из самых простых сетей передачи данных. Простота сети это простота в понимании принципов работы, а эти принципы легли в основу работы сетей следующих поколений.
Статьи на Пульс: https://pulse.mail.ru/source/3768777279273129127/…
Статьи на Пульс: https://pulse.mail.ru/source/3768777279273129127/…
Forwarded from oleg_log (Oleg Kovalov)
Поехали новую IDE тестить https://blog.jetbrains.com/blog/2021/11/29/welcome-to-fleet/
The JetBrains Blog
Welcome to Fleet! | The JetBrains Blog
Update (Dec 3, 2021): We’ve received an overwhelming number of requests for the Fleet Early Preview program. Unfortunately we can't accept any new requests, but we will continue sending invites to tho
oleg_log
Поехали новую IDE тестить https://blog.jetbrains.com/blog/2021/11/29/welcome-to-fleet/
YouTube
Meet JetBrains Fleet — The Next-generation IDE by JetBrains
We’re revealing our latest project: Fleet –— the next-generation IDE from JetBrains.
Fleet is an IDE and a lightweight editor. It's flexible, smart, and polyglot with support for collaboration and remote workflows. Fleet is built from scratch but uses the…
Fleet is an IDE and a lightweight editor. It's flexible, smart, and polyglot with support for collaboration and remote workflows. Fleet is built from scratch but uses the…
Forwarded from Tech Talk
В США рассекретили документ от ноября 2020 года о том, какой доступ к каким мессенджерам имеет ФБР. iMessage и Whatsapp выдают больше всего, причем iMessage выдает расшифрованные бэкапы сообщений из iCloud (если они там есть), зато Whatsapp делится информацией о новых действиях в нужных аккаунтах почти в реальном времени.
▪️Signal: содержания сообщений не предоставляет, предоставляет дату регистрации аккаунта и когда пользователь в последний раз соединялся.
▪️Telegram: содержания сообщений не предоставляет, информацию по решению суда не выдает. В документе есть ссылка на политику Telegram, что он может выдать IP-адрес и номер телефона по расследованиям подтвержденных случаев терроризма.
▪️Viber: содержания сообщений не предоставляет, предоставляет номер телефона и IP-адрес на момент регистрации, по запросу предоставляет метаданные (какой номер телефона на какой когда писал и звонил).
▪️iMessage: содержание сообщений предоставляет "ограничено" (что это значит, в документе не объясняют). Предоставляет основную информацию о пользователе. По ордеру на обыск выдает бэкапы iCloud. Если пользователь бэкапит iMessage в iCloud, то выдает и этот бэкап сообщений iMessage (они в облаке зашифрованы, но у Apple есть ключи). При этом Apple, в отличие от Whatsapp, не предоставляет pen register - это когда ФБР почти в реальном времени получает новую информацию о действиях пользователя в аккаунте.
▪️Whatsapp: содержание сообщений можно получить, если у пользователя iPhone и архив Whatsapp бэкапится в iCloud (то есть выдает фактически Apple). Предоставляет основную информацию о пользователе. По решению суда представляет список заблокированных аккаунте пользователей. По ордеру на обыск представляет адресную книгу. При этом предоставляет pen register (фактически, такой вариант прослушки на уровне метаданных) - сообщает о новых действиях в нужном аккаунте с задержкой в 15 минут, то есть кто кому когда писал и звонил.
Еще в таблице есть информация про Line, Threema, Wechat и Wickr, но это уже сами почитайте) Интересно, что у всех мессенджеров вроде почти одинаковое шифрование (кроме Telegram, дада), но метаданные все выдают по-разному.
https://propertyofthepeople.org/document-detail/?doc-id=21114562
▪️Signal: содержания сообщений не предоставляет, предоставляет дату регистрации аккаунта и когда пользователь в последний раз соединялся.
▪️Telegram: содержания сообщений не предоставляет, информацию по решению суда не выдает. В документе есть ссылка на политику Telegram, что он может выдать IP-адрес и номер телефона по расследованиям подтвержденных случаев терроризма.
▪️Viber: содержания сообщений не предоставляет, предоставляет номер телефона и IP-адрес на момент регистрации, по запросу предоставляет метаданные (какой номер телефона на какой когда писал и звонил).
▪️iMessage: содержание сообщений предоставляет "ограничено" (что это значит, в документе не объясняют). Предоставляет основную информацию о пользователе. По ордеру на обыск выдает бэкапы iCloud. Если пользователь бэкапит iMessage в iCloud, то выдает и этот бэкап сообщений iMessage (они в облаке зашифрованы, но у Apple есть ключи). При этом Apple, в отличие от Whatsapp, не предоставляет pen register - это когда ФБР почти в реальном времени получает новую информацию о действиях пользователя в аккаунте.
▪️Whatsapp: содержание сообщений можно получить, если у пользователя iPhone и архив Whatsapp бэкапится в iCloud (то есть выдает фактически Apple). Предоставляет основную информацию о пользователе. По решению суда представляет список заблокированных аккаунте пользователей. По ордеру на обыск представляет адресную книгу. При этом предоставляет pen register (фактически, такой вариант прослушки на уровне метаданных) - сообщает о новых действиях в нужном аккаунте с задержкой в 15 минут, то есть кто кому когда писал и звонил.
Еще в таблице есть информация про Line, Threema, Wechat и Wickr, но это уже сами почитайте) Интересно, что у всех мессенджеров вроде почти одинаковое шифрование (кроме Telegram, дада), но метаданные все выдают по-разному.
https://propertyofthepeople.org/document-detail/?doc-id=21114562
== gobang
A cross-platform TUI database management tool written in Rust
https://github.com/TaKO8Ki/gobang
A cross-platform TUI database management tool written in Rust
https://github.com/TaKO8Ki/gobang
GitHub
GitHub - TaKO8Ki/gobang: A cross-platform TUI database management tool written in Rust
A cross-platform TUI database management tool written in Rust - TaKO8Ki/gobang
== Microservices & API Gateways | Mashape
https://youtu.be/zs_QyRTIpDM
- монолит VS микросервисы
- паттер API Gateway
- KONG + NGINX
== Welcome to Kong
https://docs.konghq.com/
https://youtu.be/zs_QyRTIpDM
- монолит VS микросервисы
- паттер API Gateway
- KONG + NGINX
== Welcome to Kong
https://docs.konghq.com/
YouTube
Microservices & API Gateways | Mashape
Software developers have been looking at different ways of building software and different architectural patterns have emerged. In this sort of revolution, Microservices and APIs have increasingly assumed greater importance as both a technology and a design…
== What are certificates?
https://youtu.be/LRMBZhdFjDI
- Digital Signature
- Certificate Trust Model
- Certificate Hierarchy
== SSL and Certificates Explained
https://youtu.be/cLnMr2OuXFI
https://youtu.be/LRMBZhdFjDI
- Digital Signature
- Certificate Trust Model
- Certificate Hierarchy
== SSL and Certificates Explained
https://youtu.be/cLnMr2OuXFI
YouTube
What are certificates?
Certificates are used to prove identity and used for creating secure communication. Check out http://itfreetraining.com for more of our always free training videos. This video looks at how a certificate works, what is a certificate and how they are used for…
== Whonix: руководство для начинающих
https://habr.com/ru/company/alexhost/blog/532980/
https://habr.com/ru/company/alexhost/blog/532980/
Хабр
Whonix: руководство для начинающих
Whonix — это дистрибутив Linux на основе Debian, который разработан для обеспечения повышенной безопасности и конфиденциальности. Высокая анонимность достигается средствами VirtualBox и Tor. Whonix...
BufWriter<Master<'_>>
== Whonix: руководство для начинающих https://habr.com/ru/company/alexhost/blog/532980/
== КАК РАБОТАЕТ ПАМЯТЬ КОМПЬЮТЕРА
https://youtu.be/Wh22_O8jXVQ
- байтовая адресация
- словестная адресация (специализированные устройства, не для общих масс)
размер регистра определяет максимальный адрес в ОЗУ
отрицательное число: -5
1) 5
= 0101
2) добавляем бит знака
= 1101
3) инвертируем все кроме знакового бита
= 1010
4) добавляем единицу
-5 = 1011
5) оставшиеся биты будут заполнены битами знака
= 11111011 (для слова в 1 байт)
== КАК РАБОТАЮТ СИСТЕМЫ СЧИСЛЕНИЯ
https://youtu.be/kG_ipMygRUc
хороший канал, кстати говоря https://www.youtube.com/channel/UCIn6hza5Ai119FJnLMJzECQ
https://youtu.be/Wh22_O8jXVQ
- байтовая адресация
- словестная адресация (специализированные устройства, не для общих масс)
размер регистра определяет максимальный адрес в ОЗУ
отрицательное число: -5
1) 5
= 0101
2) добавляем бит знака
= 1101
3) инвертируем все кроме знакового бита
= 1010
4) добавляем единицу
-5 = 1011
5) оставшиеся биты будут заполнены битами знака
= 11111011 (для слова в 1 байт)
== КАК РАБОТАЮТ СИСТЕМЫ СЧИСЛЕНИЯ
https://youtu.be/kG_ipMygRUc
хороший канал, кстати говоря https://www.youtube.com/channel/UCIn6hza5Ai119FJnLMJzECQ
YouTube
КАК РАБОТАЕТ ПАМЯТЬ КОМПЬЮТЕРА | ОСНОВЫ ПРОГРАММИРОВАНИЯ
Чтобы понять, что из себя представляет программа на самом деле, нужно разобраться с тем, кто и как ее выполняет в конечном итоге.
Этим занимается процессор, но без понимания того, как организована оперативная память компьютера, как в ней хранятся данные и…
Этим занимается процессор, но без понимания того, как организована оперативная память компьютера, как в ней хранятся данные и…
== КАК РАБОТАЕТ КЭШ ПРОЦЕССОРА
https://youtu.be/7n_8cOBpQrg
полный обьем кэша вычисляется как сумма
1) ПОЛЕЗНЫЙ размер кэша
2) СЛУЖЕБНЫЕ данные
полезный размер = 128 байт
32 х 4 + 4 х 4 = 144 байта
кэш прямого отображения = каждая строка ОЗУ соответствует определенной строке в КЭШ памяти. поделив сегменты ОЗУ на количество строк в кэше. очень быстро становится понятно соотвествие кэша и ОЗУ
+ быстрый поиск
= тег (старшая часть адреса) + индекс строки + смещение
наборно ассоциативный кэш
бьется на сегменты прямого кэша
медленней чем больше сигментов
полностью ассоциативный кэш
- низкая производительный
кэшконтроллер должен сам предсказывать и загружать автоматически из ОЗУ в кэш
LRU - last recently used (заменяются те данные которые дольше всех лежат без дела)
MFU - most frequently used (заменяются те что только что использовались)
LFU - least frequently used (заменяются данные которые используются реже всех)
несколько маленьких кэшей лучше одного большого
L1 и L2 пренадлежит каждому ядру ЦПУ поотдельности.
L3 делится между всеми ядрами
архитектуры L2:
- inclusive (дублирование с Л1) озу -> L2 -> L1 (копирует)
- exclusive (не дублируется) озу -> L2 -> L1 -> L2 (возвращает то что переполнилось)
если L3 inclusive - то можно не искать. если Exclusive - то искать надо
inclusive хранит МЕНЬШЕ данных. но быстрей
exclusive хранит БОЛЬШЕ данных. но медленней
!!! большие типы данных читаются быстрей всех
НО больше кэшмиссов (так как забьются кэши бестрей)
И лучше иметь массив который полностью помещается в кэш.
выбор типа всегда трейдофф и баланс
РАСШИРЕНИЕ ЧИСЛЕННОГО ТИПА
- явное или неявное (компилятором) приведение типов до машинного слова
Когерентность кэша
- совпадает ли копия в кэше с копией в ОЗУ
механизмы когерентности описываются правилами и протоколами в каждом из ЦПУ
S - shared
I - invalid
M - modified
= MSI протокол
E - exclusive
= MESI протокол
O - owned
= MOESI протокол
F - Forward (вместо Owned)
= MESIF
https://youtu.be/7n_8cOBpQrg
полный обьем кэша вычисляется как сумма
1) ПОЛЕЗНЫЙ размер кэша
2) СЛУЖЕБНЫЕ данные
полезный размер = 128 байт
32 х 4 + 4 х 4 = 144 байта
кэш прямого отображения = каждая строка ОЗУ соответствует определенной строке в КЭШ памяти. поделив сегменты ОЗУ на количество строк в кэше. очень быстро становится понятно соотвествие кэша и ОЗУ
+ быстрый поиск
= тег (старшая часть адреса) + индекс строки + смещение
наборно ассоциативный кэш
бьется на сегменты прямого кэша
медленней чем больше сигментов
полностью ассоциативный кэш
- низкая производительный
кэшконтроллер должен сам предсказывать и загружать автоматически из ОЗУ в кэш
LRU - last recently used (заменяются те данные которые дольше всех лежат без дела)
MFU - most frequently used (заменяются те что только что использовались)
LFU - least frequently used (заменяются данные которые используются реже всех)
несколько маленьких кэшей лучше одного большого
L1 и L2 пренадлежит каждому ядру ЦПУ поотдельности.
L3 делится между всеми ядрами
архитектуры L2:
- inclusive (дублирование с Л1) озу -> L2 -> L1 (копирует)
- exclusive (не дублируется) озу -> L2 -> L1 -> L2 (возвращает то что переполнилось)
если L3 inclusive - то можно не искать. если Exclusive - то искать надо
inclusive хранит МЕНЬШЕ данных. но быстрей
exclusive хранит БОЛЬШЕ данных. но медленней
!!! большие типы данных читаются быстрей всех
НО больше кэшмиссов (так как забьются кэши бестрей)
И лучше иметь массив который полностью помещается в кэш.
выбор типа всегда трейдофф и баланс
РАСШИРЕНИЕ ЧИСЛЕННОГО ТИПА
- явное или неявное (компилятором) приведение типов до машинного слова
Когерентность кэша
- совпадает ли копия в кэше с копией в ОЗУ
механизмы когерентности описываются правилами и протоколами в каждом из ЦПУ
S - shared
I - invalid
M - modified
= MSI протокол
E - exclusive
= MESI протокол
O - owned
= MOESI протокол
F - Forward (вместо Owned)
= MESIF
YouTube
КАК РАБОТАЕТ КЭШ ПРОЦЕССОРА | ОСНОВЫ ПРОГРАММИРОВАНИЯ
Как работает КЭШ?
Одна из важных частей всего компьютера, которая зачастую остается в тени, так как напрямую мы взаимодействовать с кэшем не можем.
Зато он весьма сильно влияет на скорость выполнения программ.
Как, что и почему - смотрим в видео.
ПЛЕЙЛИСТ…
Одна из важных частей всего компьютера, которая зачастую остается в тени, так как напрямую мы взаимодействовать с кэшем не можем.
Зато он весьма сильно влияет на скорость выполнения программ.
Как, что и почему - смотрим в видео.
ПЛЕЙЛИСТ…
== КАК РАБОТАЕТ ПРОЦЕССОР
https://youtu.be/k9wK2FThEsk
разрядность = размер машинного слова = количество памяти которым опирируется процессор за раз
регистры - маленькие быстрые ячейки памяти прямо в процессоре
максимальный размер регистра = разрядность
регистры
- специального назначение
- общего назначения (переменные, параметры, временное хранилище)
AH=8 AL=8
AX=16
EAX=32
RAX=64
сегментные регистры SS CS DS ...
регистры для работы со стеком BP, CP, ...
флаговые регистры FLAGS...
указатель команд (instruction pointer) IP
регистры могут ПЕРЕПОЛНЯТЬСЯ !!!
БИОС
- найти первое ПЗУ
- найти нулевой сектор
- загрузить команду в ЦПУ
- передать управление команде
работа с трансляцией адресов
1) режим реальных адресов = 16бит
2) защищенный = 32бит
3) 64 разрядный
ИЛИ
1) режим реальных адресов + защищенный = legacy mode = 32бит
2) 64 разрядный + режим совместимости = long mode = 64бит
уровни привелегий
0 - привелегированный - ОС
1
2
3 - юзерспейс - прикладные программы
вся ОЗУ поделена на сегменты!
логический адрес = адрес начала сегмента + смещение в сегменте
в режиме реальных адресов = 2^20 = 1мб
физический адрес = адрес начала << 4 + смещение
в защищенном режиме
происходит виртуализация адреса !
логический адрес = селектор дескриптора + смещение в сегменте
селектор дескриптора (16бит) = уровень привелегий + таблица + индекс строки в таблице
таблица это структура = индекс + начальний адрес сегмента + уровень привелегий + размер сегмента
виртуальная память = страничная организация памяти.
- Каталог таблиц страниц,
- таблица страниц
- страница
64ьитный режим
- ОТКЛЮЧЕНА СИГМЕНТАЦИЯ
- есть ограничение на адресацию физической 2^52 и виртуальной памяти 2^48. изза ограничений ОС и процессоров
программа получает логический адрес
и в зависимости от режима памяти транслируется сразу в физический адрес или в виртуальный а затем в физический
получив сигнал процессор генерирует прерывание и обрабатывается обработчиком прерывания
типы прерывания
- исключение
- программный
- аппаратный
не все ОС разрешают вызывать программам прерывания напрямую
https://youtu.be/k9wK2FThEsk
разрядность = размер машинного слова = количество памяти которым опирируется процессор за раз
регистры - маленькие быстрые ячейки памяти прямо в процессоре
максимальный размер регистра = разрядность
регистры
- специального назначение
- общего назначения (переменные, параметры, временное хранилище)
AH=8 AL=8
AX=16
EAX=32
RAX=64
сегментные регистры SS CS DS ...
регистры для работы со стеком BP, CP, ...
флаговые регистры FLAGS...
указатель команд (instruction pointer) IP
регистры могут ПЕРЕПОЛНЯТЬСЯ !!!
БИОС
- найти первое ПЗУ
- найти нулевой сектор
- загрузить команду в ЦПУ
- передать управление команде
работа с трансляцией адресов
1) режим реальных адресов = 16бит
2) защищенный = 32бит
3) 64 разрядный
ИЛИ
1) режим реальных адресов + защищенный = legacy mode = 32бит
2) 64 разрядный + режим совместимости = long mode = 64бит
уровни привелегий
0 - привелегированный - ОС
1
2
3 - юзерспейс - прикладные программы
вся ОЗУ поделена на сегменты!
логический адрес = адрес начала сегмента + смещение в сегменте
в режиме реальных адресов = 2^20 = 1мб
физический адрес = адрес начала << 4 + смещение
в защищенном режиме
происходит виртуализация адреса !
логический адрес = селектор дескриптора + смещение в сегменте
селектор дескриптора (16бит) = уровень привелегий + таблица + индекс строки в таблице
таблица это структура = индекс + начальний адрес сегмента + уровень привелегий + размер сегмента
виртуальная память = страничная организация памяти.
- Каталог таблиц страниц,
- таблица страниц
- страница
64ьитный режим
- ОТКЛЮЧЕНА СИГМЕНТАЦИЯ
- есть ограничение на адресацию физической 2^52 и виртуальной памяти 2^48. изза ограничений ОС и процессоров
программа получает логический адрес
и в зависимости от режима памяти транслируется сразу в физический адрес или в виртуальный а затем в физический
получив сигнал процессор генерирует прерывание и обрабатывается обработчиком прерывания
типы прерывания
- исключение
- программный
- аппаратный
не все ОС разрешают вызывать программам прерывания напрямую
YouTube
КАК РАБОТАЕТ ПРОЦЕССОР | ОСНОВЫ ПРОГРАММИРОВАНИЯ
Как работает процессор?
Чтобы понять что из себя представляют программы и как они выполняются, нужно иметь представление об организации работы компьютера, которая включает в себя работу процессора, памяти, операционных систем.
Это одно из самых важных видео…
Чтобы понять что из себя представляют программы и как они выполняются, нужно иметь представление об организации работы компьютера, которая включает в себя работу процессора, памяти, операционных систем.
Это одно из самых важных видео…
== КАК РАБОТАЕТ СТЕК
https://youtu.be/MXoMuymbfo8
SP (stack pointer) указатель вершины
BP (base pointer) адрес начала фрейма
push - поместить на вершину
pop - извлечь из вершины
call - перед прыжком заносит в регистр адресс возврата
ret - возвращается обратно по адресу который положил call
фрейм - место в стеке
вызов функции
- пролог (сохранение данных ДО старта функции, создание нового стэка)
-
-
-
- код
-
-
- ....
- эпилог (возврат обратно в родительский стэк)
-
-
-
Передача параметров функции (stdcall)
- передаются в стэк параметры в обратном порядке
-
-
-
-
-
-
-
-
-
- передать можно через
- стэк
- регистры
- глобальные переменные (нельзя вызывать себя рекурсивно)
область локальных переменных - стэковый кадр (фрейм)
https://youtu.be/MXoMuymbfo8
SP (stack pointer) указатель вершины
BP (base pointer) адрес начала фрейма
push - поместить на вершину
pop - извлечь из вершины
push 3jmp - просто прыгает внужную строку кода
pop AX - кладет на AX значение из вершины. смещает вершину ниже
call - перед прыжком заносит в регистр адресс возврата
ret - возвращается обратно по адресу который положил call
фрейм - место в стеке
вызов функции
- пролог (сохранение данных ДО старта функции, создание нового стэка)
-
call proc-
push bp-
mov bp, sp- код
-
push 4-
push 5.5- ....
- эпилог (возврат обратно в родительский стэк)
-
mov sp, bp-
pop bp-
retПередача параметров функции (stdcall)
- передаются в стэк параметры в обратном порядке
-
push 3 # arg[2]-
push 2 # arg[1]-
push 1 # arg[0]-
call fn-
push bp-
mov bp, sp-
mov ax, [bp + 4]-
mov bx, [bp + 6]-
mov cx, [bp + 8]- передать можно через
- стэк
- регистры
- глобальные переменные (нельзя вызывать себя рекурсивно)
область локальных переменных - стэковый кадр (фрейм)
YouTube
КАК РАБОТАЕТ СТЕК | ОСНОВЫ ПРОГРАММИРОВАНИЯ
Как работает стек, что это вообще такое и почему он напрямую связан с работой функций мы разберем в этом видео.
ССЫЛКИ ИЗ ВИДЕО:
1. Как работает память компьютера - https://www.youtube.com/watch?v=Wh22_O8jXVQ
2. Как работает процессор - https://www.you…
ССЫЛКИ ИЗ ВИДЕО:
1. Как работает память компьютера - https://www.youtube.com/watch?v=Wh22_O8jXVQ
2. Как работает процессор - https://www.you…
== КАК РАБОТАЮТ КОДИРОВКИ
https://youtu.be/4MFcmreAUhs
строки это основной вид информации
символ представляется в машине как код символа
ASCII = 7 бит
появились кодовые страницы
ANSI (American national standards institute)
- windows-125х (где х это код страны)
UNICODE
- каждый символ представляется МИНИМУМ 2 байта
- первые 128 символов полностью совпадает с ASCII
проблемы:
- расточительно по памяти т.к. минимум 2байта
- be/le - хз как расшифровывать
кодировки (правила хранения)
>> UCS-2
BOM-байты (byte order mark) - вначале каждой строки были символы указывающие как хранится BE или LE
СТРОКА = БОМ байты + символы по 2 байта
——> еще больше стало!
>> UTF-8
коды символов не фиксированные от 1 до 4х байт
- первые 128 символов = ASCII
- в начале символа стоит маска говорящая сколько байт надо прочитать
—> нефиксированное количество времени на обработку. медленней
== так как один из самых коротких - используется при передаче по сети
>> UTF-16
- вернули BOM
- сурогатная пара для обозначения 4байтных символов
+ быстрей работает
>> UTF-32
- каждый символ это 4 байта
- BOM
== еще быстрей
== еще понятней длина строки
СИ
конец строки = 00 (нуль терминатор)
в других языках используются Неизменяемые строки и при изменении используется COW
https://youtu.be/4MFcmreAUhs
строки это основной вид информации
символ представляется в машине как код символа
ASCII = 7 бит
появились кодовые страницы
ANSI (American national standards institute)
- windows-125х (где х это код страны)
UNICODE
- каждый символ представляется МИНИМУМ 2 байта
- первые 128 символов полностью совпадает с ASCII
проблемы:
- расточительно по памяти т.к. минимум 2байта
- be/le - хз как расшифровывать
кодировки (правила хранения)
>> UCS-2
BOM-байты (byte order mark) - вначале каждой строки были символы указывающие как хранится BE или LE
СТРОКА = БОМ байты + символы по 2 байта
——> еще больше стало!
>> UTF-8
коды символов не фиксированные от 1 до 4х байт
- первые 128 символов = ASCII
- в начале символа стоит маска говорящая сколько байт надо прочитать
—> нефиксированное количество времени на обработку. медленней
== так как один из самых коротких - используется при передаче по сети
>> UTF-16
- вернули BOM
- сурогатная пара для обозначения 4байтных символов
+ быстрей работает
>> UTF-32
- каждый символ это 4 байта
- BOM
== еще быстрей
== еще понятней длина строки
СИ
конец строки = 00 (нуль терминатор)
в других языках используются Неизменяемые строки и при изменении используется COW
== КАК РАБОТАЮТ ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ
https://youtu.be/U0U8Ddx4TgE
IEEE-754 описывает стандарт FP
FPU - floating point unit
7.25 = 111.01
(-1)^S * 1.M * 10 ^ E
s - знак числа
M - мантисса (дробная часть числа)
E - экспонента (степень основания, смещение)
7.25
0) целую часть представляем 2 системе
= 111
1) дробную часть умножаем на два пока не получим 0. полученное значение записываем как значение дробной в 2 системе
= 01
2) целую часть смещаем до тех пор пока не останется
смещается до того места пока не останется одна единица
= 111.01 -> 1.1101
3) количество смещений и есть экспонента
= 1.1101 * 10^10
4а) знак записывается первым битом 0 или 1 (отрицательное)
4б) дробное записывается в свой сегмент, заполняя нулями справа все что отсутсвует
4в) степень записывается в свой сегмент ХИТРО! добавляется 127 (максимальное число размерности минус 1 для степени)
== 0 10000001 11010000000000000000000
спец значения в степени
- +бесконечность = если знак 0 и степень все 1 а в дробной части 0
- -бесконечность = если знак 1 и степень все 1 а в дробной части 0
- NaN = знак не имеет значения. дробная часть не 0. степень все 1
стандарты
- одинарная точность (32бит)
- двойная точность (64бит)
- четырехкратной точности (128бит)
- расширенная двойная точность (80бит)
https://youtu.be/U0U8Ddx4TgE
IEEE-754 описывает стандарт FP
FPU - floating point unit
7.25 = 111.01
(-1)^S * 1.M * 10 ^ E
s - знак числа
M - мантисса (дробная часть числа)
E - экспонента (степень основания, смещение)
7.25
0) целую часть представляем 2 системе
= 111
1) дробную часть умножаем на два пока не получим 0. полученное значение записываем как значение дробной в 2 системе
= 01
2) целую часть смещаем до тех пор пока не останется
смещается до того места пока не останется одна единица
= 111.01 -> 1.1101
3) количество смещений и есть экспонента
= 1.1101 * 10^10
4а) знак записывается первым битом 0 или 1 (отрицательное)
4б) дробное записывается в свой сегмент, заполняя нулями справа все что отсутсвует
4в) степень записывается в свой сегмент ХИТРО! добавляется 127 (максимальное число размерности минус 1 для степени)
== 0 10000001 11010000000000000000000
спец значения в степени
- +бесконечность = если знак 0 и степень все 1 а в дробной части 0
- -бесконечность = если знак 1 и степень все 1 а в дробной части 0
- NaN = знак не имеет значения. дробная часть не 0. степень все 1
стандарты
- одинарная точность (32бит)
- двойная точность (64бит)
- четырехкратной точности (128бит)
- расширенная двойная точность (80бит)
YouTube
КАК РАБОТАЮТ ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ | ОСНОВЫ ПРОГРАММИРОВАНИЯ
КАК РАБОТАЮТ ЧИСЛА С ПЛАВАЮЩЕЙ ТОЧКОЙ
float, double и тд.
Типы данных, которые мы используем работают не совсем так, как мы этого ожидаем.
Некоторые дроби невозможно представить в двоичном виде.
Как компьютер хранит такие числа в памяти, что привнес стандарт…
float, double и тд.
Типы данных, которые мы используем работают не совсем так, как мы этого ожидаем.
Некоторые дроби невозможно представить в двоичном виде.
Как компьютер хранит такие числа в памяти, что привнес стандарт…
== ЯЗЫК АССЕМБЛЕРА С НУЛЯ
https://youtu.be/PHyIP9g9BQw
как установить MS-DOS на виртуалбокс
- intel syntax:
https://youtu.be/PHyIP9g9BQw
как установить MS-DOS на виртуалбокс
- intel syntax:
mov ax, bx
- at&t syntax: mov %bx, %ax
masm - компилятор ассемблераYouTube
ЯЗЫК АССЕМБЛЕРА С НУЛЯ | #1 НАЧАЛО
Ассемблер с нуля.
Язык, на котором давно никто не пишет обыденные программы, но язык, который делает обыденного программиста профессионалом.
Любая программа превращается в набор инструкций процессора.
Язык ассемблера - тот самый набор инструкций, только…
Язык, на котором давно никто не пишет обыденные программы, но язык, который делает обыденного программиста профессионалом.
Любая программа превращается в набор инструкций процессора.
Язык ассемблера - тот самый набор инструкций, только…
Forwarded from Defront — про фронтенд-разработку и не только (Alexander Myshov)
Ускорение установки HTTPS-соединений
Саймон Харн рассказал о том, как HTTPS-сертификаты влияют на производительность сайта — "The Performance Cost of EV Certificates".
Есть три основных типа HTPS-сертификатов: Domain Validation (DV), Organisation Validation (OV), Extended Validation (EV). DV-сертификаты выдаются на основе факта принадлежности домена, как в Let's Encrypt. OV- и EV-сертификаты выдаются организациям за оплату.
EV-сертификат предоставляет большее количество информации для пользователя, но по-большому счёту он не сильно отличается от OV. Вы могли видеть, что сайт использует EV-сертификат, когда в адресной строке рядом с иконкой замка зелёным текстом отображался владелец сертификата. С версии Chrome 77 такие сертификаты отображаются обычным значком замка без зелёного текста.
OV-сертификаты валидируются на стороне веб-сервера отправкой запроса на сервер организации, выдавшей сертификат. EV-сертификаты не могут валидироваться на стороне веб-сервера, поэтому их валидация происходит на клиенте, замедляя установку HTTPS-соединения. Задержка наиболее заметна в странах бывшего СССР, в Восточной Австралии, Канаде и большинстве стран Африки. Некоторые организации сталкивались с минутной задержкой для пользователей в Китае. Эта проблема решается переходом на OV-сертификат.
#http #performance #security
https://simonhearne.com/2020/drop-ev-certs/
Саймон Харн рассказал о том, как HTTPS-сертификаты влияют на производительность сайта — "The Performance Cost of EV Certificates".
Есть три основных типа HTPS-сертификатов: Domain Validation (DV), Organisation Validation (OV), Extended Validation (EV). DV-сертификаты выдаются на основе факта принадлежности домена, как в Let's Encrypt. OV- и EV-сертификаты выдаются организациям за оплату.
EV-сертификат предоставляет большее количество информации для пользователя, но по-большому счёту он не сильно отличается от OV. Вы могли видеть, что сайт использует EV-сертификат, когда в адресной строке рядом с иконкой замка зелёным текстом отображался владелец сертификата. С версии Chrome 77 такие сертификаты отображаются обычным значком замка без зелёного текста.
OV-сертификаты валидируются на стороне веб-сервера отправкой запроса на сервер организации, выдавшей сертификат. EV-сертификаты не могут валидироваться на стороне веб-сервера, поэтому их валидация происходит на клиенте, замедляя установку HTTPS-соединения. Задержка наиболее заметна в странах бывшего СССР, в Восточной Австралии, Канаде и большинстве стран Африки. Некоторые организации сталкивались с минутной задержкой для пользователей в Китае. Эта проблема решается переходом на OV-сертификат.
#http #performance #security
https://simonhearne.com/2020/drop-ev-certs/
Simon Hearne
The Performance Cost of EV Certificates
Extended Validation certificates are expensive and degrade performance. Move to an OV certificate if you can!
Forwarded from Библиотека питониста | Python, Django, Flask
Algorithmic Trading with Interactive Brokers (Python and C++) (2019)
Автор: Matthew Scarpino
Количество страниц: 418
В этой книге описывается процесс разработки приложений на основе API IB Trader Workstation (TWS). Начальные главы знакомят с фундаментальными классами и функциями, а последующие главы показывают, как их можно использовать для реализации полномасштабных торговых систем. При наличии алгоритмической системы трейдерам не нужно часами смотреть на графики; просто запустите торговое приложение и позвольте TWS API выполнять свою работу.
Скачать книгу
Автор: Matthew Scarpino
Количество страниц: 418
В этой книге описывается процесс разработки приложений на основе API IB Trader Workstation (TWS). Начальные главы знакомят с фундаментальными классами и функциями, а последующие главы показывают, как их можно использовать для реализации полномасштабных торговых систем. При наличии алгоритмической системы трейдерам не нужно часами смотреть на графики; просто запустите торговое приложение и позвольте TWS API выполнять свою работу.
Скачать книгу
Telegram
Книги для программистов (reserved)
Algorithmic Trading with Interactive Brokers (Python and C++) (2019)
Автор: Matthew Scarpino
Автор: Matthew Scarpino
== Why the "volatile" type class should not be used
https://www.kernel.org/doc/Documentation/process/volatile-considered-harmful.rst
короч не юзать там где стоит лок на данные. всегда ставить лок на данные
а volatile нужен суперредко. в memory mapped IO, потому что там состояние ножек может меняться непредсказуемым для компилятора образом.
плюс volatile это всегда data-race и UB
https://www.kernel.org/doc/Documentation/process/volatile-considered-harmful.rst
короч не юзать там где стоит лок на данные. всегда ставить лок на данные
а volatile нужен суперредко. в memory mapped IO, потому что там состояние ножек может меняться непредсказуемым для компилятора образом.
плюс volatile это всегда data-race и UB
== Pointers in C / C++ [Full Course]
https://youtu.be/zuegQmMdy8M
4 часа занятного забавного индусского говора про поинторы в Си. в 2х норм
Разжовывает до состояния питьегого пюре
- Introduction to pointers in C/C++
- Working with pointers
- Pointer types, pointer arithmetic, void pointers
- Pointers to Pointers in C/C++
- Pointers as function arguments - call by reference
- Pointers and arrays
- Arrays as function arguments
- Character arrays and pointers - part 1
- Character arrays and pointers - part 2
- Pointers and 2-D arrays
- Pointers and multidimensional arrays
- Pointers and dynamic memory - stack vs heap
- Dynamic memory allocation in C - malloc calloc realloc free
- Pointers as function returns in C/C++
- Function Pointers in C / C++
- Function pointers and callbacks
- Memory leak in C/C++
https://youtu.be/zuegQmMdy8M
4 часа занятного забавного индусского говора про поинторы в Си. в 2х норм
Разжовывает до состояния питьегого пюре
- Introduction to pointers in C/C++
- Working with pointers
- Pointer types, pointer arithmetic, void pointers
- Pointers to Pointers in C/C++
- Pointers as function arguments - call by reference
- Pointers and arrays
- Arrays as function arguments
- Character arrays and pointers - part 1
- Character arrays and pointers - part 2
- Pointers and 2-D arrays
- Pointers and multidimensional arrays
- Pointers and dynamic memory - stack vs heap
- Dynamic memory allocation in C - malloc calloc realloc free
- Pointers as function returns in C/C++
- Function Pointers in C / C++
- Function pointers and callbacks
- Memory leak in C/C++
YouTube
Pointers in C / C++ [Full Course]
Pointers in C and C++ are often challenging to understand. In this course, they will be demystified, allowing you to use pointers more effectively in your code. The concepts you learn in this course apply to both C and C++.
✏️ Course developed by Harsha…
✏️ Course developed by Harsha…
Forwarded from КиберОлег 🦄🤖🙌
This media is not supported in your browser
VIEW IN TELEGRAM
#программирование
Наткнулся на весьма интересный инструмент ускорения разработки. Это fig - autocomplete для терминала.
Можно ввести “docker r” и он продолжит “docker run”. Казалось бы всего две буквы, но если часто зависаете в терминале с докерами и файлами, то очень повышает эффективность.
Fig опенсорсный и поддерживает много инструментов разработки, а также работает с локальными папками и скриптами.
Короче говоря, советую установить. Вообще вся эта история с автодополнениями на ноутбуке крутая, хочу чтоб они были везде как в смартфоне и были точнее с нейронками, потому что я ленивый много печатать.
Наткнулся на весьма интересный инструмент ускорения разработки. Это fig - autocomplete для терминала.
Можно ввести “docker r” и он продолжит “docker run”. Казалось бы всего две буквы, но если часто зависаете в терминале с докерами и файлами, то очень повышает эффективность.
Fig опенсорсный и поддерживает много инструментов разработки, а также работает с локальными папками и скриптами.
Короче говоря, советую установить. Вообще вся эта история с автодополнениями на ноутбуке крутая, хочу чтоб они были везде как в смартфоне и были точнее с нейронками, потому что я ленивый много печатать.