%cryptofun%, а у вас нет роликов по проектированию крупной софтинки в соотв. с какой-либо парадигмой? Пример - проектирование анализаторов сетевых пакетов\памяти(тип ваиршарка/аутопсай) в ооп или в мультипарадигме. Я б глянул. Спасибо
Видео по проектированию нет, по разработке пока что тоже. Если исходить из крупных софтин, то можно представить HiddenLake ( github.com/Number571/HiddenLake ), но там я не придерживался конкретно одной парадигмы, а совмещал ПП и ООП (HL представляю, чаще всего, в симбиозе с gopeer), что впринципе чаще всего и происходит при написании программ на языке Go.
Сначала необходимо скомпилировать библиотеку, перейдя в директорию extclib/ и прописав make. Только после этого, нужно скомпилировать main.c с объектным файлом extclib/extclib.o прописав make в корневой директории httpServer/.
Возможно. Было видео по блокчейну на языке программирования Go, но видео я скрыл, так как посчитал его достаточно поверхностным. Там лишь говорилось о связи блоков, без всякой работы с сетью. Тем не менее, хоть видео и скрыты от широкой публики, они доступны по ссылкам. В описании указанного видео ( ruclips.net/video/YCVfxZM-A90/видео.html ) находятся ссылки на скрытые плейлисты и видео.
@@CryptoFunIT Я сам хотел бы использовать блокчейн. Объясните, будет ли достаточно просто хешировать предыдущий блок и хеш-сумму приписывать к текущему? Есть ли блокчейн библиотеки для Common Lisp, может, вы слышали о них?
@@ФилиппДруан Хешировать предыдущий блок и приписать результат к новому достаточно легко. По-идее это можно охарактеризовать следующим псевдокодом: prevHash = Hash(Concat(Data(prevBlock))); // где // функция Data - берёт все поля объекта prevBlock; // функция Concat - конкатенирует данные в одну строку; // функция Hash - вычисляет хеш-сумму; newBlock = NewBlock(newData, prevHash); // где // функция NewBlock - создаёт объект (подобный prevBlock) исходя из его данных (подобия транкзации, отправителя, получателя) и хеш-суммы предыдущего блока. Если углубляться в теорию того, какая должна быть выбрана Hash функция, то лучше использовать выбранную функцию из семейства SHA-2, SHA-3 с алгоритмом HMAC, для повышения безопасности (подробнее об этом можете почитать в книге Практическая криптография от авторов Фергюсона и Шнайера, Часть I, Глава 6. Функции хэширования). На счёт библиотек связанных с блокчейном в языке Common Lisp ничего не знаю.
@@CryptoFunIT Спасибо! Попытаюсь в качестве упражнения сделать блокчейн по схеме "хешируем предыдущий, прибавляем к текущему". А будут видео по Lisp? На мой взгляд, чрезвычайно изящная концепция.
@@ФилиппДруан в ближайшем будущем видео по LISP не планируются. Всё из-за того, что сложно подобрать хорошие темы с данным языком. Я давно ушёл от видео связанных с обучением конкретному языку, так как для меня это оказалось скучно, да и получалось на выходе также плохо. А делать видео более сложного характера с этим языком, будет мало кому интересно, потому что в отличие от императивных языков, языки функциональные не каждый человек знает и понимает. А сама концепция таких языков действительно интересна, когда парадигма даёт ещё бОльший уровень абстракций, нежели имеющийся сегодня, и заместо терминов, связанных с памятью и переменными, даёт свойства чистых функций и вычислений без состояний (по крайней мере пытается).
Я не пишу на плюсах, их могу знать только на уровне классического Си и не более. Видео связанные с обучением языков я давно перестал делать. Мне это было скучно, да и получалось на выходе также плохо (исключение лишь язык ассемблера, но и там я целью ставил создание библиотеки с переносом концепций и принципов высокоуровневых языков в низкоуровневый, а обучением можно было лишь считать эту связь, благодаря которой можно создать некоторые ассоциации с высокоуровневыми языками). Соответственно, задачу обучения языкам я возлагаю на сторонние видео, сайты, книги и прочие ресурсы. На этом же канале предпочитаю выпускать уже готовые (или дающие о чём-то представление) программы на выбранном мною языке программирования (Go, Си, ASM).
В стандартах C89, C99, C11 языка Си нет никаких библиотек работающих с сетью. Данные библиотеки представлены операционными системами и уже их стандартами соответственно, подобия POSIX. В python модуль socket представлен самим языком и абстрагирован от зависимостей и особенностей интерфейсов ОС.
невозможно смотреть, автор мычит, заикается, каждую секунду что-то переключает, ничего не объясняет как это работает, приходится ловить момент на паузе чтобы он показал какой-то кусок кода, потому что его не видно.
при компиляции этой программы на виндовс 10 вылетела ошибка gcc -Wall -std=c99 -c http.c net.c hashtab.c tree.c type.c http.c:21: error: redefinition of typedef 'HTTP' http.h:14: error: previous declaration of 'HTTP' was here hashtab.c:16: error: redefinition of typedef 'HashTab' hashtab.h:9: error: previous declaration of 'HashTab' was here tree.c:26: error: redefinition of typedef 'Tree' tree.h:9: error: previous declaration of 'Tree' was here make: * [Makefile:17: build] Error 1
не понимаю почему так мало лайков, целый день искал подобное видео. Хотел было уже у индусов начать смотреть, а тут вдруг это золото
Однозначно лайк и звезду на Гите , сразу видно что Профи, за Мэйк файлы отдельное спасибо
Наконец-то возвратился спустя месяц, продолжай делать контент!
Спасибо за видос!
Чистый си... так и до unix way не далеко )
Очень круто!
Вы большой молодец.
сервер работает только с одним клиентом... хотелось бы больше увидеть про работу с множеством пользователей)
Отличный сервер!
Спасибо!
Сделай пожалуйста ролик теперь о клиенте на чистом си ;)
скачал с гита, пробуй запустить, все вроде работает, но почему-то нет информации в консоле о запросе. Может подскажет кто... Использую Linux Fedora
а почему бы не использовать какой нибудь редактор с авто комплитом?
%cryptofun%, а у вас нет роликов по проектированию крупной софтинки в соотв. с какой-либо парадигмой?
Пример - проектирование анализаторов сетевых пакетов\памяти(тип ваиршарка/аутопсай) в ооп или в мультипарадигме.
Я б глянул. Спасибо
Видео по проектированию нет, по разработке пока что тоже. Если исходить из крупных софтин, то можно представить HiddenLake ( github.com/Number571/HiddenLake ), но там я не придерживался конкретно одной парадигмы, а совмещал ПП и ООП (HL представляю, чаще всего, в симбиозе с gopeer), что впринципе чаще всего и происходит при написании программ на языке Go.
Почему при открытии терминала и компилировании make выдает ошибку?
Сначала необходимо скомпилировать библиотеку, перейдя в директорию extclib/ и прописав make. Только после этого, нужно скомпилировать main.c с объектным файлом extclib/extclib.o прописав make в корневой директории httpServer/.
на каком стандарте Си писали?
😅
Скажите, не у вас ли я находил видео с реализацией блокчейна?
Возможно. Было видео по блокчейну на языке программирования Go, но видео я скрыл, так как посчитал его достаточно поверхностным. Там лишь говорилось о связи блоков, без всякой работы с сетью. Тем не менее, хоть видео и скрыты от широкой публики, они доступны по ссылкам. В описании указанного видео ( ruclips.net/video/YCVfxZM-A90/видео.html ) находятся ссылки на скрытые плейлисты и видео.
@@CryptoFunIT
Я сам хотел бы использовать блокчейн. Объясните, будет ли достаточно просто хешировать предыдущий блок и хеш-сумму приписывать к текущему?
Есть ли блокчейн библиотеки для Common Lisp, может, вы слышали о них?
@@ФилиппДруан Хешировать предыдущий блок и приписать результат к новому достаточно легко. По-идее это можно охарактеризовать следующим псевдокодом:
prevHash = Hash(Concat(Data(prevBlock)));
// где
// функция Data - берёт все поля объекта prevBlock;
// функция Concat - конкатенирует данные в одну строку;
// функция Hash - вычисляет хеш-сумму;
newBlock = NewBlock(newData, prevHash);
// где
// функция NewBlock - создаёт объект (подобный prevBlock) исходя из его данных (подобия транкзации, отправителя, получателя) и хеш-суммы предыдущего блока.
Если углубляться в теорию того, какая должна быть выбрана Hash функция, то лучше использовать выбранную функцию из семейства SHA-2, SHA-3 с алгоритмом HMAC, для повышения безопасности (подробнее об этом можете почитать в книге Практическая криптография от авторов Фергюсона и Шнайера, Часть I, Глава 6. Функции хэширования).
На счёт библиотек связанных с блокчейном в языке Common Lisp ничего не знаю.
@@CryptoFunIT
Спасибо! Попытаюсь в качестве упражнения сделать блокчейн по схеме "хешируем предыдущий, прибавляем к текущему".
А будут видео по Lisp? На мой взгляд, чрезвычайно изящная концепция.
@@ФилиппДруан в ближайшем будущем видео по LISP не планируются. Всё из-за того, что сложно подобрать хорошие темы с данным языком. Я давно ушёл от видео связанных с обучением конкретному языку, так как для меня это оказалось скучно, да и получалось на выходе также плохо. А делать видео более сложного характера с этим языком, будет мало кому интересно, потому что в отличие от императивных языков, языки функциональные не каждый человек знает и понимает. А сама концепция таких языков действительно интересна, когда парадигма даёт ещё бОльший уровень абстракций, нежели имеющийся сегодня, и заместо терминов, связанных с памятью и переменными, даёт свойства чистых функций и вычислений без состояний (по крайней мере пытается).
Ты серьёзно используешь strcmp ? А как же buffer overflow? Как раз считай от пользователя идёт ввод путя
Путь ограничен в 2048 байт (прописано в структуре HTTPreq) и строка гарантированно имеет нуль-терминатор (прописано в функции _parse_request ).
Не думал записывать уроки по си или плюсам, пишешь вроде на плюсах часто, по крайней мере крипту, а я думаю ,что многие не знают плюсы?
Я не пишу на плюсах, их могу знать только на уровне классического Си и не более. Видео связанные с обучением языков я давно перестал делать. Мне это было скучно, да и получалось на выходе также плохо (исключение лишь язык ассемблера, но и там я целью ставил создание библиотеки с переносом концепций и принципов высокоуровневых языков в низкоуровневый, а обучением можно было лишь считать эту связь, благодаря которой можно создать некоторые ассоциации с высокоуровневыми языками). Соответственно, задачу обучения языкам я возлагаю на сторонние видео, сайты, книги и прочие ресурсы. На этом же канале предпочитаю выпускать уже готовые (или дающие о чём-то представление) программы на выбранном мною языке программирования (Go, Си, ASM).
Https и websocket будут?
привет, подскажите нашли ли вы что-то полезное по https, я не могу найти ничего полезного...
У тебя манджара ?
Ха-ха net/http из Go переписал
написано безобразно, ты сам понимаешь что делаешь ?
а что тут собственно безобразного?
socket(), setsockopt(). Это же всë функции из стандартной (мультиплатформенной) библиотеки socket в python. Зачем такая боль?
В стандартах C89, C99, C11 языка Си нет никаких библиотек работающих с сетью. Данные библиотеки представлены операционными системами и уже их стандартами соответственно, подобия POSIX. В python модуль socket представлен самим языком и абстрагирован от зависимостей и особенностей интерфейсов ОС.
невозможно смотреть, автор мычит, заикается, каждую секунду что-то переключает, ничего не объясняет как это работает, приходится ловить момент на паузе чтобы он показал какой-то кусок кода, потому что его не видно.
Откуда такое самомнение. Вы сын Трампа?
@@natuscoding8143 Да.
при компиляции этой программы на виндовс 10 вылетела ошибка gcc -Wall -std=c99 -c http.c net.c hashtab.c tree.c type.c
http.c:21: error: redefinition of typedef 'HTTP'
http.h:14: error: previous declaration of 'HTTP' was here
hashtab.c:16: error: redefinition of typedef 'HashTab'
hashtab.h:9: error: previous declaration of 'HashTab' was here
tree.c:26: error: redefinition of typedef 'Tree'
tree.h:9: error: previous declaration of 'Tree' was here
make: * [Makefile:17: build] Error 1