bryknyk
User-
Posts
90 -
Joined
-
Last visited
-
Days Won
2
Content Type
Profiles
Forums
Calendar
Store
Everything posted by bryknyk
-
более того int array_push ( array &$array , mixed $value1 [, mixed $... ] )это должно было насторожить)
-
Настроил файл .htaccess теперь не грузятся CSS javascript картинки
bryknyk replied to koly32's question in HTML Coding
присоединюсь к обсуждению. =============================================================ZEND #The following rule tells Apache that if the requested filename # exists, simply serve it. RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^.*$ - [NC,L] (далее редиректы) =============================================================== хм.. вот этот вариант RewriteRule \.(php|htm|swf|fla|xml|ico|jpg|gif|png|js|css)$ выглядит как-то безопаснее, что ли. позволяет точно настроить отдаваемые файлы и если вкрадется какой-то .inc выдаст правильный отлуп. А что насчет производительности или подводных камней? кроме... php позволяет как понимаю, выдать файл тем самым минуя фронт контроллер и фаервол который на нем пасется? если такова архитектура, хм. -
а почему вы думаете, что я писал вам?) я не цитировал, стилистика пространственна... Я писал тем, кто наткнется на эту ветку и в будущем столкнется в подводными камнями, а они в этом есть. что там у вас мне не особо интересно. Эмм, ну судя по вашей реакции, с учетом того, что вы занимаетесь программированием ... у меня для вас плохие новости) Здесь уместно мне сказать: ой, все) UPD. дополню свое сообщение, также это может использоваться как вред - например, включение в код дополнительных аргументов удаления файлов и подобное, с расчетом, что длинная команда скопируется в баш\кмд. причем порой команду можно запустить как только вставили текст в консоль и дописать вместо -r на -d проще простого.
-
хотелось бы отметить необоснованность данного решения в некоторых случаях. Часто авторы тупо накладывают его на все без малейшей тени сомнения в том, что некоторые аббревиатуры, названия групп, песен, растений и т.п. из >224252556 букв или более 1-ой юзер захочет скопировать в поиск. Далее возникают обоснованные жалобы и желание убивать. Что касается вообще такой тактики - любой кто мало мальски владеет кодерством обойдет это и капчи и скрипты и т.п. При чем еще и некоторых личностей можно мотивировать на решение такой проблемы) Возможно, она применима к определенным элементам на странице по селектору - например, основному тексту статьи с исключением выделения, абр, терминов и т.п., что должно копироваться.
-
Покритикуйте проект "Чек-листы от экспертов"
bryknyk replied to ivanvv's topic in Discussion of works
интересная затея)) Имхо. Разделить по категориям и ввести ключевые слова для поиска.Подумать о возможностях редактирования, дополнения, изменения и расшаривания своего чек листа на основе данного, ибо застывшие знания в вакууме теряют актуальность. а так еще и можно пополнять контент). Важно еще и обойти прямое копирование. Конечно, есть "прислать", ну... не знаю.Вижу сомнительным функционал чекбоксов без привязки, просто так покликать - страница закрывается и все теряется. Хотя, с другой стороны, нагляднее, а особенно в длинных листах, но одноразово :/ Приятнее видеть "Мои чеклисты", "Избранные" и т.д.На длинном чеклисте, например, о презентации есть надобность быстро лавировать между этапами, например, сначала собрать вещи,а потом еще свериться с этапом проведения - попробуйте из конца резко перескочить в нужный этап в нужную точку без головной боли - нет никакой навигации по чек листу.Нет ооочень важной для данной тематике кнопки - распечатать) или экспортировать в какой офисный формат или сохранить. конечно, с учетом еще и бздиков авторовНет данных по дате чек листа, ведь он может быть загружен в 199* )) и уже не актуален. Любой об этом может задуматься. Если дата уменьшает маневр по менеджменту сайта, то можно хотя бы коменты приписать с недавней датой - косвенный намек на актуальность, что его смотрят.Вы очень скоро превратите сайт в каталог ссылок. Т.к. размещаете сразу несколько и защитить их от поисковиков можно ( но что скажует автор?) как понимаю - это условие сотрудничества то тогда и требования получше предьявлять, а не 9 пунктов). В будущем, вероятно, есть шанс поиметь сео-проблемы. + если ссылка будет не бгагонадежной сайт попадет в тот же список. А бизнесмены могут грешить черным сеошничеством. Да и вообще, никому не в обиду, они в большистве растрендяи - побыстрее, полегче, не нужна матчасть.Я бы подумал на топом авторов, хитами, лайками и т.п. иначе запросто можно клепать некачественную ерунду и выдавать её за чек лист. Бесплатная реклама, авось кто поведется. Потом кто-то кого-то кинет и начнется. + Специалист с сайта уйдет и вы даже не узнаете. т.к. невозможно оценить качество чек-листа, невозможно знать все)и т.п. социалка, сервисы и далее.В общем, организация, тут много как можно развернуться) -
или, как вариант, заюзать haxe
-
мда. я не помню где я встретил глюк очистки кеша. Возможно, даже в том же нетбинс. Вроде с функцией tempnam и вот проверки всякие он пересоздает файлы многократно. и очистка кеша тоже когда то не сработала. суть class DeleteFile extends Thread{ private $path; public function __construct($pathFile) { $this->path = $pathFile; } public function run() { unlink($this->path); echo nl2br(sprintf("Файл %s удален в потоке %s \r\n", $this->path, Thread::getCurrentThreadId())); }}======================================================================================$filExists = function($path) { if (is_file($path)) { echo nl2br("Файл есть\r\n"); } else { echo nl2br("Файла нет\r\n"); }};========================================================================================$path = __DIR__ . DIRECTORY_SEPARATOR . "log.txt";fclose(fopen($path, "wb"));/* * Включается кеширование */is_file($path);/* * Нормально удаляет т.к. везде unlink очищает кеш *///unlink($path);/* * и тут *///$deleter = new DeleteFile($path);//$deleter->run();/** а здесь в обход*/exec('cmd.exe /c DEL путь');//clearstatcache();$filExists($path);/* * Output: Файл естькагбе все нормально работает с clearstatcache, однако все может быть...*/
-
Я ничего не могу сказать по js в нем, наверняка там тоже есть баги. Но есть некоторые нюансы в целом, кои могут попортить крови в определенных обстоятельствах. 1. Обновления в нем можно установить одним щелчком. Вот один раз я обновился и нетбинс уже не запустился Разбираться времени не было, перешел на версию из zip. с прописыванием в netbeans.conf путей к java и директориям кеша и пользователя - чтобы при краше системы не потерять ничего, ибо их он хранит не в папке программы. Если что - легко сделать резервную копию всего. 2. Утечки памяти или архитектура, но чем больше работать, тем памяти он ест больше. Поэтому периодически перезапускают его. 3. Непонятное кеширование внутреннего браузера. Иногда, хотя и редко, страница упорно представляет собой старую версию - это самый страшный, имхо, баг о который легко споткнуться. Возможно, стоит рассмотреть коннектор на хром, но ведь внутренний браузер можно перетащить в правую часть окна и одновременно видеть и код и браузер, а с хромом вроде так нельзя. удобство теряется. 4. При определенных обстоятельствах есть баг с проектом, вот не помню точно - или файлы не создаются, или он их не видит, или говорит, что файл уже есть - что-то в этом роде и это лечится удалением (возможно есть менее радикальные способы) файлов настройки проекта (папки nbproject) и созданием по новой, как Вы описали, как-то так. 5. Есть "лимит" на количество файлов во всех проектах. Возможно, он исчисляется сотнями тысяч, но он есть, причем от памяти системы как я пронаблюдал не особо зависит. Конечно, вряд ли Вы этот "лимит" перейдете, но он есть. постепенно запускаться будет дольше и дольше - особенно на этапе индексирования файлов проекта. 6. Кодировки. Точно не помню, но вроде как он работает с кодировкой которая в файле. т.к. для некоторых файлов просмотреть кодировку в нем затруднительно, или я не нашел, то есть риск получить несколько кодировок вместе. Может он теперь это показывает, но столкнуться можно вот с таким http://stackoverflow.com/questions/24778725/how-to-change-default-encoding-in-netbeans-8-0 Лучше поэкспериментировать с кодировками в нем. кроме того, стоит распечатать инструкцию по клавишам с сайта т.к. например, догадаться, что Ctrl+U а потом +L (без ктрл) это в верхний регистр и т.п. я бы никогда не смог, а он оказывается через L S U так регистр меняет) на сайте, кстати, много ресурсов на русском, но из-за того, что состояние не запоминается и классного юзабилити найти переключатель в правом углу с первого раза проблематично - на кого это рассчитывалось, вопрос... ну и вот https://www.youtube.com/user/NetBeansVideos они иногда интересные вещи публикуют вдруг кому пригодится.
-
т.к. вы занимаетесь текстовыми файлами, вопрос. Наверняка вы используете в коде file_exists. Она кеширующая, что производит сюрприз при удалении файлов. я сталкивался с ситуацией, когда clearstatcache не работала, куда и как её не вставляй. как вы обрабатываете такую ситуацию? Также любопытно. Если предусмотрена настройка чистки файлов в директории. Пользователь или код может скуролесить некорректный путь и все файлы в нем потеряются. Нужно именно проверить, что в той папке лежат не абы какие , а нужные файлы. тоже любопытно каким путем Вы пошли.
-
Вы выбрали нетбинс для работы?
-
Вспоминая первые шаги - любому новичку должна попадаться статья на офф сайте пыхи, на форуме пхпклаб и т.п. Это просто классический пример инклюдинга - его суют везде куда не лень. Вопрос, что вы не можете знать на каком сервере будет выполняться код и программист прав. Кроме того, этот код неправилен от и до. Сборка пути разбросана по коду, если нужно будет изменить путь - придеться лезть в логику. есть дубирование кода - $_GET['lang'] . '.php' выполняется два раза! и вообще - 4 (!) раза обращение к $_GET['lang'] - кроме дубрилования, т.к. 'lang' это строка не исключено, что при изменении придется искать и заменять и если в коде будет переменная $lang, то без регекспов появится сюрприз. Кроме того, что будет с переменной $lang_file если if не сработает. Или это подразумевался сокращенный вариант if и переменная уже инициализирована где-то в коде по дефолту, или это просто недочет и там ничего не будет, но будет ошибка. rus вам скинул ссылку- там ключевой момент - изменение пользователем содержимого массивов пост или гет для изменения пути подключаемого файла!
-
ничего, кому нибудь лишняя инфа пригодится. Тему много кто читает и по разному относится к информации)
-
если я немного представляю вообще, о чем тема т.к. понятия достаточно расплывчаты, то имхо, вы идете неправильным путем. Вы привязываетесь к конкретным технологиям, а первые вопросы, которые могут возникать - 1. Как передавать настройки - кому и когда, потому при расслоении всегда что-то передается и устанавливается. Если идет иерархия вызовов, то как доставить их на другой конец. не дергать же файл по сто раз. и велика вероятность на другом конце получить не то. 2. Как переинициализировать приложение при изменении настроек. например, заполнена форма, настройка изменяется и все перегружается - данные утеряны. 3. Как придумать строгие правила проверки и сопоставления ключей, т.к. их много и легко можно попутать. 4. Как подстраховаться от их утери. При первом столкновении с данной технологии мой конфигуратор при о.у. нещадно херил весь файл xml, делая его пустым, был сюрприз 5. Оставить место, чтобы навесить другие форматы и т.п. 6. удобно распечатывать для контроля когда тесты не писаны. 7. безопасность и т.п. например, окажется, что настройка должна приходить из командной строки вообще. а вот если 100500 ключей в ключ:значение можете легко получить кашу, а при xml например, удобнее что-то с чем-то легко связывать и иньецировать классы друг в друга и т.п., иерархия также. А вы быстрее, не быстрее - ну зачем так сразу на реализацию. Это целый слой приложения. А еще околотекстовые форматы при о.у. могут распечатать в браузер все настройки при прямом доступе к файлу)
-
логично, ибо настройки типа бд редактируются редко. Но даже если взять настройку количества лент и разместить её предложенным в теме способом, то можно иньецировать туда код и переинклюдить файл в другой уязвимый - например, настройки в папке config и проверка идет на файл только из этой папки. И если в области видимости того кода есть настройки бд, то можно или распечатать их\увести\подменить и т.п извраты. Здесь широкие возможности)) Похожий принцип напоминает атаку через лог файл. Поэтому требования к безопасности тут огромные.
-
Например, конструктор тесно связан с понятием "состояние объекта". Прежде чем начать манипуляцию с методами и свойствами объект должен быть подготовлен. также связано понятие иньекция зависимости Dependency injection. есть через методы - сеттеры, а вот есть через конструктор. Например, если важен порядок вызова сеттеров ( что нехорошо, однако возможно) вы при создании объекта должны читать и знать их порядок, если заложить в конструктор уже порядок их вызова, то потребуются лишь посмотреть подсказку в редакторе при создании нового объекта что ему нужно и вы не сможете создать объект по своему и поломать систему
-
друпал упал в глазах. Человеку свойственно ошибаться, это понятно... но уж не так! http://habrahabr.ru/post/240721/
-
возможно, вы имеете ввиду что-то вроде http://php.net/manual/ru/function.var-export.php Файл, например, с массивом инклюдится как обычный и становится доступен в клиентском коде. Как отмечено выше, здесь множество уязвимостей возможных: на этапе формирования данных выхода, выбора файла, записи, выбора файла чтения, инклюдинга, обработки данных и т.п.
-
Один раз вертелся на сайте женщин вебмастеров, своеобразная биржа рецептов. покупают мастер-классы себе на сайт. Кгм.. во -первых много картинок(но это мастер класс, однако не стоит отрицать, что женщина захочет похвастаться), во-вторых. женская логика типа (сегодняшний пример с топов): 50 мл растительного масла (я использую оливковое), 200 г форели (лучше семги) 1 ч.л. горчицы (пасты). ингредиент одновременно может являться и рецептом - тесто со ссылкой (страница) на самого себя. Потом - рецепты мастер классов проверяются, а вот ручные будут ошибки кариандр, кориадр, кориандрр. И вот... пользователь вводит запрос, а аджаксом подгружаются енти 2 (первый через а) результата и.к. для компа они разные ингридиенты. Если же изначально забивать - всего не учтешь, например, стеклянная банка)) Любопытны также поиски по ингридиентам вода)) + теги, категории, назначение, порции, рейтинги, комменты, ЧПУ из названия рецепта автоматом, что тоже не просто, например, - "kurica s jajcami" и т.п. Вопрос в том, что ингредиент становится им в процессе обработки также или как покупные. или там консервированная фасоль (или там фасоль "Фасолинка"). Ввести фасоль а в рецепте консервы. С т.з. логики это косяк. А изначально забивать - тоже сложности. Как по мне - самое сложное это ввод рецепта. Т.к. основная аудитория - женская, их попробуй предсказать)) + нужно стимулировать размещение. Кгм.. тут явно можно обратиться к женскому - "какая я мастерица". А значит, если рецепт уйдет в небытие и не закрепиться за профилем, ником, именем - то похвастаться нечем и т.п. выводы Ну и, конечно, нетривиальное использование. Пользователь берет текстовый файл, ctrl+c ctrl+v, а ингридиенты нужно вводить раздельно. Он будет это делать? Необязательно)) Прошлые рецепты или рецепты без категорий или подобные выше явно придется обрабатывать кулинарным парсером, не руками же все раскидывать. ой, сложно все, ну его.
-
Я соглашусь из трудовых соображений. Можно поэкономить на дизайнере и выпустить приложение со сносным интерфейсом человеку, с дизайном на вы) а вот дизайнеру обратное затруднительно. С другой стороны есть пугающие тенденции - редукция нюансов. Возможно, это из-за возросшей информационной нагрузки. Но есть категории, где дизайн играет иную роль - мода, дамские принадлежности, сайты релакса, приложения для игр - робото-интерфейс, стим-панка и т.п. Распространять на них сии принципы вижу убийственным. Т.к. гугл внимание на них не заостряет - они не важны. Хм.. мне не нравятся такие подходы, они попахивают менеджментом и т.п. товарищами. На это намекает и кастрированный вводный раздел - мне представляется, что такая система как-то более структурирована должна быть и развернута. Это также намекает на будущее перераспределение обязанностей в сайтоделании - на дизайнера полностью верстка, т.к. лепится все по паттернам, за что тогда ему деньги платить, ну, или еще чего придумают) да-да. Поэтому я и заострил внимание. т.е. он без засечек. Без засечек идет на заголовки, как мне говорили. т.е. serif && sans-serif. В массе текста удобнее читать с заcечками. Может я и неправ - я не дизайнер всеж) Хочу также обратить внимание на некоторые категории, например Components. Там кнопка меню почти совсем не выражена. Если бы я сделал нечто подобное в инет-магазине или оплата или т.п. сеошники бы меня просто порвали))
-
Господи, только второй раз, из поиска гугла пришел на туже страницу и увидел, что в левом верхнем углу это чертово меню которое открывает материал по нему!!! Сейчас хочется матерным словом охарактеризовать их подход ко всему. Это в стиле гугл - сделать вместо одного клика десять, а потом писать - как-то не увидел привязанность к тематике приложения\сайта, интернационализация (или они думают, что весь мир по pm\am живут) и главное - ограниченные возможности. Явно, что задачи определяют дизайн, а тут, получается наоборот или я неправильно понимаю? Возможно, это выделение ключевых задач с пояснением хороших подходов, а иначе - аналогия паттернов с уклоном в мобилу т.к. мышь != тачпад. Нужно использовать, но там где подходит. Может кто подсказать статью\читшиты в которой это перелопачено с т.з. действительно практики, что конкретно взять, что оставить?. А то эти сны гугла выглядят сыроватыми. Например, жители Востока воспринимают дизайн иначе, даже рекламные вывески пилят несколько вариантов т.к. письмо справа налево, для текста и заголовков же вроде юзают разные типы шрифтов, засечки - для текста. выбор цвета зависит от 3 составляющих - HSV, просто так взять из палитры...хм.. Ладно, я бегло читал, возможно, это все есть, но в духе гугла - у черта на рогах. Хотя определенно стоит заняться этим материалом, полезного там много чего можно вычерпнуть. Спасибо за интересный материал
-
сейчас как раз снова напоролся на одну мелочь, которая всегда портила мне массу крови. Насколько я помню сущности вк, то проблема в одной: при передачи полей профиля, которые нужно вернуть есть поле "schools". Возвращается массив объектов школ. Вопрос в том, что одно поле этого объекта: А class является зарезервированным словом, такое свойство не создать) и просто мапить на объект не получается, а хочется. логично, но теперь это риск деаномизации. Я, как замороченный на безопасности - такого не люблю. Легко можно глянуть туда - кто разместит эту тему, немного умственной и не очень работы и уже можно кидать мне продуманную, тагетированную фишинговую ссылку, на которую я могу и клюнуть. Это раз. Во вторых от 16 и от 1 марта там висит мессага об недочете в документации этого метода о правах доступа. Никаких изменений там не сделано. Поэтому, делаю вывод - ложили они кое-что на эти предложения Кроме того, там есть и другие недочеты - например, допустимые поля там не полные, полностью косвенно они указаны в описаниях объекта user. Но никому енто не нужно. Так что суммируя - это бесполезная трата времени на фоне риска получить себе проблем, имхо.
-
я потестил, все равно какой символ вставлять, можно стих туда вставить) Вставил "n" . Но счетчик уже "count":14760102)) А жаль. Романтический ореол смысла в этой ошибке просто растворился. Наверное, они просто не ожидали, что на земле есть люди которые смогут попутать одну букву как я))
-
вот-вот. Я ожидал ошибки с их кодом 8 - неверный запрос. С другой стороны, возможно это прикол или диверсия. Например, глагол "gut" вроде что -то связано с ненасытностью или greedy gut - обжора вроде. и т.п. При запросе с g счетчик найденных возвращается в ответе "count":14758496. Мол, хочешь много? получи) Хотя все равно за рамки лимита не выйти. Конечно, это фантастическое бредовое предположение, однако т.к. в вк одни юмористы сидят... черт их знает.
-
Столкнулся с любопытным случаем. Задача проста: получить объекты пользователей по строке поиска. Решение: метод users.search. Для него есть параметр "q" - question, query от чего они там сокращали. Результат: возвращается у меня топ пользователей или случайный их набор, независимо от строки поиска. Распечатал запрос, выполнил в браузере - тоже самое, все равно идет топ. Проверил запрос, вроде все на месте - параметр, кодированная с латиницы строка, токен. К счастью, проблема нашлась почти сразу и была очень глупой. Символы "q" и "g" при беглом взгляде на строку запроса (маленький шрифт) выглядят похоже. Как я умудрился туда засунуть "g" - не знаю, но факт - ошибки нет и ответ есть. Наверное, ближе к вечеру с включением ступора мозга это могло бы серьезно напрячь, ведь результаты-то запроса идут и логично, что сервер сообщит о неверном параметре)) В данном случае у меня было поле класса "g". Просто заменив его на правильный символ из вкapi ide быстро подсветила ошибки и все стало ясно, а вот если бы я формировал запрос из сегментов - нужно было бы заменить, сделать запрос и посмотреть еще ответ. С "q" все стало на свои места и вернулись искомые пользователи. Мда, что может вытворять внимательность и как легко затупить даже на ровном месте
-
Любопытный маршрут. Касаемо первой точки, не посоветуете ресурсы какие или книжки, особенно если бы там LMMS юзалась) А то вьехать, как говорил господин Коровьев в До-ми-соль-до! сразу трудновато. А то что есть (по цифровой как-то маловато), не отличается особой структурированностью. А время ценно) А чтобы не посчитали флудом сообщение: ммм... посмотрите патентное право, авторское и т.п. разделы гражданского п. - в т.ч. что патентуется а что нет написано вроде даже в википедии, это Вам в юридическую реку окунаться)). мне вариант с первенством через журнал выглядит более привлекательным, как писали выше. Ибо законы вилами по воде писаны. С другой стороны, ничего не помешает потом запатентовать кому-то идею, немного видоизменив и Вы останетесь с носом) Наверное, тут комбинированные варианты нужны.