• 0
    Наверное, в vuex возможно хранить вообще все переменные приложения, но, на мой взгляд, это — неоптимальный вариант. У меня в vuex хранится только критический минимум важных данных, а компоненты имеют свои собственные локальные данные и события. Они более независимы, лучше живут сами по себе.
    Можно же вообще все в одном компоненте написать.
    Простой пример — вызов модального окошка с настройками, которое вызывается из компонента каждого элемента списка и еще откуда-нибудь.
    5 приемов в помощь разработке на vue.js + vuex
  • 0
    На мой взгляд, между глобальными переменными и глобальной шиной событий есть большая разница. По сути, все redux-mobx-vuex это попытки более безопасного использования глобальных переменных. Как только приложение разбивается на локальные компоненты, над ними всегда висит что-то глобальное, что их связывает. EventEmitter — еще один способ связи, довольно безопасный.
    5 приемов в помощь разработке на vue.js + vuex
  • 0
    Проблема масшабирования — главное, с чем нужно разобраться в игре. Поначалу не знаешь, сколько заводов проволоки нужно на сколько заводов микросхем, итд. Но даже когда знаешь все пропорции, зачастую оказывается, что хочешь удвоить производство, а места на заводы/конвееры уже не хватает. Блоки заводов приходится выносить, и все становится слишком сложным.
    Обычно строят центральную шину с основными матариалами, а заводы — ортогонально шине, тогда ряд заводов можно продолжать неограничено.
    Но я сам предпочитаю треугольную расширяющуюся шину. Один конвеер для одного продукта без смешивания. Идея такая:

    image

    Слева направо идут ресурсы, заводы строятся только вверх, ленты конвеера идут 2 через 2 чтобы строить подземные переходы. Отделяешь нужные ветки ресурсов, ведешь наверх, строишь заводы один над другим, результат спускаешь вниз в новую линию.
    Почти все ресурсы строятся не более чем из 4-х компонентов.
    Для самого сложного случая, 4-х компонентов, схема может выглядеть так:

    image

    Ну и полная картинка одной из баз — http://booger.ru/data/2017_07_04/FullSize.jpg
    Игрушка правда уже не новая, сам играл год назад.
    Интересный этюд Factorio: симулятор завода
  • +1
    Отличный материал, спасибо. Особенно согласен в плане взаимодействия с базой.
    Буду ссылаться вместо того, чтобы каждый раз объяснять, почему до сих пор пишу все запросы руками.

    В плане базы я бы сделал акцент на то, что большинство систем работают в основном на чтение (1 запись на 100 чтений). Поэтому простота чтения должна быть обеспечена в первую очередь. Академические нормальные формы, например, отношения many-to-many в отдельных таблицах, должны быть продуманы, нужны ли они вообще в каждом конкретном случае.

    5 копеек про фронт: я бы выделил 3 периода: до jquery, с jquery, с mvvm (knockout/angular/react/vue). Если система не в 3-ем периоде и хочет развиваться, то нужно переходить. Внутри mvvm переход едва ли оправдан — несмотря на различную внутреннюю логику, нет ничего на angular/react, чего нельзя написать на старичке knockout в тех же строчках кода и той же сложности. Новеньким я бы советовал vue.js как последователя, который включил все лучшее от предшественников.

    Фанаты реакт хвалятся виртуальным dom-деревом — мол самые затратные операции — операции с dom, поэтому прослойка, которая фильтрует изменения dom, делает реакт очень быстрым. Однако реакт тоже прекрасно вешается, если не думать. А если думать, то любая универсальная прослойка будет медленнее, чем нативный специализированный код, который не делает ничего лишнего.
    Чек-лист по выживанию сайта
  • 0
    Насчет фото товаров: давно использую технику через background-image и background-size: contain. Мне кажется, она более универсальная — красивее, когда все фотки квадратные, даже если оригиналы вытянуты (предпочтительнее сцентрировать и обрезать выступающие за края части а не вписывать прямоугольники). Типа https://jsfiddle.net/kasheftin/avqdpsgs/. Тег img имеет opacity:0 и нужен только чтобы фотку можно было потащить мышкой.
    Верстка интернет-магазина: список товаров
  • 0
    Черепашки-ниндзя прикольные:)
    Художественный подход к загрузке изображений
  • 0
    Мне одному не хватает нормальной реализации group в консоли с возможностью дописывания? Чтобы разные части системы могли писать в свои группы не смешиваясь.
    Справочник методов console в JS
  • +1
    Спасибо за материал, особенно за after в биндинге для форматирования и пример использования extenderов. Я тоже пишу большие приложения на нокауте, однако совсем не использую примеси и наследование. Пугают большие единые монолитные объекты намешанные из кучи всего. Обхожусь небольшими моделями с обвязкой, которые называю виджетами, и которые общаются друг с другом через eventEmitter. Ошибки в одном виджете меньше влияют на всю систему, чем ошибки в общей примеси. Несколько человек могут писать свои виджеты одновременно в одной системе. Если интересно — github.com/Kasheftin/ko-widget — реп с движком, на котором работают мои последние проекты.
    Мысли вслух о разработке javascript-приложений на примере небольшого Line Of Business фреймворка
  • 0
    Что требуется от серверной части? Она сейчас есть в виде одного файлика api.php, который сохраняет и выдает сохраненные маршруты (сначала сохранение маршрутов было в localStorage, но потом понадобилось работать с маршрутом с разных компов).
    Планирование автопутешествий на базе google maps api
  • 0
    Все верно. И, конечно, главное — гугловый поиск мест и прокладка маршрутов, а все мое — удобная обвязка, чтобы их смотреть.
    Планирование автопутешествий на базе google maps api
  • 0
    Это — «советчики и путеводители» путешествий. Далекие от совершенства, судя по тому, что на всю Словению там 3 достопримечательности.
    Мой проект — скорее «редактор и рисователь» по карте.
    Планирование автопутешествий на базе google maps api
  • +1
    Насколько мог, настолько сделал. Следуя вашей логике, не существует ни одного бесплатного опенсурсного текста и кода, если он был написан с использованием нотепада под виндой, поскольку винда не бесплатна и не опенсурсна. Касательно своего кода — ничего не закрывал и не ограничивал.
    Планирование автопутешествий на базе google maps api
  • 0
    Маршрут другой, а приключения порой похожи:)
    Планирование автопутешествий на базе google maps api
  • 0
    Этой — нет, конечно:) Я бы рассматривал эту штуку как некий редактор, с помощью которого можно набросать рисовать по карте. В дальнем путешествии то что на интернет, и на электричество лучше особо не полагаться. Я обычно распечатываю все контакты всех кемпингов перед путешествием.
    Планирование автопутешествий на базе google maps api
  • 0
    Прошу прощения, откуда эта информация?
    Как инвестировать $100 000 в собственную карму (часть 1)
  • 0
    Как-то решили вспомнить былое на даче и вытащили денди. Блок питания не нашли, но автомобильный аккумулятор вместо него отлично подошел.
    Как воплотить в жизнь мечту детства и запрограммировать что-нибудь для Dendy
  • 0
    Шутка в том, что разница набегает из-за внедрения отладки. Пока ее нет, в том коде, что в статье, разница едва ли будет заметна.
    Быстрые треки на google maps
  • 0
    Leaflet для векторной графики по умолчанию использует svg, то есть не подходит для анимации. Лефалетовский канвас для анимации тоже не подходит, причина в тормозах при перерисовке слоя. OpenLayers не знаю. Но вообще у меня сомнения, что существует решение из коробки, которое отрисовывает треки быстрее, чем мой код. Большинство приемов не зависит от движка: канвас все равно создавать самому. Рисовать — тоже самому. Следить за перерисовкой. итд.
    Быстрые треки на google maps
  • 0
    Мда, код еще тот. Вдогонку:

    Определитесь с тем, насколько универсальным ваш код должен быть. Синглтон по надобности — одна из последних вещей. Если предполагается встраивание вашего кода в какой-то внешний неизвестный код, то первое, что надо — оборачивание всего этого добра в локальный контекст. Смотрите require.js. Второе — destroy-метод. Наподключали обработчиков, а убирать за собой кто будет?

    Половина кода — jquery-навешивание обработчиков на глобальный dom. Если код претендует на универсальность, это нужно убрать.

    Бэкбон здесь на мой взгляд излишен — это одностраничное приложение без роутинга и особого контроллера. Берите knockout.js.

    Для удаленного редактирования файлов посмотрите в сторону sshfs.
    Делаем «mindmap» на Javascript с локальным хранением в базе данных браузера
  • 0
    Суммарное число пунктов выросло до 13, и идея потерялась в них окончательно.
    Сервис в качестве картинки-донора грузит фото из google images. Я всего лишь предположил, что неограниченным источником неинтересных разных изображений может служить поток с вебкамеры. Или вебкамер. Эдакий сервис «дай мне скучную фотку», который имеет список линков на несколько тысяч живых вебкамер по миру и отдает случайный кадр с одной из них. Это несоменно проще, чем принуждение пользователя делать снимок камерой (которая у него не обязательно есть вообще) на КАЖДОЕ сообщение (данное требование присутствует в третьем пункте Вашего списка).
    DarkJPEG: cтеганография для всех
  • 0
    Ваш список из пяти пунктов несомненно проще, чем поток с камеры.
    DarkJPEG: cтеганография для всех
  • 0
    Генератором осмысленных картинок наверное может быть поток с вебкамеры, направленной на улицу на дерево что-то еще постоянно меняющееся?
    DarkJPEG: cтеганография для всех
  • +6
    Не, не так. «Террористы пронесли в салон самолета мини 3D принтер, в салоне распечатали оружие и угнали самолет».
    Пистолет «Освободитель»: 100 тысяч скачиваний за двое суток
  • 0
    На сервер сайде много всего. Само собой, площадка имеет доступ к базе сети через api. При публикации контента, специфичного сайту, площадка отправляет в сеть сниппет, который появляется в лентах друзей пользователя. Кроме того, некоторые блоки сети могут быть запрошены через api и отданы страницей сайта как статичный html.

    Меню нужно чинить.
    Пишем сложное приложение на knockout.js — 2
  • 0
    Какие либы вы готовы грузить чтобы его использовать? Грузить нокаут ради одних только окон мало кто захочет. Можно конечно все на jquery переписать, но там нет ни одной идеи. И тогда уж стоит взять за исходник оригинальный js от бутстрапа и допилить что требуется, он вполне здраво написан.
    Пишем сложное приложение на knockout.js — 2
  • +1
    Для PHP есть PHPQuery, она поддерживает как xpath, так и селекторы в стиле jquery. Это если кто-то пишет парсеры на php.

    Насчет админки — все понятно, тоже с подобной структурой работаю, только у меня еще правила бывают вложенными. Т.е. товары из разных категорий имеют разные правила для определения своих свойств. Это полезно, к примеру, когда парсишь базу автомобилей, и там встречается множество модификаций моделей авто, и их практически нереально сопоставлять без знания, какая же у авто модель. То же самое с базой недвижимости по мелким городкам Европы — гораздо проще сопоставить город, если уже известны страна и регион.
    Парсинг сайтов-магазинов. Личный опыт и немного how-to
  • 0
    Почему в видео границы четырехугольников рисуются прямыми? Если это геодезические, в проекции на круг они должны быть дугами. С математикой-то все ясно, а вот когда вы пишете, что ничего интересного не осталось, как раз непонятно. Что такое планер? И зачем было выходить за евклидову геометрию, если остались те же четырехугольные клеточки. В чем разница, кроме того, что в углу встречаются не 4 а 5 клеточек?
    Жизнь на плоскости Лобачевского
  • 0
    Только при обращении к самой observable, видимо? Потому как пока она не вызвана, не построено дерево, и мы не знаем, от чего она зависит.

    Иногда бывает, что какая-нибудь конструкция никак в голове не уложится. Т.е. есть дерево зависимостей, по нему быстро определяется, какие computed нужно пересчитать при изменении observable. А сам computed — это что-то такое:
    ko.computed = function(callback) {
    var IAmInComputedObservable = true;
    var computedObservableUniqId = ...;
    callback();
    }
    И вызывается код, который в computed-переменной. Последний обращается к какой-нибудь observable, а та видит переменную IAmInComputedObservable, и это значит, что ей нужно достроить дерево зависимостей из нее на compuedObservableUniqId. И почистить которых нет. Такой смысл?
    Ключевое отличие AngularJS от Knockout
  • 0
    Спасибо за статью. С angular вроде все ясно. По тику пересчитывается все и готово. А вот как в ko работают dependent observables, до сих пор загадка. Они там умные, к примеру
    this.computed = ko.computed(function() {
    if (this.var1()) return this.var2();
    return 0;
    },this);
    — в этом коде, если this.var1() == false, computed выражение не будет пересчитываться при изменении var2(). У вас есть идеи, как dependency tracking работает, в чем идея?
    Ключевое отличие AngularJS от Knockout
  • 0
    Эх жаль не застал это в 239.
    Lego представила Mindstorms EV3
  • 0
    Осталось добавить, что работа не только наемная, но и московская. В Восточной Европе, да и в Австрии полторы тыщи евро на руки — фактически потолок (по рассказам дальше сильно растут налоги). Чувствительно, потому что как человек, переехавший один раз, имею мало привязанностей и держу в голове новый переезд. С нуля со всеми формальностями сталкиваться не хочется, надо много сил.
    Эмиграция в Польшу как студент либо как фрилансер
  • 0
    ПМЖ нужно однозначно. Просто у вас проскочила фраза про гражданство. Мне это чувствительно, потому что внутри страны, которая дала пмж, твои права почти не отличаются от прав гражданина. Хоть закрывай фирму и становись на биржу труда. Однако выехать из нее в другую страну и работать без получения разрешения могут только граждане ес, но не пмжшники, потому что эти между-страновые европейские законы формулировались в терминах именно граждан до недавнего времени. То есть не получалось пересидеться в дешевой стране до пмж, чтобы потом ехать дальше с гражданскими бонусами.
    Эмиграция в Польшу как студент либо как фрилансер
  • 0
    Да, из Москвы 3 тыщи, на месте уже в 2 раза меньше, а если грамотному знакомому на руки, и того меньше. По сути это 3 раза сходить по разным инстанциям с интервалом в неделю.

    Нужность гражданства — скользкий вопрос. Сейчас довольно быстро меняются законы, появился статус «долгосрочного жителя страны — члена евросоюза» (т.е. пмжшник ЛЮБОЙ страны), и в некоторых странах этот статус близок к статусу гражданина. Т.е. пмж вроде как хватает.
    Эмиграция в Польшу как студент либо как фрилансер
  • 0
    Это значительно надежнее, чем фиктивная работа по найму и дешевле чем бизнес-инкубатор за 100 евро каждый месяц.
    Дорого — это миф. Это из Москвы через фирму вам накрутят с внж под ключ по 3000 евро на нос. В то время как по сути это почти бесплатно (стандартные пошлины).

    Дорого — бизнес иммиграция в Хорватию или Болгарию (где нужно трудоустроить 10 местных).

    У вас смешаны две вещи в одном предложении. Если дорого, то о какой фиктивности может идти речь, если вы сам себе платите зарплату и с нее налоги в пенсионный (в Литве со ставки как раз 100 евро налогов)? А вот если совсем бесплатно, то фирма нулевая (но не фиктивная). Но последнее совсем не дорого.

    Но у вас есть голова на плечах, планируйте заранее. Я открыл google adsense аккаунт на фирму и перевесил коды на одном своем сайте, те 100 евро, что на него капают, закрывают вопрос о фиктивности.
    Эмиграция в Польшу как студент либо как фрилансер
  • +1
    Планка именно на доходность или на оборот? И эту планку учитывает именно миграция при продлении внж? (Прошу прощения, мельком в google translate не нашел в тексте закона). Нужно быть готовым.

    Пока в Литве и Словении такая ситуация. Есть два управления с чиновниками. В одном сидит налоговая. Им важно, чтобы фирма платила налоги и сдавала отчеты. Ты сдаешь отчеты — значит фирма работает. Но им пофиг на то, что отчет нулевой. И есть миграция. Ей нужно основание для того, чтобы оставить тебя в стране. Они видят отчет, а значит фирма «работает».

    Меня однажды вызвали в миграцию насчет очередного нулевого отчета. Пришел, показал справку о том, что мои дети ходят в местный детский сад — а, все, без вопросов. Т.е. политика миграции направлена против фиктивных и нелегальных жителей и тех, кто получает внж ради безвизовой Европы.

    А ты реально живешь в стране, дом имеешь, медицину имеешь, дети в саду, денег не просишь, продукты кушаешь, деньги тратишь. Непоняток с доходами но они с дуба не рухнули из-за этого выгонять.

    И вообще фрилансерство обгоняет законодательство. Пока что.
    Эмиграция в Польшу как студент либо как фрилансер
  • +1
    Ох и хитро же.
    Не верится, что Польша сильно отличается от Словении или Литвы, и в ней нет нормального пути для иммиграции.
    Имею ввиду обычную бизнес-иммиграцию. Открыли фирму. UAB, DOO, limited company или как это по-польски. Это в обычном случае. В случае фрилансера подойдет с неограниченной ответственностью — individuali įmonė, družba z neomejeno odgovornostjo, private company или как это по-польски. Это чтобы себе зарплату не платить (и с нее налоги). Неужели такого в Польше нету???

    Ну и дальше тоже обычно. Подали на внж, пока рассматривается получили бизнес-визу на 3 месяца. Едете, ждете решения. Платите ~30-50 евро и имеете страхование здоровья как у местных (прописываетесь к любой больнице). Дети — бесплатно, на основании ваших платежей.

    Годовой отчет в налоговую — 100 евро бухгалтеру. С ним продляете внж. Первые два года без вопросов можно сдавать нулевой отчет.
    Эмиграция в Польшу как студент либо как фрилансер
  • +1
    Я бы-таки в фоне несложным javascript-ом генерил случайный фон, пример — maze.ragneta.com/. Кому как, а мне накладывать две текстуры и думать об кратностях их сторон сложнее, чем уложить в голове одну простую рекурсию.
    Создаём сложный лабиринт в фоне веб-страницы