Pull to refresh
-3
0
​Василий Пупкинъ @tenshi

User

Send message
Нумерация с 0 и в математике не менее популярна. И она гораздо более элегантна. ru.wikipedia.org/wiki/%D0%9D%D0%B0%D1%82%D1%83%D1%80%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5_%D1%87%D0%B8%D1%81%D0%BB%D0%BE

Кроме того, при использовании низкоуровневых языков llvm или asm внутри julia нумерация ведь будет с 0. Это может привести к шизофрении)

> Индексирование не всегда правильно работает для UTF8-строк,
21 век на дворе… а до сих пор изобретают языки без поддержки юникода, перегрузки операторов и многозадачности
То есть теперь провайдеры будут решать какие вопросы нам можно задавать, а какие нет?)
Я смотрю нынче модно стало оскорбляться по любому поводу. Меня вот тоже оскорбляет, что отключают канал, который я не смотрю, под липовым предлогом! Но я-то не священная корова, не блокадник.
И кстати о блокадниках. Что такого героического в том, что они просто выжили? Кто-то у кормушки стоял, кто-то соседа разделывал, кто-то ещё каким-то чудом выжил. А что с теми, кто умер с голода, чтобы те, кто сейчас обижается на неуместные вопросы, остались вживых?
Вот Позднер говорит мол могло быть как в Киеве, где расстреливали евреев. На что у меня к нему предложение — посидеть года так 3 на диете, наблюдая как твои опухшие с голоду знакомые и близкие умирают. Тогда он бы сам позавидовал тем, кто был просто расстрелян. Тем более, что неминуемый расстрел грозил лишь евреям, а остальные не брезговали этих евреев выдавать. «Шансов быть недостреленным оказалось больше, чем шансов быть не выданным.» И таки да, если бы сдали Ленинград, то не было бы у нас «героев-блокадников», а были бы «сволочи-стукачи». В массе своей те же самые люди. Просто обстоятельства другие — другие и способы выживания.
Так что вопрос более чем уместен, и не нужно ждать пока скончаются все свидетели. И в ответ должны звучать аргументы, факты и разъяснения, а не запреты телеканалов, требования есть мыло или ссылки в навоз.
> Если фильтр не применен — адресная строка браузера содержит ЧПУ без дополнительных параметров.

О, да, просто ультрамегасупервысокая важность)
Погугли чем чпу отличается от псевдостатики ;-)
Ну и зачем отдельный синтаксис для приостанавливаемых функций и отдельный же синтаксис для ожидания результата? К чему это выпячивание внутренней реализации? те же node-fibers позволяют элегантно инкапсулировать асинхронность не заставляя каждую промежуточную функцию превращать в генератор и распихивать yield-ы. К тому же, благодаря Proxy есть возможность приостанавливать не сразу, а лишь когда в этом появится надобность (https://github.com/nin-jin/node-jin#sod).
А смысл в нативной поддержке того, что и так легко реализуется на текущей версии языка? Я бы понял, если бы они перевели все апи на промисы, но такое половинчатое внедрение нафиг нужно. Тем более, что промисы уже устарели — в тренде реактивные вычисления). А генераторы — это конечно классно, но при использовании генераторов промисы и не нужны вовсе — они всего лишь эмулируют синхронные инструкции управления потоком (и то не все).

Это основ теории вероятностей. Вероятность известного результата всегда равна единице. Вероятность неизвестного — оценивается на основе известных данных, но так как данные не полны, то и вероятность меньше единицы. Собственно Шреддингер и придумал своего кота, чтобы показать, что наши вероятностные модели — не более чем модели и никаким «физическим смыслом» могут не обладать. Так что «схлопывание волновой функции» — это не про физику процесса, это про наблюдателя, который в процессе наблюдения уточняет свою модель мира.
> Из-за этой разницы и появляются костыли вида «file01», а также муки выбора — сколько нулей писать в начале.
Не только и не столько из-за этого. Числа удобнее воспринимать, когда они выравнены по разделителю дробной части.

По статье:

1. Обычно всё же надо сортировать не просто строки, а список структур. И сортировать по какому-то полю, а то и вообще по какому-то генерируемому значению.

2. Не вижу в тестах и бенчмарках указания использовать именно StringLess ни в явном ни в неявном виде. Плохо попахивает это дело. Натуральная сортировка ведь далеко не всегда нужна.
> n!/(k!(n-k)!)

Ага, прям так и скажет) У этой формулы есть более короткая запись — C(n,k). Читается «цэ из эн по ка».
Overthrow.js — не работает в crome+win8

Echo.js — картинки и так грузятся лениво

Imager.js — авторы ни спеку на data-*не читали, ни свой головой не подумали. data-src и data-aly легко могут конфликтовать с другими библиотеками. Надо использовать более специфичные, например data-imager-src, data-imager-alt

По секрету скажу, что кроме документоориентированных субд и реляционных есть и другие виды. Например — графовые. Например — OrientDB. И всякие реляционные и всякие документоориенторованные являются лишь частными случаями графовых. Конкретно OrientDB поддерживает и sql-запросы по базе, и выборки по ключам, и указание схемы, и прямые линки между «документами», и даже наследование между «таблицами».
Не знаю как вас, а меня напрягает, что после того как я поискал и купил принтер мне ещё неделю показывают рекламу с этим принтером или тем интернет магазином. Причём она преследует меня на всех сайтах. К чёрту такой таргетинг. То, что я когда-то искал принтеры о текущих интересах не говорит _вообще_ ничего. В лучшем случае я захочу купить бумагу, но не через интернет, или краску, но через 100500 отпечатанных страниц о чём никакой атом не узнает. Реально, народ, вы занимаетесь чем-то не тем. Вы пытаетесь чисто интерфейсную проблему «как объяснить роботу чего я хочу» решить какими-то хитрожопыми эвристиками. Пытаетесь угадать текущий контекст пользователя по тому, что он вбивал в поисковую строку когда-то. Реально, дайте людям в руки простой и понятный инструмент фильтрации и они скажут вам спасибо. Например, разбейте всю выдачу на несколько взаимоисключающих категорий и позвольте пользователю уточнить фильтрацию простым кликом по нужной категории. Реально, примитивный акинатор куда лучше ищет то, что нужно пользователю, чем все эти ваши атомы.
С нативного CSS

Мне очень смешно с тех, кто не испытывает проблем с компасом. Вы либо им толком не пользуетесь, либо фанатично игнорируете проблемы. Компас — это очень топорный инструмент (не топор, замечу!). Всё в нём сделано как-то через одно место, но это не видно, пока не попытаешься им воспользоваться.

Ручное построение списков файлов с учётом зависимостей — это проблема, но все к этому привыкли и не видят её. Я даже не буду на эту тему спорить — поюзайте хоть одну систему автоматического управления зависимостями и поймёте, что ранее занимались ерундой.

datauri? С его «шикарной» поддержкой в ие? С разрастанием объёмов в два раза? С лишним временем на декодирование? И пляски с бубном, чтобы одна и та же картинка не дублировалась? Нафиг надо.
Отвечу сразу всем.

Кода у нас порядка пол мегабайта минифицированного кода. Есть и много каскада и что-то типа бэма. Проект действительно большой (а не «довлльно крупный») и древний — мечта археолога) И не надо мне рассказывать, что единовременно из всего этого нужно от силы пара десятков килобайт — я это всё прекрасно знаю, но приложение одностраничное, а жонглирование динамическими стайлшитами и их генерация с учетом всех зависимостей — тот ещё секс.

3. Лучше всё-таки не держать никаких _base.scss, index.js и тп, а иметь разделение кода на модули и автоматический учет зависимостей между ними. Ручная пересортировка списка на 100+ файлов — совсем не то, чем хочется заниматься.

5. Я же программист, мне лень делать руками то, что может сделать программа. Один раз потрахался и теперь файлы нарезаются сами.

7. Да-да, и не используйте псевдоселекторы и псевдоэлементы) Я бы предпочёл, чтобы @extend функционировал точно также как @mixin — изменял одно конкретное правило, а не разбрасывал свойства одного класса по десятку правил. И это как раз такая «фича», которая скорее баг.

8. Не для того мы внедрили использование препроцессора, чтобы его не использовать х) АФАЙК, «миксины для стандартных свойств» — это не удобно по сравнению с «пишем по стандарту, а для отстающих генерируется фоллбэк, а для кеширования добавляется хэш к урлу».

9. Мне удобно, чтобы сгенерированный файл клался не рядышком, а в заданную подпапку, чтобы файлы были сгруппированы по модулям, а не по типам, чтобы спрайты собирались не из всех подряд файлов в заданной директории, а из тех файлов, что были подключены в css и тд и тп

11. Если нет no-repeat, то нижняя картинка оказывается сверху верхней. И наоборот.

13. Копипастой не устраивает. Я всегда хочу картинки засовывать в спрайт. Иначе бы и не использовал компасс, ограничившись scss с примесями. И вообще я не хочу ничего решать в каждом цсс-правиле, я хочу единожды для проекта настроить правило «все картинки до 20кб спрайтуем» и всё.

6, 7 и 8 — вполне себе недостатки компаса, просто он их унаследовал от scss)

Резюме: поменяли шило на мыло. Был один геморрой, теперь другой геморрой. Плюс ещё и архитектурная сложность возросла. Нахрен такое надо. Лучше уж заюзать либу типа rework и полностью контролировать процесс, чем использовать такой вот кривой фреймворк.

Мы недавно в довольно крупном проекте перешли на него. Думаю стоит отказаться.

О наболевшем:
1. Тормоз. Ребилд после изменения — 5 секунд. Очень выбешивает.
2. Автобилд глючит. Например при изменении картинки не пересобирает спрайт — нужно изменить какую-нибудь scss.
3. Нет зависимостей, есть только инклуды. А включает Б и В, Б включает Г, В тоже включает Г, в итоге Г подключен 2 раза. То есть всё-равно нужно иметь некий индекс в котором перечислены все файлы в нужном порядке, а в них никаких подключений.
4. Метод сериализации compressed — портит стили (вся вёрстка едет, хрен знает где косяк ибо в этой лапше не разберешься), compact — оставляет комменты, пробелы и лишние переводы строк. То есть после него ещё нужно какой-нибудь вменяемый css минификатор использовать.
5. Не умеет резать на несколько файлов, чтобы не превышать ограничение ие в 4095 правил на файл. Пришлось писать костыли через одно место (там можно повесить хэндлер на запись результирующего файла в котором прочитать его, нарезать и записать)
6. Руби — тот ещё трансцендентный язык. Если очень хочется именно scss (не compass), то лучше уж заюзать нодовый биндинг к сишной либе. Хотябы работать будет быстро.
7. При наследовании пытается оптимизировать делая кучу селекторов через запятую с одним правилом внутри. Но плохо получается и в итоге размер не меняется (селекторы-то склонны к располнению, а он их ещё и копипастит), так ещё и из-за нарушения исходного порядка правил предок начинает перегружать свойства потомка, что приводит к ахтунгу и необходимости в потомке повышать вес селекторов или отказываться от наследования. Дебажить такой код тоже не ахти какое удовольствие: из 100500 селекторов применяется только один, а места портянка занимает на пол консоли.
8. Непрозрачный синтаксис. Нельзя просто написать «display:flex» — нужно помнить все миксины, а если каких нет — пиши их на птичьем языке. Добавить хэши к ссылкам в url тоже нельзя — иди и меняй все url на image-url при каждом обновлении стилей из сторонней либы.
9. Жесткая архитектура. Чтобы настроить под своё расположение и именование файлов — приходится много плясать с бубном, но многие финты без глубокого погружения в недра вообще не возможны.
10. При формировании спрайтов гадит в консоль каждый раз когда встречает код генерации ссылки на него. Не редко пропускал из за этого «варнинг» о несуществующей картинке или родителе, с последующим расколбасом на странице.
11. Умеет вставлять пробелы между картинками в спрайте, но блин нафига первую прижимать к верху, а нижнюю к низу? Из-за этого везде приходится прописывать дополнительно no-repeat.
12. Есть 1000 и 1 способ как вставить ссылку на картинку из спрайта. И все одинаково неудобные. Ну казалось бы, что сложного в том, чтобы встретив конструкцию «background: url(img.png') 0 0» заменить её на «background: url(sprite.png) 0 -100px»?

Попробовал тут заюзать упоминаемый недавно rework для процессинга css. Не смог распарсить обычный комментарий. В баг трекере есть лишь ответ 4 месячной давности, что дескать либа css-parser валится на коментах и они ничего сделать не могут.
Обратная совместимость? Удобство для тех, кто привык? Цифровая эпоха же! Давно пора отказаться от этой устаревшей десятичной системы и «разложить всё по полочкам». Десятичная система годится лишь для счёта на пальцах, но кто сейчас на пальцах считает-то? Надо всем переходить на шестнадцатиричную систему. А чтобы приставки не плодились как грибы нужно использовать логарифмичекскую шкалу:
1 Nibble = 4 bit
1 KNibble = Nibble^2 = 10 bit
1 MNibble = KNibble^2 = (Nibble^2)^2 = 100 bit
1 GNibble = MNibble^2 = (KNibble^2)^2 = ((Nibble^2)^2)^2 = 10000 bit
1 TNibble = GNibble^2 = (MNibble^2)^2 = ((KNibble^2)^2)^2 = (((Nibble^2)^2)^2)^2 = 100000000 bit
идемпотентсную синхронизацию лучше реализуйте)
И что же мешает сменить LocalPassport на FaceBookPassport во время работы?
Как смержить две вселенные, чтобы Вася не стал шизофреником х)
Столько букав ни о чём. Вообще. Экранируйте данные при выводе и будет вам счастье. Аминь.
Я просто оставлю это здесь: habrahabr.ru/post/99005/

Information

Rating
Does not participate
Location
Ян де нова о-ва
Date of birth
Registered
Activity