Если внешние ресурсы CSS имеют малый объем, их можно вставить непосредственно в документ HTML. Подобное встраивание позволяет браузеру продолжать загрузку страницы. Обратите внимание: если файл CSS слишком велик, после его встраивания PageSpeed Insights может вас предупредить, что верхняя часть страницы имеет слишком большой объем (правило приоритета видимого контента). Если файл CSS слишком велик, вам необходимо найти код CSS, отвечающий за контент в верхней части страницы и встроить его в HTML, отложив загрузку остальных стилей.
Территория одного только СЗ ФО в 40 раз больше Швейцарии, а население в в полотора раза больше. То есть, чтобы только управлять одним только северо-западом, мне нужно приложить в несколько раз больше усилий, чем швейцарцу, что довольно сильно скажется на моей способности принимать правильные решения. Тем и хороша идея специально назначенных управлять государством людей, что они посвящают достаточно много времени на анализ того, что происходит в стране и мире.
создав виртуальную реальность, используя большие экраны и тренажеры
Интересно было бы мне посмотреть на эти экраны и тренажеры, но что-то мне подсказывает, что и невооруженным глазом заметна имитация. На крыс, думаю, сложновато натянуть шлем виртуальной реальности, а любые другие приспособления дают заметно меньшее погружение (по опыту использования Oculus Rift и 5D-кинотеатров и IMAX).
В одной из статей на хабре по nested sets упоминалось, что дробные числа имеют ограниченную точность. Хотя как по мне, это довольно надуманный аргумент, так как в подавляющем большинстве задач этой точности должно хватить, а на больших данных, возможно, уже стоит смотреть в сторону нереляционных СУБД.
Упс, это был ответ на комментарий выше от 4dmonster.
Я бы не хотел, чтобы дверь моей машины мог открыть любой, если я стою рядом, и наоборот, мне бы хотелось с расстояния открыть дверь машины, если моему знакомому из нее что-то нужно забрать. Пока не появится искусственный интеллект, способный сам правильно определить, можно открывать человеку дверь или нельзя, механическая кнопка будет наиболее надежным и удобным интерфейсом.
Основная проблема открывания двери ключом — это необходимость в наличии ключа. Именно поэтому постепенно отпадают плееры, фотоаппараты и другая техника. Все с собой не потаскаешь. Мне кажется, идеальным вариантом был бы носимый гаджет (часы) с несколькими настраиваемыми кнопками. У каждого человека свой набор необходимых действий, и каждый может настроить такой гаджет под самые частые свои действия, как в программируемых кнопках на клаве компьютера.
А мобильное приложение, приведенное в пример в статье — конечно верх идиотизма. Я бы добавил виджет на рабочий стол для такой популярной функции, или придумал что-то подобное. Ну и да, на рабочем столе моего смартфона не сотни иконок, а только пара десятков самых юзабельных.
Для сокращения размеров атласа/количества файлов неплохой идеей было б нарисовать отдельно стрелку и отдельно отдельно отблеск.
Собственно, в Юнити так и сделано в компоненте кнопки: есть компонент-контейнер с фоном, и внутри него компонент-содержимое. В дефолтной кнопке в Юнити содержимое — это компонент-текст, но его можно легко поменять на что угодно.
Перемещаете курсор на запятую, нажимаете alt+enter или появившуюся лампочку, выбираете «Inspection options->edit inspection profile setting», убираете ненужную галочку. По крайней мере так в PhpStorm 7
Хотелось бы нативного решения. С расширениями всегда проблемы, особенно когда их много. Я чтобы лису довести до нужного мне состояния, установил несколько расширений на вкладки. В итоге получались невеселые баги.
Наткнулся на баг в боковой панели закладок:
— нажимаю плюс для добавления новой закладки;
— вбиваю адрес закладки;
— удаляю то, что автоматически подставилось в заголовок;
— Вбиваю заголовок закладки. Если вбивать заголовок достаточно быстро, то при попытке ввести пробел, пробел сначала введется, а потом удалится, и получается, что все слова написались слитно. Если печатать медленно, то все ок. Причем баг появляется только если в адресе уже что-то вбито.
И еще вопрос: не могу найти настройку «Открывать новую вкладку рядом с текущей». Она планируется?
Это работает в большинстве случаев, но не всегда. Я могу получить groupId из надежного источника, например если мне нужно скопировать запись в БД. При хорошем lazy load у меня будет groupId, но не будет самого group.
Конечно, направлять разработчика на best practies — это хорошо. Но если программист неопытен, или если он просто идиот, то он будет ставить конкретные костыли, и будет еще хуже. Если же программист грамотный, то он хорошо знает, когда можно и нужно поступиться best practies, а система не позволит ему это сделать, и хороший программист будет грустить. И я говорю сейчас не только об этом конкретном примере, который мы обсуждаем, но обо всей симфони, и доктрине в частности.
Сам далеко не фанат доктрины, но со многим в статье не согласен. Например lazy load штука хорошая, но плохо контролируется в доктрине.
Главными недостатками доктрины вижу чрезмерную монструозность и тормознутость, сложность реализации простых вещей, и неочевидность поведения в сложных случаях.
Примеры:
— найти все записи, у которых значения поля больше определенного значения. Все, прощайте простенькие методы репы, здравствуй QueryBuilder;
— от getScalarResult() я ожидал массив вида: [1,2,3], а получил [0=>[1], 1=>[2], 2=>[3]]. Результат совершенно не отличается от getArrayResult();
— простой, быстрый и элегантный запрос с подзапросом в джойне невозможно реализовать в DQL, а с подзапросом в where мне не подходил. Пришлось делать два запроса;
— еще несколько примеров, которые я не могу привести в силу сложности условий для возникновения;
Я уж не говорю про костыли при работе с плохо спроектированной БД — тут вообще ад и извращения.
developers.google.com/speed/docs/insights/OptimizeCSSDelivery — вот отсюда
Интересно было бы мне посмотреть на эти экраны и тренажеры, но что-то мне подсказывает, что и невооруженным глазом заметна имитация. На крыс, думаю, сложновато натянуть шлем виртуальной реальности, а любые другие приспособления дают заметно меньшее погружение (по опыту использования Oculus Rift и 5D-кинотеатров и IMAX).
Упс, это был ответ на комментарий выше от 4dmonster.
А мобильное приложение, приведенное в пример в статье — конечно верх идиотизма. Я бы добавил виджет на рабочий стол для такой популярной функции, или придумал что-то подобное. Ну и да, на рабочем столе моего смартфона не сотни иконок, а только пара десятков самых юзабельных.
Собственно, в Юнити так и сделано в компоненте кнопки: есть компонент-контейнер с фоном, и внутри него компонент-содержимое. В дефолтной кнопке в Юнити содержимое — это компонент-текст, но его можно легко поменять на что угодно.
— нажимаю плюс для добавления новой закладки;
— вбиваю адрес закладки;
— удаляю то, что автоматически подставилось в заголовок;
— Вбиваю заголовок закладки. Если вбивать заголовок достаточно быстро, то при попытке ввести пробел, пробел сначала введется, а потом удалится, и получается, что все слова написались слитно. Если печатать медленно, то все ок. Причем баг появляется только если в адресе уже что-то вбито.
И еще вопрос: не могу найти настройку «Открывать новую вкладку рядом с текущей». Она планируется?
Конечно, направлять разработчика на best practies — это хорошо. Но если программист неопытен, или если он просто идиот, то он будет ставить конкретные костыли, и будет еще хуже. Если же программист грамотный, то он хорошо знает, когда можно и нужно поступиться best practies, а система не позволит ему это сделать, и хороший программист будет грустить. И я говорю сейчас не только об этом конкретном примере, который мы обсуждаем, но обо всей симфони, и доктрине в частности.
Не знаю, как у вас все работает, но
не работает, если у User есть ManyToOne user.group. Доктрина видит, что group у user не установлен, и затирает groupId
Это точно не умеет. Очень неудобно конечно, приходится извращаться, что портит и код, и производительность.
Немного не понял, о чем вы. Можете пример привести?
Главными недостатками доктрины вижу чрезмерную монструозность и тормознутость, сложность реализации простых вещей, и неочевидность поведения в сложных случаях.
Примеры:
— найти все записи, у которых значения поля больше определенного значения. Все, прощайте простенькие методы репы, здравствуй QueryBuilder;
— от getScalarResult() я ожидал массив вида: [1,2,3], а получил [0=>[1], 1=>[2], 2=>[3]]. Результат совершенно не отличается от getArrayResult();
— простой, быстрый и элегантный запрос с подзапросом в джойне невозможно реализовать в DQL, а с подзапросом в where мне не подходил. Пришлось делать два запроса;
— еще несколько примеров, которые я не могу привести в силу сложности условий для возникновения;
Я уж не говорю про костыли при работе с плохо спроектированной БД — тут вообще ад и извращения.