А откуда им больше взяться? Я например в живую ни разу минипига не видел. Некоторые даже не слышали о таком, я думаю, что таких большинство. Мне кажется у вас почти пиковый результат для этой ниши.
VoV@, я чет сначала и не увидел, что вы про буковки писали. Даже если хулиган введет циферки в инпут, они все равно прилетят в виде строки. Мои примеры как раз и описывают это.
Я меня был один проект, где заказчик подгонял меня и просил быстрее-быстрее, ставил мне сроки. Я писал код быстрей-быстрей, как он и просил. В итоге это вылилось в несколько месяцев разработки, и поддерживать это теперь будет сложно. Я сделал вывод для себя, кроме того, что не работать с заказчиками, которые подгоняют, никогда не забивать на проектирование, и сначала думать, потом писать. Если бы я посидел и почертил диаграмки пару недель, то в итоге, приложение было бы готово на месяц раньше, и было бы намного качественней адаптировано под всякие изменения.
Да и с тем, что отрефакторить - быстрее, не соглашусь. Отрефакторить изначально продуманный проект, согласен. Но если начать писать сразу и по быстрому, потом это проще переписать с нуля, чем начать что-то рефакторить. Да и в целом, я когда делаю рефакторинг - значаю покрываю тестами ту часть кода, которую рефакторю, а затем начинаю переписывать функцию/метод.
Странная логика, почему 1? Если 'a' - по ASCII в десятичной системе это 97, проинкрементировав (для этого привести к числу), вы получите 98, и конвертнув обратно число в строку, вы получите 'b'. Не знаю как PHP работает с последовательностью сивмолов, но в нормальных языках примерно так и работает - строка это иммутабельный поток int32 чисел (для последнего стандарта utf8, где на один символ может уходить 4 байта). ---------- Добавлено 30.06.2018 в 11:55 ----------
Откройте консольку и посмотрите:
var a = '10'; undefined a++ 10
var a = '10'; a = a + 1; "101"
var a = '10'; undefined a = a -1 + 2; 11
С этим соглашусь. Если у нас colvo пришло в виде строки, то colvo++ в первой итерации приведет сначала к числу и инкремента не произойдет. Если сделать colvo = colvo + 1; Мы можем получить конкатенацию. И только colvo = colvo - 1 + 2 сначала кастанет к числу, а затем инкрементирует изначальный счетчик. Но это песня про убогий дизайн JS.
А ещё круче - использовать Clean Architecture подход, в котором приложение разделяется на 4 слоя:
Entities - бизнеслогика: сущности, методы и функции
Use Cases - логика приложения, взаимодействие entities между собой, управление потоком данных.
Interface Adapters - абстракции для доступа взаимодействия с внешним миром (MVC, MVVM или что-то другое)
Frameworks & Drivers - библиотеки внешнего мира, тут настраивается слой между адаптерами и библиотеками.
При таком подходе, любое изменение слоя затрагивает только один слой, и не более. Поменялась логика взаимодействия - сменили use cases, нашли роутер по производительнее , заменили frameworks & drivers.
Такой подход дает безболезненно заменить базу данных, шаблонизатор, роутер, веб-сервер и вообще что угодно.
А вы сами не пробовали себе ответить на этот вопрос?
Хабр платит за статьи (скорее формальность), пикабу предлагает печеньки. Печеньки не в прямом смысле, а в переносном: запостить пост и получить кучу лайков это один из видов удовлетворения (точно так же, как и употребление сладостей). По этой же причине многие школьники (а иногда и не школьники) бесплатно модерируют форумы и всякие ресурсы, чтобы почуствовать себя значимыми.
Почитайте книжку "Заразительный. Психология сарафанного радио. Как продукты и идеи становятся популярными". Там как раз о том, что делает проекты успешными.
Мой ответ такой: сейчас аудитория разбалована, почти все ниши заняты, и вероятность сделать успешный сайт используя шаблонные решения практически нулевая. Подход должен быть не просто качественный, а нереально качественный. Если речь идет о контенте: нужны не (боже упаси) рерайтеры, и даже не копирайтеры. Нужны люди, которые крайне квалицифированны в вопросе, которые совместно с копирайтером создадут контент, и расскажут о том, чего не знает практически никто. Все кроется в деталях. Некоторые люди это замечают (и оценивают по достоинству), некоторые не замечают, но на подсознательном уровне чуствуют. Есть и те, кому плевать, они обычно читают рерайт пережеванный всем рунетом, сидят на сайтах android-igri-programmi-ska4at.com и хавают все эти баннеры как увеличить pencil до 80 см.
VSCode + примонтированная папка в файловом менеджере.
Да, оно всегда так делает. Я как-то doc в html конвертировал, там тоже мешанина. В итоге, пришлось парсить итоговый HTML и вырезать у тегов атрибуты, а также делать unwrap для тегов span. В итоге, оставались только одни теги p.
Ну а распарсить pdf в HTML с какой-либо вменяемой версткой вряд ли возможно. Где-то видел видео нейронной сети которая верстает с макетов.
Можно попробовать LibreOffice + unoconv, но у меня сейчас на небольшом наборе на зашло. Хотя вот делаю задание, и гоняю презентации в pdf без особых проблем.
Делал так:
#!/bin/bash for f in *.pdf do $(unoconv -f html $f) done;
Не дадут. Если речь идет про обычный сайт и кластер база+приложение, тогда вы упретесь в базу раньше, чем в приложение, и ваша нода с базой будет работать на пике, а нода с приложением в холостую. К этому можно добавить ещё сетевое общение.
Если речь идет про кластер с изоморфными нодами, где в каждой ноде у вас и база и приложение, тогда, во-первых, вам нужно ставить балансировщик, что уже как бы не равноценное сравнение, и шарить сессии, или же обеспечить доступ в рамках одной сессии только к одной ноде. Во-вторых, базу нужно реплицировать, это тоже требует ресурсов. На ноде с 2+ ядрами задачи которые могут тредится, будут тредится. На ноде с 1 ядром, задачи будут выполнятся конкурентно (а не параллельно) + context switch шедулера.
Как правило, кластер начинает выигрывать на 2-х нодах только в том случае, если ноды по мощности не равнозначные. И выигрывает не столько по скорости, сколько по reliability.
И это все не учитывая того, что кластер нужно уметь поднимать и настраивать.
Точно также, как и утверждение что O(n) всегда равно O(n) спустя какое-то время.
Вам надо понять, что MySQL и Apache - это далеко не однопоточные приложения. У MySQL есть пулл-коннектов, каждый запрос обрабатывает оптимизатор на основании накопленной статистики таблицы, и передает выполнение конкретному движку таблиц (например, InnoDB). Более того, многие это слышал впервые, но InnoDB - это KV storage, в нем есть первичные ключи, и хеш индексы, которые работает на часто запрашиваемых первичных ключах у таблиц. И все это... многопоточно!