В защиту CSS всё-таки стоит сказать что во многом то, как он сделан, определяется тем как он используется. Я имею в виду то что сама суть CSS — это описание правил стилизации элементов документа браузерами. Причём не просто стилизации, а realtime стилизации (уверен что вы понимаете разницу). Требование очень высокой производительности (а, я думаю, никто не против того что высокая производительность здесь необходима) подразумевает введение различного рода ограничений которые вне контекста кажутся странными и глупыми.
К примеру, думаю, многие в курсе что в CSS селекторах нет т.н. back references т.е. нельзя сделать селектор вида "элемент перед которым стоит другой элемент". Попытка ввести такой селектор была в CSS Selectors Level 4, но в итоге от неё отказались несмотря на то что фича явно полезная. Причина — это замедлит работу CSS движка т.к. сейчас CSS всегда идёт по DOM дереву слева направо, введение потенциальной необходимости идти и в другом направлении усложнит и замедлит код.
Ещё один пример с которым сам столкнулся недавно: у весьма интересного нового свойства position: sticky нет возможности с помощью CSS узнать в каком же состоянии находится элемент (т.е. нет какого-нибудь псевдо-класса типа :stuck хотя он явно напрашивается). Вот здесь можно почитать обсуждение W3C CSS WG по данному вопросу, рекомендую ознакомиться, очень интересно, особенно этот и этот комментарии.
SCSS — это далеко не только CSS переменные. Вложенные селекторы, типизированные данные, mixins, placeholders и т.п. — всего этого нет и не будет в CSS, просто потому что там всему этому не место. Конечно есть и альтернативы более близкие к CSS, тот же PostCSS, но во многом SCSS — незаменимый инструмент в написании большого количества поддерживаемого CSS кода
Для Dell точно работает, мне по страховке меняли материнку + когда случайно оторвал клавишу на клавиатуре — на следующий день привезли новую курьером (при том что я не в Москве / Питере). С покупкой шла на 3 года "в комплекте", можно было продлить.
Dell Precision вполне подходит под описание, пишу с M4800. Правда новую версию брать не буду из-за того что там Home/End выпилили с клавиатуры и перенесли на курсорные клавиши (идиоты). ThinkPad'ы тоже вполне подходят, T/W серии.
Я в прошлом году потратил три дня на поиска проблемы которая проявлялась в том что сообщения между двумя частями в browser extension переставали приходить после примерно 2-3 сообщений. С учётом того что из-за особенностей платформы (Firefox WebExtensions который на тот момент ещё не зарелизился) единственным доступным мне способом отладки была запись в логи — это было "весело", к третьему дню я реально начал сомневаться — а не сошёл ли я, случаем, с ума?
В итоге причину я всё-таки нашёл и она, как и почти всегда в подобных случаях, была тривиальной, но неожиданной:
Для передачи сообщений между частями browser extension используется отсылка сообщений через порт. Для передачи / получения сообщений открывается порт и в обработчике события открытия порта на него вешается обработчик для получения сообщений. Всё было настроено и работало, но я не учёл что во внешней библиотеке, которую я использовал, открывался аналогичный порт, но позже чем мой порт (как раз я за время пока второй порт не открылся успевал передать те 2-3 сообщения которые проходили). В момент открытия порта мой обработчик события открытия порта вызывался, сохранял ссылку на новый порт и вешал на него свои обработчики. Но поскольку порт был уже другим — я начинал получать не свои сообщения, а сообщения внешней библиотеки которые мне были не нужны.
В общем всё решилось банальной проверкой корректности имени порта (1 условие), но нервов на эту строчку ушло очень много :) В коде приложения до сих пор стоит подробный комментарий с припиской: "Takes me 3 days of debugging to figure it out, valuable information :) "
Я, возможно, не отношусь к целевой аудитории, но хотелось бы добавить пару замечаний:
Телефона вполне может не быть (например человек за рубежом и использует локальную сим-карту). E-mail использует тот же транспортный канал (интернет), а телефон — это другой канал связи, не факт что оба имеются в наличии в данный момент. Да, такая вероятность не особо высока, но она отлична от нуля. А то что email доступен в случае если доступен интернет — это однозначно.
Телефон, банально, может не хотеться "светить" на сайте. Почту для однократного посещения легко сделать одноразовую, с телефоном такого не получится. Да и отписаться от sms-спама не в пример сложнее чем от email рассылок.
Было бы хорошо в комментариях не делать такого акцента на нике автора, зачем это, постоянно отвлекает внимание от текста комментария… .user-info__nickname_comment {font-weight: 600} решает в Firefox/Win
Видимо у нас разные типы проектов, я с таблицами очень редко сталкиваюсь, видимо вы работаете над проектами связанными с различными интерфейсами работы с данными.
input type=date уже запилили, как раз в 57-м появится по-умолчанию, хотя вот Safari отстаёт в этом плане. А вот про дополнительные пиксели во flex — очень интересно, есть ли ссылки на конкретные сценарии / багрепорты чтобы знать с чем можно столкнуться?
Странно, а можно подробностей? У меня Firefox — основной браузер для разработки т.к. по моему опыту именно он наиболее точно и предсказуемо реализует спецификации. Одна только недоработка в реализации flexbox заставила в своё время существенно переделывать проект. Впрочем в сравнении с отсутствием поддержки flex-wrap в IOS 8 это были мелочи :)
Firefox, временами, не слишком быстр в реализации каких-то новых фич, но их реализации как правило предсказуемы в своём поведении. Я обычно всё делаю в Firefox'е и потом приходится вносить правки под Chrome, хотя, надо признать, отличия не сильно большие, IE в этом плане больше "радует" временами.
Вот ведь засада, я сразу этот косяк не заметил, думал пожаловаться что до сих пор не сделали группировку F1-F12 клавиш, а здесь такое… Вариантов для следующего upgrade'а становится всё меньше...
Интересно чем это обусловлено? Места там хватает, да и Print Screen по-моему — гораздо более редкая в использовании клавиша чем Home / End.
Сравнил с Dell Precision M4800 (с которого пишу этот комментарий) — сразу бросается в глаза увеличенная рамка вокруг клавиатуры. Вот из-за неё они пошли на "убийство" Home / End?
Остаётся надежда только на то что Lenovo сдержит слово и выпустит всё-таки ThinkPad Retro, а то неясно какой ноутбук брать в дальнейшем
Про внутренности Zeus не в курсе — не копался в нём. А Tasm'ов ведь было несколько версий и возможно какая-то из них (2.x или 3.x) действительно основывалась на Zeus. Насчёт 4.x — сомневаюсь, очень уж там много отличий было на уровне языка. А макросы (и языковые и клавиатурные) рулили неимоверно :) У меня в демках менеджмент памяти был чисто на макросах написан.
Zeus был всё-таки довольно старый и по сути очень мало что умел. Спектр ассемблеров был гораздо шире и функционально они были намного лучше Zeus'а. Мой любимый — TASM 4.12 от RST7
На DPReview достаточно регулярно выходят обзоры-сравнения камер в различных сегментах, в целом сайт довольно известный и адекватный, возможно будет полезно.
В защиту CSS всё-таки стоит сказать что во многом то, как он сделан, определяется тем как он используется. Я имею в виду то что сама суть CSS — это описание правил стилизации элементов документа браузерами. Причём не просто стилизации, а realtime стилизации (уверен что вы понимаете разницу). Требование очень высокой производительности (а, я думаю, никто не против того что высокая производительность здесь необходима) подразумевает введение различного рода ограничений которые вне контекста кажутся странными и глупыми.
К примеру, думаю, многие в курсе что в CSS селекторах нет т.н. back references т.е. нельзя сделать селектор вида "элемент перед которым стоит другой элемент". Попытка ввести такой селектор была в CSS Selectors Level 4, но в итоге от неё отказались несмотря на то что фича явно полезная. Причина — это замедлит работу CSS движка т.к. сейчас CSS всегда идёт по DOM дереву слева направо, введение потенциальной необходимости идти и в другом направлении усложнит и замедлит код.
Ещё один пример с которым сам столкнулся недавно: у весьма интересного нового свойства
position: sticky
нет возможности с помощью CSS узнать в каком же состоянии находится элемент (т.е. нет какого-нибудь псевдо-класса типа:stuck
хотя он явно напрашивается). Вот здесь можно почитать обсуждение W3C CSS WG по данному вопросу, рекомендую ознакомиться, очень интересно, особенно этот и этот комментарии.SCSS — это далеко не только CSS переменные. Вложенные селекторы, типизированные данные, mixins, placeholders и т.п. — всего этого нет и не будет в CSS, просто потому что там всему этому не место. Конечно есть и альтернативы более близкие к CSS, тот же PostCSS, но во многом SCSS — незаменимый инструмент в написании большого количества поддерживаемого CSS кода
Для Dell точно работает, мне по страховке меняли материнку + когда случайно оторвал клавишу на клавиатуре — на следующий день привезли новую курьером (при том что я не в Москве / Питере). С покупкой шла на 3 года "в комплекте", можно было продлить.
Dell Precision вполне подходит под описание, пишу с M4800. Правда новую версию брать не буду из-за того что там Home/End выпилили с клавиатуры и перенесли на курсорные клавиши (идиоты). ThinkPad'ы тоже вполне подходят, T/W серии.
Я в прошлом году потратил три дня на поиска проблемы которая проявлялась в том что сообщения между двумя частями в browser extension переставали приходить после примерно 2-3 сообщений. С учётом того что из-за особенностей платформы (Firefox WebExtensions который на тот момент ещё не зарелизился) единственным доступным мне способом отладки была запись в логи — это было "весело", к третьему дню я реально начал сомневаться — а не сошёл ли я, случаем, с ума?
В итоге причину я всё-таки нашёл и она, как и почти всегда в подобных случаях, была тривиальной, но неожиданной:
Для передачи сообщений между частями browser extension используется отсылка сообщений через порт. Для передачи / получения сообщений открывается порт и в обработчике события открытия порта на него вешается обработчик для получения сообщений. Всё было настроено и работало, но я не учёл что во внешней библиотеке, которую я использовал, открывался аналогичный порт, но позже чем мой порт (как раз я за время пока второй порт не открылся успевал передать те 2-3 сообщения которые проходили). В момент открытия порта мой обработчик события открытия порта вызывался, сохранял ссылку на новый порт и вешал на него свои обработчики. Но поскольку порт был уже другим — я начинал получать не свои сообщения, а сообщения внешней библиотеки которые мне были не нужны.
В общем всё решилось банальной проверкой корректности имени порта (1 условие), но нервов на эту строчку ушло очень много :) В коде приложения до сих пор стоит подробный комментарий с припиской: "Takes me 3 days of debugging to figure it out, valuable information :) "
Я, возможно, не отношусь к целевой аудитории, но хотелось бы добавить пару замечаний:
Было бы хорошо в комментариях не делать такого акцента на нике автора, зачем это, постоянно отвлекает внимание от текста комментария…
.user-info__nickname_comment {font-weight: 600}
решает в Firefox/WinА это не то что нужно? По-моему всегда была такая возможность
Вполне вероятно :)
Поиск по сайту — да, можно, чуть ниже пример приводили. Автодополнение по history и закладкам тоже есть.
Видимо у нас разные типы проектов, я с таблицами очень редко сталкиваюсь, видимо вы работаете над проектами связанными с различными интерфейсами работы с данными.
input type=date уже запилили, как раз в 57-м появится по-умолчанию, хотя вот Safari отстаёт в этом плане. А вот про дополнительные пиксели во flex — очень интересно, есть ли ссылки на конкретные сценарии / багрепорты чтобы знать с чем можно столкнуться?
Tab Groups показывает количество вкладок. Ну и возвращает выпиленную в своё время функциональность группировки вкладок, меня это радует
Странно, а можно подробностей? У меня Firefox — основной браузер для разработки т.к. по моему опыту именно он наиболее точно и предсказуемо реализует спецификации. Одна только недоработка в реализации flexbox заставила в своё время существенно переделывать проект. Впрочем в сравнении с отсутствием поддержки
flex-wrap
в IOS 8 это были мелочи :)Firefox, временами, не слишком быстр в реализации каких-то новых фич, но их реализации как правило предсказуемы в своём поведении. Я обычно всё делаю в Firefox'е и потом приходится вносить правки под Chrome, хотя, надо признать, отличия не сильно большие, IE в этом плане больше "радует" временами.
Вот ведь засада, я сразу этот косяк не заметил, думал пожаловаться что до сих пор не сделали группировку F1-F12 клавиш, а здесь такое… Вариантов для следующего upgrade'а становится всё меньше...
Интересно чем это обусловлено? Места там хватает, да и Print Screen по-моему — гораздо более редкая в использовании клавиша чем Home / End.
Сравнил с Dell Precision M4800 (с которого пишу этот комментарий) — сразу бросается в глаза увеличенная рамка вокруг клавиатуры. Вот из-за неё они пошли на "убийство" Home / End?
Остаётся надежда только на то что Lenovo сдержит слово и выпустит всё-таки ThinkPad Retro, а то неясно какой ноутбук брать в дальнейшем
Про внутренности Zeus не в курсе — не копался в нём. А Tasm'ов ведь было несколько версий и возможно какая-то из них (2.x или 3.x) действительно основывалась на Zeus. Насчёт 4.x — сомневаюсь, очень уж там много отличий было на уровне языка. А макросы (и языковые и клавиатурные) рулили неимоверно :) У меня в демках менеджмент памяти был чисто на макросах написан.
Ну это да :) С софтом поначалу было сложно, впрочем с журналами было ещё сложнее :)
Zeus был всё-таки довольно старый и по сути очень мало что умел. Спектр ассемблеров был гораздо шире и функционально они были намного лучше Zeus'а. Мой любимый — TASM 4.12 от RST7
А почему все комментарии про игры? Где обсуждение огромной демосцены на этой платформе? Она ведь даже до сих пор активна
Ну DOOM мы к сожалению так и не доделали… :) У авторов появилась работа и другие интересы.
А интроху в видео зря поскипали, она клёвая :)
На DPReview достаточно регулярно выходят обзоры-сравнения камер в различных сегментах, в целом сайт довольно известный и адекватный, возможно будет полезно.