Jump to content

Быколай

Expert
  • Posts

    1,069
  • Joined

  • Last visited

  • Days Won

    9

Everything posted by Быколай

  1. Дружище, освой лучше пару-тройку MVC-фреймворков. Это остудит пыл и позволит соизмерять свои возможности с реальностью. + даст нужные скиллы по жизни и в резюме. Если каким-то чудом( после того как научишься использовать по назначению готовые инструменты) останется желание браться за велик, или пилить "движок" на одном из освоенных FW, то хотя бы уже будет понятие, чем привлечь "шарящих" (какие практики и парадигмы будут использованы) и для чего это вообще нужно (чего такого нет в существующих, что хотелось бы создать в своём).
  2. nerv, использую сервер на https://bitbucket.org/ установлен клиент TortoiseGit, с половину операций через консоль делаю, т.к. так часто проще следовать инструкциям по которым разбираюсь в git. Пока не могу сказать что удобнее. Единственно что в консоли мне не вполне удобно — добавлять новые файлы, и не так этот процесс там нагляден. Вот сейчас слил ветки. Без подтверждения удалилось из мастера всё что было удалено в новой ветке, модифицированные файлы перезаписались. В принципе в логе TortoiseGit всё это видно. Он сам оценивает изменения? В каких случаях возникнет конфликт? Про diff пошёл читать глубже, спасибо. Как у меня вышло два форка, я описал в первом посте. Собственно с вопроса правильно ли я использую этот приём и начался топик Я понимаю, что вопросы довольно очевидные, и литературы по Git сейчас много... Но её настолько много, и она настолько обширна, что я уже устал гуглить, буду искренне благодарен за человеческие ответы И меня не покидает неприятное ощущение, что сил на овладение этим инструментом, который, казалось бы должен помогать и облегчать работу, уходит на порядок больше чем на саму работу или изучение новых библиотек/фреймворком это ужасно. Хотя, будем надеяться, что потом это окупиться. Я тоже раньше одно время использовал понемногу Гит. Даже что-то на гитхаб отправлял. Но т.к. работаю в одиночку забросил. Теперь вот решил наверстать. К сожалению раньше не работал ни с какими системами контроля версий, поэтому туго въезжаю. Всё что читаю изобилует терминами, которые не вызывают у меня совершенно никаких ассоциаций. В общем почувствовал себя Йоном Тихим на Энтеропии))
  3. Да, в моём случае можно сказать что редакция. Пока что отличия первого форка от ядра - это дополнительные модели, контроллеры и представления соответственно. Впиливать поддержку модули/плагины не вижу смысла. Я же смогу обновить ядро в форке из родительского репозитория? Вот нашёл такой алгоритм: http://www.t1me.ru/node/252 . Только пока не понял как это работает. Выполнил все шаги, И что дальше? Есть у меня рабочая версия. И есть обновления в родителе форка. Как мне найти какие файлы отличаются и обновить их? UP: то есть как я себе это представляю в мечтах: merge выбрал ветвь текущего репозитория, указал ветвь оригинального-родительского репозитория, клац, вылезли все различия : почекал какие файлы заменять, какие нет, какие перезаписать, какие удалить => получил новую ветку из слияния. Или в Git всё мудрее?
  4. В конце концов, как я это не откладывал по-лени своей, а пришлось окончательно связаться с Git-ом Ситуация: есть у меня кастомизация одного фреймоворка, которую я использую в нескольких проектах. Что-то вроде прототипа cms-ки. Писалась она в муках для корпоративной нужды, но оказалось, что может пригодится и в других проектах. Решение: После некоторых раздумий, и курения темы git'а я пошёл таким путём: 1. Вычистил "ядро", создал его репозиторий. Назовём условно core. 2. Форкнул от него редакцию "shop", куда добавил функционал специфичный для бизнеса вообще и который уже был написан к тому моменту в разрабатываемом приложении. 3. Форкнул от shop корпоративное приложение (которое и разрабатывалось изначально). Таким образом я могу развивать независимо "ядро", бизнес-функционал, а какие-то совсем частные фичи и хотелки менеджеров впиливать в форк из п.3. Подразумевается что в форках не придётся лезть в код родителя. Зато можно смело держать в репозитории специфичные настройки окружения, конфиги, бэкапы и т.п. Легко и быстро можно развернуть редакцию или голую систему, потестить её, с разными настройками, не мучаясь с правкой конфигов. Сперва я это дело пробовал реализовать через ветвление одного проекта, показалось что дурно пахнет и нехватает возможностей описанных строкой выше. Внимание вопрос: нормально через форки это я пошёл решать, или дурак? Далее ещё >9000 вопросов по теме хочется задать, но хотелось бы сперва услышать ответ на первый
  5. ну не скажи, Рус. А в сапе как барыжить без тиц
  6. 1). Косвенно может влиять. 2). Не вижу смысла. ИМХО: Если один сайт будет на 2 доменах, то с точки зрения ПС - 1 будет зеркалом другого. На ранжирование несколько может повлиять наличие ключа в том домене, который будет определён как основной. Отзеркаленный ни на что не повлияет, и зачем он вам тогда? У него будут все те же показатели (ТИЦ, PR) что и у основного, но в результатах поиска он никогда не будет виден.
  7. Да, вызов функции в header.php: <?$APPLICATION->ShowPanel();?> Это ж как у них запись кэша происходит? Просто пишется в общий кэш всё что в ob_start() попадает, не глядя на права пользователя? Ещё заметил, что битрикс плюёт на указанную дисковую квоту и пишет до тех пор пока место на хостинге не закончиться PS: Не думаю что в техподдержке мне там ответят, версия старая: 1С-Битрикс: Управление сайтом 7.0.14. Предложат обновиться за деньги на поддерживаемую скорее всего. А покупать новое сие поделие желания нет.
  8. И опять на моей "любимой" системе наблюдается мистическое явление следующего толка: не авторизованный пользователь видит верхнюю админ панельку, при заходе на главную страницу. Там прописаны мой логин (админский), но никаких действий выполнить он не может. Ещё симптомы: Так же и я, запустив браузер в котором не выполнялась авторизация, вижу аналогичную панельку с ничего не делающими кнопками. Панелька только на главной странице видна (!) Мы сидим с одним IP за одним проксисервером. У другого сотрудника при прочих равных воспроизвести не удалось проблему. Проблема решилась после запуска в админке штатной функции очистки кэша. Хоть как это часто и бывает, сервер упал во время операции по таймауту в 504-ую. Сегодня это произошло второй раз, первый был около полугода назад, тогда я списал это на мистику и очередную "фичу" популярной CMS. Т.к. сайт боевой, народ туда в рабочее время валит с директа и всё такое, не было возможности хорошенько проанализировать проблему, надо было любым бубном её мгновенно устранить. Внимание вопрос: куда копать? Т.к. чистка кэша вроде бы решает, есть подозрение, что битрикс криво кэш пишет... Но... я хз короче.
  9. rus, в целом система предложенная в статье, по-твоему мнению, вполне себе руководство к действию? Или на вкус и цвет? Книжки чисто по БД, увы, читать времени не было, и только сейчас озадачился вопросом, до этого приходилось или с готовыми БД работать (CMS), или проектировал их исходя из сложившихся в проекте традиций, или по аналогии со знакомыми мне CMS. Тот же битрикс взять: не знаю как в последних версиях, но в той с которой я работаю, объекты в mysql по другим правилам обозваны. Во многом вразрез с методом предлагаемом Михайличенко. WP в этом плане "пограмотнее". Джумла 1,5 пошли по пути минимализма — безликие id, name. Так что, догма не догма, а то с чем приходится работать, часто не лучшему учит
  10. Задумался тут о том, как лучше называть таблицы и столбцы в БД. Наткнулся на хорошую (какой она мне показалась) статью Алексея Михайличенко Правила именования объектов базы данных. Я вот пересмотрел некоторые свои привычки и задумался об изменении своей нотации. Например в таких моментах: 1. обычно первичный ключ AI всегда называл просто id. Автор неплохо доказывает чем удобнее имя_сущности_id 2. отказ от множественной формы сущности в именования таблиц. Вообще на эту тему стал задумываться наплодив что-то вроде tbl_users, tbl_usergroups tbl_usergroups_controllers_accesses tbl_usergroups_files_accesses Понимаю, что темы связанные со стилем кодирования довольно холиварны, многое тут от вкуса и привычек зависит, и тем не менее хотелось бы услышать от коллег мнение о статье, и ваши варианты, как вы называете таблицы/столбцы? С другой стороны из темы может выйти неплохое пособие для начинающий, чтобы не было потом вопросов как этот, например
  11. Rus, тебе не кажется, что со структурой у ТС, мягко говоря, что-то не так? Нормализацию бы провести, так это вроде называется, и с ключами разобраться сперва. это ещё и кросспост http://forum.php.su/topic.php?forum=71&topic=8796
  12. вам бы в порядок таблицы привести. полный бардак.
  13. UTFCast — я её пакетно целые проекты (>9000 файлов) конвертил. Хорошая штука.
  14. Спасибо за наводку! Начал сегодня пользовать, со стандартной консолью и черепахой же. Отличное решение.
  15. danik.html, спасибо, подтолкнул в верном направлении! Вот оно, загон что называется. Весь вечер думал, а то что простым реплейсом можно обойтись — в голову не пришло, редко на js пишу. Вот что бывает если долго мучиться в одиночку — можно затупить конкретно!
  16. В общем озадачился следующим: есть форма, в ней блок с инпутами, который копируется до n-ого кол-ва. Посоветуйте, как решить проблему с именами меньшей кровью? То есть в идеале от формы я хочу получать массив, где пускай числовой индекс отвечает за порядковый номер элемента. С обычными инпутами вс понятно, можно копировать name="name[]" и всё тип-топ. А вот с чекбкосами и переключателями (Radio) начинается хрень. Радио думают что это они одна группа, чекбоксы невыбранные вообще же не попадают в пост, сбивая всю нумерацию... Как посоветуете взяться за такое дело? В каких направлениях я мыслил: 1. Раньше делал подобное перебирая перед отправкой неотмеченные чекбоксы, их использовал и вместо радио Но может есть более красивое решение? Было что-то вроде этого, старый код под спойлером: 2. Целый плагин, например, громоздить для динамических форм не хочется, там настройки, имхо, дольше указывать. Да и разбираться в нём лень)) 3. Прописать в первом наборе [0], а копировать другую заготовку, где прописывать нужный attr('name', 'name['+idx+']'); ? Имхо не камильфо... 4. Прописать в первом наборе [0], а у копируемых регуляркой менять ноль на нужное значение? Имхо, регулярка в данном случае совсем дурно пахнет. Не уж то нет средства для удобной работы с массивом инпутов? Как бы вы подошли к решению такой задачи? Для облегчения понимания, приведу пример формы: http://jsfiddle.net/samizdam/GGtVu/2/
  17. nerv, а где же голосование?? Я одно время юзал гит для себя, но последнее время, т.к. работаю по сути один, острой необходимости нет. А 7 баксов лень клянчить у начальства. На днях завёл было разговор, начальник спросил: а если мы платить перестанем, они чего код весь удалят, или откроют Единственное удобство, которое хотелось бы получить -- это возможность откатываться порой до состояния пока баг не вплыл)) А если без этого, нормально комментировать код, и без команды, то зачем оно мне? Денвер в папку яндекс.диска сунул — и дёшево и сердито PS: но масштаб с каким github раскрутился впечатляет. Куда не плюнь, всё там хостится.
  18. В общем, (после того как глянул на базу, любезно предоставленную ТС), составил следующий запрос, который выбирает нужные данные одним махом: SELECT ch.guid, ch.totalKills, ch.name, ch.race, ch.gender, ch.class, ch.deleteDate, (SELECT COUNT(ach.guid) FROM character_achievement ach WHERE 1 AND ach.guid = ch.guid) AS counter FROM characters ch WHERE 1 AND ch.deleteDate IS NULL
  19. А, если кол-во записей присоединяется, то тогда прошу прощения, простой join не подойдёт. ch. - это псевдоним таблицы, для более лаконичной записи, он объявляется сразу после полного имени, вслед за FROM/JOIN. Тьфу, я похоже вам заведомо нерабочий запрос предложил, там ошибки)) Второпях писал. А Int и промолчал)) Вот что-то такое, мне кажется должно быть: SELECT ch.*, COUNT(`ach`.`achievement`) AS `counter` FROM `characters` `ch`, `character_achievement` `ach` WHERE 1 AND `ch`.`deleteDate` IS NULL AND `ach`.`guid` = `ch`.`guid` ORDER BY `counter` DESC Что тут происходит? 1. Выбираем все значения из characters, при условии .`deleteDate` IS NULL 2. считаем кол-во строк в таблице `character_achievement` с achievement при с одинаковыми guid (как я понимаю, тут можно любой столбец считать, т.к. нам кол-во строк же надо, а значения столбцов безразличны?) 3. сортировка по кол-ву 4 нужное вам значение в counter
  20. это что у вас за шаблонизатор? я так понимаю в этом велосипеде не предусмотрено сортировки. А если попробовать запрос вида SELECT `guid`.`ch`, `totalKills`.`ch`, `name`.`ch`, `race`.`ch`, `gender`.`ch`, `class`.`ch`, `deleteDate`.`ch`, `achievement`.`ach` FROM `characters` `ch` WHERE 1 JOIN `character_achievement` `ach` ON `ach`.`guid` = `ch`.`guid` WHERE 1 AND `deleteDate`.`ch` IS NULL ORDER BY `achievement`.`ach` ЗЫ: почему $sm_read = file("achievements.html"); $sm_read = implode("",$sm_read); а не просто $sm_read = file_get_contents("achievements.html");
  21. посмотрел пациента. Исходный html код странное впечатление конечно производит... Потом глянул на Web-Мастерскую (ох и странный сайт для студии...): Роснефть, Сбербанк. Как ни печально, но возможно там всё по принципу, о котором упоминал Svatov, парой постов выше
  22. Прошу людей многоопытных и не голословных высказаться относительно фичи MySQL `datetime` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, Думаю сейчас над структурой одной БД. Данная фича, как я вижу, позволяет автоматом сохранять момент, когда запись была создана/обновлена. Имхо, удобно, дёшево и сердито. Есть желание прилепить такое поле чуть ли не в каждую таблицу. Внимание вопрос: Кто может аргументировать, стоит ли её использовать массово на таблицах, не скажется ли это на скорости записи чтения, обновления? Ничего толково почитать в поисковике не попалось. Честно признаюсь, лень писать огромные синтетические тесты. Бахнул цикл на 1000 INSERT-ов, колебания в приделах погрешности
  23. понеслась Да ладно, вам... На самом деле, имхо, идеальные продукты (ну в смысле без косяков, которые всплывут на прохожем пользователе) по карману разрабатывать компаниям уровня... Ну гугла хотя бы. Вот сегодня выкатил одно я корпоративное web-приложение. На разработку ушло с неделю. Только функционал по ТЗ 100%. Без заморочек с дизайном, вёрсткой, тестирования, дебага серьёзного. Просто на коленке по образцу нарисованному менеджером прямо в word'е. Довольный показываю. Он начинает тестить. Выясняется что там строчка переносится, хотя не должна, тут вот при определённых условиях отступ маловат, сям условие не продумано при отсутствии данных... Эти баги, именно мелкие, не критичные, но глупые, отловить мне, программисту, который сам себе архитектор, верстальщик на коленке и прочее, ну никак не реально в процессе, или времени займёт ещё больше чем сама разработка. Есть на это ресурсы у компании? Нет конечно. Короче, что сказать хочу: чёртову прорву тестеров и юзабилити-спецов кормить надо, чтобы даже что-то небольшое вылизать до блеска, не будьте занудой)) PS: по ссылке не ходил, сразу во флейм PPS: сегодня наткнулся на косяк на msdn: http://msdn.microsof...y/ms256046.aspx - перевели на русский названия функций current() и document() Отписал им. До сих пор не исправили. Беда. Видите, даже у MS нет средств сделать всё без смешных косяков. >у них там работает профессионалы или нет фик его знает
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. See more about our Guidelines and Privacy Policy