- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
https://habr.com/ru/post/472970/
Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля
в Full самая наркомания, с точки зрения сетевика: длина,
sequence number, причем НЕ ТОТ, что в основном MTProto,
тело, CRC32. Да, всё это поверх TCP. Который предоставляет
нам надежный транспорт в виде последовательного потока байт,
никакие последовательности не нужны, тем более контрольные
суммы. Окей, мне сейчас возразят, что в TCP 16-битная
контрольная сумма, так что искажение данных случается.
Отлично, только у нас вообще-то криптографический протокол
с хэшами длиннее 16 байт, все эти ошибки — и даже
более — будут отловлены на несовпадении SHA уровнем выше.
Никакого смысла в CRC32 поверх этого — НЕТ.
> Больше всего жопа раскаляется от того, что они навертели кучу абстракций, а потом забили на них болт, и обложили кодогегератор костылями
> В результате, сначала от доки лётчик.jpg
> Потом от кода джекичан.webp
Вообще, охуительная статья! Отлично видно к чему приводит оверинжениринг и задействование всяких говноолимпиадников
мокака любит такой код
Тут же четыре сравнения вместо одного!
Смотрите, как надо:
https://ideone.com/UzyM7j
«ARM» позволяет переключать байтордер, но в «Андроиде» выбрали little endian.
«Windows NT» тоже на всех платформах использовала little endian, даже на «MIPS», «PPC», «Alpha», «Itanium», «ARM», где можно было выбирать порядок байтов.
Сходу гуглится big endian в «Линуксе» и в «Солярисе» на «PPC». Где ещё? «Линукс», «Солярис», «AIX» на «SPARC», «IBM z», «Power ISA», «AVR32»?
У немцев little endian для двухзначных чисел: двадцать пять они произносят как fünf und zwanzig (пять и двадцать). Для более длинных чисел у них PDP-endian middle endian: две тысячи сто двадцать пять будет звучать примерно как две тысячи сто пять и двадцать.
Кстати, представь себе, какой багор на «Эльбрусах»: на том, что на архитектуре «SPARC», порядок big endian, а на том, что VLIW, порядок little endian.
Круто! Уже на ARMv6 можно говнокодить (на нём собирали смартфоны ещё со вторым «Андроидом»). А вот на ARMv5 (который до сих пор используется в простых звонилках) говнокодить нельзя. Какой багор )))
> Николай Дуров - дважды доктор математических наук, а так же дважды олимпиадник мира. И у него много друзей олимпиадников, работающих в Телеграмме. Так что это не код убогий, а просто ТЫ СЛИШКОМ ТУПОЙ, чтобы понять гениев программирования
> Ты завидуешь Николаю и его команде. Николай дважды ДОКТОР математических наук и в его команде тоже много крутых олимпиадников. Сделай свою бинарную схему и я посмотрю на неё, представь свой криптографический протокол. Ты сможешь написать С НУЛЯ систему баз данных. которые будут держать один из самых высоконагруженых сайтов в Рунете? У тебя могут быть аргументы: 1) Зачем делать бинарную схему. если есть Google Protobuf или Apache Thrift? 2) Зачем делать протокол если есть Signal? 3)Зачем делать транслятор из PHP в С++. если есть HHVM? 4) Зачем писать движки баз данных если есть много разных NoSQL - решений? А я тебе отвечу так: ты знаешь Игоря Сысоева? Он создал лучший веб сервер NGINX, хотя в его время уже был Apache Web Server, но он сделал велосипед и смог его улучшить и теперь самые крупные международные IT компании используют его решение. Недавно он продал свою компанию и заработал кучу долларов. А если тебе не хватает математических знаний, то это ещё один плюс признания таланта Брата Павла Дурова - Николая Дурова и его команды: Лопатина, Смирнова, Левина, Вальтмана.
Бгггг XDDD
промис-хуемис блядь
То есть они два раза из одного треда вызывают std::mutex::lock()? Охуенные там ДОКТОРА НАУК код пишут.
(§ 33.4.3.2/6,7)
(§ 33.4.3.2.1/4)
Но, очевидно, дуровским олимпиадникам на такие мелочи поебать, они же ДОКТОРА НАУК.
Зато может сплотиться вокруг нацианального пидера, затянуть пояса и экономить на чексуммах.
--А кто ты такой? А что ты понимаешь? Это делали Гениальные Олимпиадники, Доктора Наук. Ты завидуешь Николаю и его команде. Николай дважды ДОКТОР математических наук и в его команде тоже много крутых олимпиадников. Николай Дуров - дважды доктор математических наук, а так же дважды олимпиадник мира. И у него много друзей олимпиадников, работающих в Телеграмме. Так что это не код убогий, а просто ТЫ СЛИШКОМ ТУПОЙ, чтобы понять гениев программирования
Зато энтропия повышена
А по теме - ну да, поверх TCP. То есть сейчас все это избыточно, а завтра? Может, там UDP добавят или вообще упакованы в HTTP-запросы, запрещенные протоколы обходить это вам не порты на роутере пробрасывать.
Ладно если б они туда вхуярили какого-нибудь Рида-Соломона, чтобы ошибки транспорта исправлять…
Кстати, проект, на котором всё это происходило, намедни окончательно накрылся, так что не чокаясь.
Как говорится, лишь бы не из-за меняне только из-за меня.
- What babe?
- Babe with power!
- What power?
- Power of voodoo!
- Who do?
- You do!
- Do what?
https://www.youtube.com/watch?v=dDkp7GysvbY
>> 25 y.o.
Сашка, ты что ли?
Единственное - глобальная область видимости засирается этими константами, но, возможно, просто язык по-другому не умеет.
Хотя, конечно, не зная, сказать сложно: вот там k от g зависит и все такое. Так что, наверное, действительно не зря.
И вообще, тут говно в том что в функции считается говно с дабл числами, а сама функция принимает и возвращает float. На всяких контроллерах бывает так, что аппаратно реализованы операции с плавучкой для float но не для double так что надо это говно еще пофиксить
ибо нехуй
https://godbolt.org/z/wZHufW
А как тебе такой вариант?
По поводу "(16 * FLOAT_PI)" - FLOAT_PI умножать на 16 норм т.к. 16 это степень двойки, и умножение на степень двойки для флоатов означает лишь изменение экспоненты, но вообще для более общего случая лучше умножать double константу на некоторую хрень, а уже потом кастовать в float, чтоб точность не проебывалась из-за этой хуйни
https://twitter.com/Roniakia/status/1199014164229971970
Даже скриншотят:
https://pbs.twimg.com/media/EKPBw6wWwAAPwh8.jpg
Я сначала подумал, что «t-girl» — это что-то связанное с «Телеграмом». А потом погуглил. Какой багор )))
А всё потому, что начинать обучение крестовиков в «Visual Studio» — маразм чистой воды. «VS» — это крайне мощный и сложный инструмент, использовать который правильно и эффективно тоже нужно учиться, причём долго. Учить студентов/школьников крестам в «Visual Studio» — это всё равно, что выдавать только что поступившим в автошколу башенный кран.
А хуй знает. Наверное, в методичках такого нет.
> Кстати, кроме шуток, на чём нужно учить программировать детей? Обычных? А будущих программистов?
Сложный вопрос, конечно. В принципе, для детей есть туева хуча систем, ориентированных на наглядную демонстрацию базовых концепций программирования: всякие там «черепашки LOGO», «Scratch» и прочие подобные штуковины. При помощи такого ПО школьникам младшего возраста популярно объясняют понятия потока управления, ветвления, циклов, переменных — в общем, всего того, о чём операторы шаблонизаторов имеют крайне смутное представление.
Для обучения более старших школьников же нужен язык с сильной и, в идеале, явной типизацией. Как ни странно, лучше всего под такие критерии подходит незабвенный «Pascal». Почему я так настаиваю на сильной типизации? Потому что если первым «настоящим» языком, с которым познакомится ребёнок, будет какой-нибудь «PHP» или «JavaScript» со слабой типизацией — на выходе мы получим классического оператора шаблонизатора с необратимым повреждением мозга. Об этом, кстати, ещё дедушка Джоэль писал, если мне память не изменяет. Такие убогие операторы, в силу детской травмы, просто неспособны будут воспринимать понятие типа — потому что в основе их представлений о языках программирования будет лежать слабая хуета.
Ну а когда этап «учебных» языков будет пройден, а уже совсем взрослые детишки определятся с направлением своей профессиональной деятельности (профильные 10-е, 11-е классы, 1 курс института) — то тут только «C». Обучить хорошего, годного профессионального программиста можно исключительно на «C» — см. «Joel on Software».
Дык в России с учителями полнейший пиздец. Средний возраст там уже за пятьдесят (https://vogazeta.ru/articles/2019/4/11/teacher/7071-sredniy_vozrast_pedagogov_v_rossiyskih_s hkolah_prevyshaet_50_let) — много такие дамы преклонного возраста, чуть ли не при Сталине жившие, понимают в «Visual Studio»? Вот и приходится им работать по методичкам, которые пишут маразматики (недавно слышал историю про методичку, в которой 12.45 предлагали округлять до 13 — мол, сначала округляем до 12.5, а потом уже до 13 — и всем было похуй).
С Питоном хз, кстати. Не уверен, что дети 7-8 лет (1-3 классы) знают хотя бы английский алфавит.
Да, функциональщину с асмом тоже надо. У нас, кстати, был курс, на котором вкратце поясняли за несколько характерных представителей своих ниш: «Haskell», «Prolog», «Ruby» и ещё парочка. Весьма полезно, как по мне.
Какого-нибудь учёного со степенью и кучей изобретений и патентов не возьмут работать в школу, если у него нет корочки по педагогической специальности. А какого-нибудь дебила, который в педулище учился на тройки или вообще купил диплом, возьмут.
Вообще, я считаю, что у человека могут быть сильно разные предпочтения в аудитории. Одним интересно написать в бложик для всех или курсы для профессионалов, которые сами пришли, сами заплатили, и готовы слушать, другим - объяснять коллегам, третьим интересны уже взрослые магистранты, кому-то по душе читать только ставшим на взрослые рельсы младшекурсникам, кому-то - с азартом вливать новые знания самым умным на свете и всё отрицающим старшеклассникам, кому-то - вести от начала до конца младших школьников и быть тем, благодаря кому человек потом выберет его предмет как занятие всей жизни.
Ну дык я про то и говорю. Вместо изучения языка происходит параша в стиле «откройте меню свойств проекта, во вкладке "Компоновщик" выберите раздел "Система" и установите значениеблаблабла», а потом появляется куча дебилов, для которых «компиляция» — это нажатие кнопки F5. Обучать языку надо в простом, лёгком текстовом редакторе с элементарной подсветкой синтаксиса: «Notepad++», «Sublime», «Atom», «Vim», тысячи их.
Ну и разумеется, когда студент освоил язык хотя бы на базовом уровне, можно и нужно переходить в мощные IDE — потому что, как ни крути, но сейчас это главный инструмент программиста. И умению правильно их использовать тоже необходимо учить.
А вот для студентов они рекомендуют «Visual Studio Code»: https://visualstudio.microsoft.com/ru/students/. Я, кстати, в нём иногда пишу хелловорлды, но как-то он мне не заходит — видимо, слишком хипстерный.
А «Eclipse» — тот самый монстр, который на i7 с кучей в 16 гигов работает вполне сносно?
Немного погуглил, нашёл сайт какого-то крутого университета: http://www.cs.columbia.edu/education/undergraduate/. Там куча каких-то программ, я самую первую выбрал, https://mice.cs.columbia.edu/c/d.php?d=237:
Как Спольски и жаловался — учат жабе.
Ну и я вижу, как математике учат только в рашке™. Какой багор )))
http://govnokod.ru/25353#comment457685
https://govnokod.xyz/_25353/#comment-435025
Это, правда, было про «сисярпскрипт».
А ещё сборка jar-файла увлекательна... Манифесты, прочая фигня.
Программиста нужно погрузить в английский и его пользу как можно раньше. Иначе какой толк учить это говно, когда ридна мова из самой души прёт, а для буржуйской питушни нужно делать ментальные усилия, смысла в которых не видишь?
Без пересмотра программы будет только хуже: программист возненавидит чужой язык раньше, чем начинает ненавидеть сейчас.
Неправда, мозг мне повредили еще до того как я выучил js
Именно поэтому я против «Гугл».
Меня ещё знающие люди предупредили, чтобы я не гуглил «2girls1cup», «lemonparty», «meatspin», «bluewaffle».
Ещё это... «typicalmacuser» тоже лучше не гуглить.
Как ни прочитаю, все время в голове играет "You spin me right 'round, baby, right 'round like a record, baby..."
«bizalta»:
https://youtu.be/qlF4XsXfGrc
https://youtu.be/lY9A816bPCI
«E777»:
https://youtu.be/n3sfoRy_UbI
https://youtu.be/vRzFV3gvHIk
«ThejohnramborockyIP»:
https://youtu.be/CXB13vxXSMg
https://youtu.be/xkkyR-LJJaw
«Enjoykin»:
https://youtu.be/Bb_CP7SMwFM
https://youtu.be/diLV_LkZK8w
https://www.youtube.com/channel/UCzV1cH-6uX6F_9cUz_6fuxw
https://youtu.be/gPZ48iiQSdY
https://youtu.be/odArfKsuaAw
Почему вернулся - взял грех на душу?
Он у меня давно в игноре.
Если у Вас бесплатный интернет...
...то помимо использывания T-Mail IP Вы можете заработать реальных денег от спонсора SPEDIA
>>>
интеоресно
ĕсли вдрўг нĕ отвĕчäю, мĕня можно ўвидĕть ввĕдя в гẏглĕ VaPamiza тåм мы смŏжем пőŏбщäться»
P.S. А, понял, почему меня вдруг называют Елизаром. Я же про Елизавету написал (специально взял рандомное имя), а её "реверс-инженирнули".
Вот к чему это ваше прахрамиравание приводит
https://i.kym-cdn.com/photos/images/original/001/585/019/f04.jpg
фу нахуй
Откуда вы всё это говно знаете?
Почему я живу живу на свете и не вижу никогда всех этих переодетых трансгендерных шимейлов и девочек с яйцами, кадыками и усами, а вы все откуда-то про это знаете?
Теперь видел!
З.Ы. Увидел сам - поделись с друзьями.
А есть полная версия? Или это просто рисунок для мема?
Какой код сигнала )))
1, 0, weak 1, weak 0, high impedance, unknown, weak unknown, uninitialized, don't care
почисть свой гугол от пыли
https://duckduckgo.com/?q=Programming+Socks&t=ffcm&iax=images&i a=images
там всё достаточно цивильно
для нас это просто цветные носки с вышитым кодом
а у вас маршируют шимейлы в чулках и галифе
неспроста, непроста
а теперь танцуем
А в нашей школе в 1997-м году никакой локальной сети не было, а модем был только в кабинете директора (и то, когда речь заходила о модеме, о нём говорили с таким пафосом, как будто о самолёте).
В восьмом классе у нас были «Агаты» без жёсткого диска. 5-дюймовых дискет, да ещё и отформатированных под «Агат» (у него физический формат заголовка сектора не совпадал с «IBM PC»), почти ни у кого не было. Нужно было за урок успеть набрать с тетрадки программу и показать преподавателю, пока компьютер не завис (судя по всему, у этих «Агатов» были дохлые конденсаторы, поэтому работали они нестабильно).
два учебника по математике (оба, к сожалению, проебались)
ещё был Остров Эскадо
больше не помню