Форум программистов, компьютерный форум, киберфорум
Наши страницы
Комментарии
Войти
Регистрация
Восстановить пароль
  1. Старый комментарий
    Шаблонизация в PHP. Продолжение записок свихнувшегося кодомана.
    Цитата:
    А каким это образом происходит вставка в шаблон? Не надо меня разводить, я в крсе как это происходит в реальности. И ладно бы ещё регулярками не пользорвались, а то ведь юзают..
    Какие регулярки? Хватит уже троллить, пхп изначально разрабатывался как шаблонизатор и имеет необходимые для этого инструменты, я уже показал выше как выполнить вставку в шаблон с помощью echo (или сокращенной формы <?= ?>)
    Запись от Jewbacabra размещена Вчера в 17:55 Jewbacabra вне форума
  2. Старый комментарий
    Просто ремонт оперативки с отгоревшими контактами.
    Цитата:
    Сообщение от Croessmah Просмотреть комментарий
    Сам не пробовал, но может быть вместо токопроводящего клея подошла бы паяльная паста?
    Намазюкал легонько и под фен. Хотя, наверное, нет, не подойдет.
    Думал об этом, тем более и паста есть, но клейкость ее к текстолиту, вызывает определенные сомнения. Собственно она не предназначена для этого. Если будет тема по этому поводу напишу.
    Запись от Ekzotik размещена Вчера в 16:32 Ekzotik вне форума
  3. Старый комментарий
    Аватар для Loafer
    Перехват сетевого трафика
    Хочу оставить здесь некоторые ссылки на будущее. Вот здесь (часть 1) и здесь (часть 2) представлен пример реализации супер простого анализатора трафика на сырых сокетах. В частности представлено использование socket(AF_INET , SOCK_RAW , IPPROTO_TCP) и socket(AF_PACKET , SOCK_RAW , htons(ETH_P_ALL)).

    Вот здесь представлено использование фильтрации пакетов с помощь BPF. Правда, я не увидел использование вызова bpf. В теории, хорошо бы разобраться, как работает фильтрация и когда нужен вызов bpf. Надеюсь, что мне удастся побороть свою лень ради этого.
    Запись от Loafer размещена Вчера в 14:09 Loafer вне форума
  4. Старый комментарий
    Аватар для CoderHuligan
    Шаблонизация в PHP. Продолжение записок свихнувшегося кодомана.
    Цитата:
    Вопрос: какой из этих двух вариантов более читаем и с каким будет приятно работать верстальщику?
    Вопрос правильный, и читаемость ЕСТЕСТВЕННО выше у вашего варианта. Я же понимаю всё.. Конечно я могу изменить завершения строк другим символом и сделать почти как у вас, читабельно, но всё равно не буду этого делать ибо это рабочий вариант без излишнего мусора, который нужен только верстальщику, и то практически один раз в жизни, а всё остальное время он будет летать по сети и неперегружать каналы..
    Цитата:
    А какие еще бывают правки в шаблонах, кроме изменения их структуры? Это 90% всех правок.
    Я говорил о структуре, которая не нарушает принцип вставки элементов. А всё остальное можно менять по своему усмотрению. Ссылка так и останется ссылкой, что там менять? Может когда-нибудь в будущем изменится тег <a>? В ближайшем будущем вряд ли..
    Цитата:
    Мне кажется что ты тролль. Предлагаю еще раз взглянуть на шаблоны в начале поста. И это я еще не привел вторую часть
    Мне кажется что мы не понимаем друг-друга. Это же не красивая девушка, чтобы нравится, - это рабочий код, ломовая лошадь, которая призвана пахать и пахать.. Главное ведь в тех возможностях, которые предоставляет тот или иной принцип.
    Цитата:
    Т.е. еще и строки не по порядку могут идти. Да здравствует спагетти.
    Почему не по порядку?
    Приведу реальный случай. Недавно понадобилось одному человеку, в одном файловом движке изменить темплейт.. Я призвался помочь человеку и в результате помог ему вставить блок, который призван отбражать фиксированую кнопку в файл темплейта. Для этого мне понадобилось расписать в инструкции такие вещи как: открыть такой-то файл темплейта, затем найти такую-то строчку, перед которой вставить блок <div> с нашей кнопкой, прописать пути и т.д. В итоге этому человеку пользователю пришлось лезть в сырой код и своими непрограммистскими ручками его править. Но разве таким образом должны решаться проблемы? По уму я должен был написать плагин и отправить его ему, а в этом плагие была бы функция, которая сама бы изменила файл шаблона вставив туда САМОСТОЯТЕЛЬНО блок <div>..
    Всё ведь приходит из жизни, и вот такие проблемы заставили меня изобрести данную вещь. Здесь я могу загрузить файл темплейта, должным образом изменить его, а потом сохранить его в уже изменённом виде.. И всё это делается не ручками, заметьте, а в коде. Зачем же тогда придумали компы? Они должны за на работать, а не мы на них.
    Цитата:
    А зачем эта фича нужна? Чтобы жизнь разработчика сладкой не казалась?
    Вот чтобы вася пупкин не лез ручками править свой код и нужна такая фича.
    Цитата:
    Я привел пример шаблона без какой-либо строковой функции, шаблонизаторы типа twig кешируются в аналогтчные php файлы.
    А каким это образом происходит вставка в шаблон? Не надо меня разводить, я в крсе как это происходит в реальности. И ладно бы ещё регулярками не пользорвались, а то ведь юзают..
    Запись от CoderHuligan размещена Вчера в 13:28 CoderHuligan вне форума
  5. Старый комментарий
    Шаблонизация в PHP. Продолжение записок свихнувшегося кодомана.
    Цитата:
    Смысл в том, что функция вывода какого либо блока может не быть такой простой, что я привёл. А обычно так и есть. Я просто выбрал наиболее простой вариант без циклов и пр. в том же духе. Ну и как прикажете всё это дело прописывать в шаблоне? Верстальщику будет загляденье, да..
    HTML5
    1
    2
    3
    4
    5
    
    <table width="100%" id="logostrip" cellspacing="0" cellpadding="0"><tr><td><a href="index.php" title="
    "><img src="./templates/
    /im/logo.gif" alt="
    " width="207" height="52" border="0" /></a></td><td valign="bottom" align="right"><a href="index.php" style="margin-right:20px;color:#ffffff">
    </a></td></tr></table>
    PHPHTML
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    <table width="100%" id="logostrip" cellspacing="0" cellpadding="0">
        <tr>
            <td>
                <a href="index.php" title="<?=$title?>">
                    <img src="./templates/<?=$path?>/im/logo.gif" alt="<?=$alt?>" width="207" height="52" border="0" />
                </a>
            </td>
            <td valign="bottom" align="right">
                <a href="index.php" style="margin-right:20px;color:#ffffff"></a>
            </td>
        </tr>
    </table>
    Вопрос: какой из этих двух вариантов более читаем и с каким будет приятно работать верстальщику?

    Цитата:
    И не любая, а только такая, которая касается структуры самого шаблона, и то не факт. Что куда вставлять прописано жёстко и верстальщик совершенно незачем нарушать эту структуру. его дело как это будет выглядеть и всё. Есть соглашение: не нарушай общую структуру, что где вставляется, и будет тебе счастье.
    А какие еще бывают правки в шаблонах, кроме изменения их структуры? Это 90% всех правок.

    Цитата:
    А что там вычитывать? Человек открывает практически одноимённый файл шаблона и в редакторе смотрит на номер строки вычитая в уме единицу, и всё. Всё сразу понятно где что.
    Мне кажется что ты тролль. Предлагаю еще раз взглянуть на шаблоны в начале поста. И это я еще не привел вторую часть $ContentBuf.=$tpl[0].$Config[1].$tpl[1].$Config[4].$tpl[2].$Config[1].$tpl[3].$Config[1].$tpl[4];
    В которой ты предлагаешь высчитывать номера строк и склеивать фрагменты. Нет уж, мне второй вариант нравится куда больше.

    Цитата:
    А вот этого не понял.. То, что ЛЮБАЯ функция может работать с этим файлом темплейта напрямую и изменять его внутри себя, является огромным преимуществом.
    Т.е. еще и строки не по порядку могут идти. Да здравствует спагетти.
    Цитата:
    Расскажите мне в каких шаблонизаторах предусмотрена такая фича
    А зачем эта фича нужна? Чтобы жизнь разработчика сладкой не казалась?

    Цитата:
    Я видел реализацию подобного. У меня отсутствую строковые функции смею заметить, а это сильно ускоряет код сам по себе
    Я привел пример шаблона без какой-либо строковой функции, шаблонизаторы типа twig кешируются в аналогтчные php файлы. А в твоем варианте нужно разобрать файл шаблона, а потом склеить его обратно, и якобы оно будет быстрее. Делая такие утверждения, их нужно подкреплять бенчмарками
    Запись от Jewbacabra размещена 24.09.2018 в 21:11 Jewbacabra вне форума
  6. Старый комментарий
    Аватар для CoderHuligan
    Шаблонизация в PHP. Продолжение записок свихнувшегося кодомана.
    Цитата:
    Ну и в чем смысл, если фактически то что раньше было в 1 файле теперь размазано по 2?
    Смысл в том, что функция вывода какого либо блока может не быть такой простой, что я привёл. А обычно так и есть. Я просто выбрал наиболее простой вариант без циклов и пр. в том же духе. Ну и как прикажете всё это дело прописывать в шаблоне? Верстальщику будет загляденье, да..
    И не размазано оно по двум файлам, ибо эти файлы ничего друг о друге не знают.. Они просто соблюдают некоторые общедоступные соглашения. В файле с шаблоном отсутствуют какие-либо переменные поэтому он не имеет никакого отношения к файлу с кодом, который занимается чистой механикой, то есть тем, чем и должен заниматься.. Ему этому файлу можно скормить совсем другой файл с похожей структурой и он его сьест и не подавится.
    Цитата:
    И любая правка шаблона потребует внесения изменений в двух местах, в том числе и php коде, что очень обрадует верстальщика.
    И не любая, а только такая, которая касается структуры самого шаблона, и то не факт. Что куда вставлять прописано жёстко и верстальщик совершенно незачем нарушать эту структуру. его дело как это будет выглядеть и всё. Есть соглашение: не нарушай общую структуру, что где вставляется, и будет тебе счастье.
    Наоборот: я могу изменить функцию и не менять файл темплейта и обратно, так как в темплейте отсутствуют даже намёки о каких-либо переменных и т.п.
    Цитата:
    А читаемость упала до нуля. Теперь в html файле вместо нормально форматирования какая-то мешанина, а в php склейка огромной строки с кучей magic numbers.
    А что там вычитывать? Человек открывает практически одноимённый файл шаблона и в редакторе смотрит на номер строки вычитая в уме единицу, и всё. Всё сразу понятно где что. Наоборот: это не магические числа сами по себе, а индексы массива, а в редакторе по индексу легко находится нужная часть, причём сразу. Тут всё прозрачно, а если что не ясно то существует документация, в которой прописано какой файл с каким работает.
    Цитата:
    И часы "веселой" отладки обеспечены.
    А вот этого не понял.. То, что ЛЮБАЯ функция может работать с этим файлом темплейта напрямую и изменять его внутри себя, является огромным преимуществом. Расскажите мне в каких шаблонизаторах предусмотрена такая фича. Там извращаются не по детцки обходными путями чтобы что-то там изменить в представлении. Вот эта возможность всё перекрывает, все возможные недостатки. А я лично таких особых проблем не вижу.
    Цитата:
    .Сильное заявление, а бенчмарков конечно никаких нет.
    К сожалению у меня нет вещей, в которых работал бы установленный шаблонизатор. Я видел реализацию подобного. У меня отсутствую строковые функции смею заметить, а это сильно ускоряет код сам по себе. По этому и сужу, что в разы. Если у кого есть подобные фреймворки, то пусть предложат простой тест и протестируют его у себя, а я протестирую свой у себя, а потом сравним.
    Запись от CoderHuligan размещена 24.09.2018 в 11:59 CoderHuligan вне форума
    Обновил(-а) CoderHuligan 24.09.2018 в 12:11
  7. Старый комментарий
    ProgressBar в стиле Metro
    А еще.Если не трудно подскажите где почитать более доступно для начинающих, о UserControl.
    Запись от serand размещена 24.09.2018 в 01:51 serand вне форума
  8. Старый комментарий
    Запись от serand размещена 24.09.2018 в 01:37 serand вне форума
  9. Старый комментарий
    Аватар для Croessmah
    Перехват сетевого трафика
    Цитата:
    реализована ли libpcap через сырые сокеты?
    Не знаю, нужно в исходниках смотреть: https://github.com/the-tcpdump-group/libpcap
    Запись от Croessmah размещена 24.09.2018 в 00:07 Croessmah вне форума
  10. Старый комментарий
    Аватар для Storm23
    ProgressBar в стиле Metro
    Цитата:
    Сообщение от serand Просмотреть комментарий
    Вот если бы пример применения класса.Было бы здорово.
    Как использовать кастомные контролы см здесь.
    Запись от Storm23 размещена 23.09.2018 в 23:55 Storm23 вне форума
  11. Старый комментарий
    Аватар для 8Observer8
    Unit test на Node js typescript
    Книга: Mastering TypeScript - 2nd Edition - Nathan Rozentals

    В этой книге есть большая глава посвящённая unit-тестированию ассинхронного кода: Chapter 8. Test-Driven Development

    Вопросы нужно задавать с специальном разделе посвящённому TypeScript: http://www.cyberforum.ru/typescript/
    Запись от 8Observer8 размещена 23.09.2018 в 19:20 8Observer8 вне форума
  12. Старый комментарий
    Аватар для Loafer
    Перехват сетевого трафика
    Цитата:
    Сообщение от Croessmah Просмотреть комментарий
    Сырые сокеты можно использовать.
    Спасибо за информацию. Я как раз не мог понять, для чего могут быть нужны сырые сокеты. На Stack Overflow нашел хорошее объяснение. Как пример:
    1. если пишем socket(AF_INET, RAW_SOCKET, ...), то нам самим нужно формировать заголовки транспортного (зависит от третьего аргумента функции socket) и сетевого уровней (в данном примере, заголовок IP);
    2. если пишем socket(AF_PACKET, RAW_SOCKET, ...), то вдобавок нам нужно формировать еще и заголовок канального уровня (в данном примере, заголовок Ethernet).

    P. S. Остается только вопрос: реализована ли libpcap через сырые сокеты?
    Запись от Loafer размещена 23.09.2018 в 19:11 Loafer вне форума
  13. Старый комментарий
    Аватар для Croessmah
    Перехват сетевого трафика
    Цитата:
    Сообщение от Loafer Просмотреть комментарий
    А libtins не является просто C++ оберткой над libpcap?
    Ей и является.
    Цитата:
    Сообщение от Loafer Просмотреть комментарий
    А как можно реализовать перехват пакета без использования готовой библиотеки?
    Сырые сокеты можно использовать.
    Запись от Croessmah размещена 23.09.2018 в 18:09 Croessmah вне форума
  14. Старый комментарий
    Аватар для Loafer
    Перехват сетевого трафика
    Цитата:
    Сообщение от Croessmah Просмотреть комментарий
    Раз берем готовую библиотеку, то можно взять libtins.
    А libtins не является просто C++ оберткой над libpcap? А как можно реализовать перехват пакета без использования готовой библиотеки?
    Запись от Loafer размещена 23.09.2018 в 15:51 Loafer вне форума
  15. Старый комментарий
    Шаблонизация в PHP. Продолжение записок свихнувшегося кодомана.
    Цитата:
    Как видим и здесь только PHP и никакого html. Итак код и данные полностью разделены! Свершилась мечта!
    Ну и в чем смысл, если фактически то что раньше было в 1 файле теперь размазано по 2? И любая правка шаблона потребует внесения изменений в двух местах, в том числе и php коде, что очень обрадует верстальщика.
    А читаемость упала до нуля. Теперь в html файле вместо нормально форматирования какая-то мешанина, а в php склейка огромной строки с кучей magic numbers.
    Цитата:
    А это даёт то, что теперь сторонний код может с лёгкостью ИЗМЕНЯТЬ шаблоны! Иногда прямо "на лету"
    И часы "веселой" отладки обеспечены.
    Цитата:
    Ещё этот способ в разы быстрее, чем в существующих шаблонизаторах..
    Сильное заявление, а бенчмарков конечно никаких нет.
    Запись от Jewbacabra размещена 23.09.2018 в 15:37 Jewbacabra вне форума
  16. Старый комментарий
    Аватар для Croessmah
    Перехват сетевого трафика
    Раз берем готовую библиотеку, то можно взять libtins.
    Запись от Croessmah размещена 23.09.2018 в 14:54 Croessmah вне форума
    Обновил(-а) Croessmah 23.09.2018 в 14:55
  17. Старый комментарий
    Аватар для vlisp
    Указатели Pascal
    Сегодня какой год? Зачем заниматься некрофилией? К тому же такие куцые примеры не обязывают понимать суть предмета.
    Это даже не запускается на современных ОС, а минимальные 8гб памяти позволяют решить большинство задач не используя кучу. Так сложно перейти на современный паскаль? создать программу и читать адекватный современным требованиям предмет. Это же явная демонстрация отсталости.
    Запись от vlisp размещена 23.09.2018 в 13:22 vlisp вне форума
  18. Старый комментарий
    График со скроллингом
    Спасибо.Забрал себе.
    Запись от serand размещена 22.09.2018 в 20:59 serand вне форума
  19. Старый комментарий
    ProgressBar в стиле Metro
    Снимаю шляпу.Совсем только начинаю что то изучать.Вот если бы пример применения класса.Было бы здорово.
    Запись от serand размещена 22.09.2018 в 20:46 serand вне форума
  20. Старый комментарий
    Аватар для liv
    Оптимизация кода: обходимся без ветвлений
    Вот тут неправильный комментарий:
    ; Установить бит номер CL в регистре EAX при условии CF==1
    setc dl
    movzx edx,dl ; = cf ? 1 : 0
    shl edx,cl ; = single bit if cf
    or eax,edx ; set bit if cf
    Запись от liv размещена 21.09.2018 в 19:19 liv вне форума
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru