Вы видите копию треда, сохраненную 3 октября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.
Часто задаваемые вопросы:
https://github.com/xxxwww/js-thread/blob/master/Wiki/faq.md
Список материалов для изучения:
https://github.com/xxxwww/js-thread/blob/master/Wiki/learn.md
Список инструментов и направления JS-разработки:
https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md
Конфа /pr/ в Slack:
https://invite-me-to-2chpr.herokuapp.com/
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Сейчас по долгу службы пилю сайт на чистом HTML/CSS.
Поясни, чтобы туда добавить немного вебдванольности, аякс там, всякие динамические контролы, нужно ли глубоко забуриваться в JS? Или достаточно освоить TypeScript?
Вебдваноль - это когда пользователи наполняют сайт, а не анимации на жабаскрипт.
Да и какой у тебя будет ажакс на статичном сайте?
>нужно ли глубоко забуриваться в JS
>Или достаточно освоить TypeScript?
Капец у вас каша в голове...
(MySql, Express, Vuejs)
Понятно, что это делается аяксом. Не понятно вот что: после document.ready контроллер посылает запрос серверу, ответ представляет из себя json, который обрабатывается на контроллере и сохраняет в переменной cells массив, где каждый элемент представляет собой объект, а любой из объектов представляет строку в таблице; после изменения в редактируемой ячейки значения новое значение заменятся в cells на старое, значение в html становиться старым.
Я не понимаю как после изменений в переменной cells изменять значения в html?
Ну так когда редактируешь, должно просто остаться новое значение. Если пришлел код 200 с бекенда всё ОК, если 4/5xx - вернуть старое значение (либо не вернуть). Примерный паттерн:
[code]
user.name = 'loh'
render()
//...
user.save()
.fail () => {
user.name = user.$cleanSnapshot.name;
render()
// и/или
alertService.error 'Error has been occured. Try again later.'
}
[/code]
> Ну так когда редактируешь, должно просто остаться новое значение.
Я и редактирую. Проблема в том, что новое значение в html не появляется до первого обновления страницы.
А как клиент должен узнать о изменениях? Такое через вебсокеты делается
Можно-ли, с точки зрения нормального кода, отправлять кастомный statusText?
Т.е. не
> response.writeHead(200 /, 'OK' /);
, а какую-либо другую строку:
> response.writeHead(200, 'Yeah');
. Покопался в исходниках Node.js, там всё это разрешено (по крайней мере в модуле http, в его родителей не заглядывал).
Так вот. Нормально-ли это в плане архитектуры и вообще можно-ли так делать?
Если ты нормально пишешь код (а JS это ещё как позволяет), и пишешь его только для себя или пилишь очень очевидные фичи - комменты не особо-то и нужны.
А так, есть же автоматическое построение документаций, для самых ленивых.
Нужно задокументировать, какие параметры принимает функция и что возвращает. Есть ли что либо на подобии таккого:
[code]
/
Function takes input and return output
@param integer hui for example 21 (sm)
@return string
/
function pizda(hui)
{
return 'child'
}
[/code]
Вот что то такое есть в жаваскрипте?
> А как клиент должен узнать о изменениях?
В экспрессе по средствам responce.
Я нашел из этого выход - это location.reload(), но этот вариант для меня не подходит: прежде чем подгрузить данные с сервера и отрисовать страница сайта пуста секунд 5, т. к. данных в перспективе собираюсь выводить большое количество.
Может еще что-то можно сделать.
Я не понял: ты хочешь, чтобы Клиент1 как-нибудь узнал об изменениях в базе данных, которые внёс Клиент2?
Периодически отправляй запрос, как обновление треда на Сосаче. Или ебашь long poll - это уже исходя из того, где тебе удобней таймеры делать.
Примерно так это и выглядит.
Но обычные комменты - лучше. Такие как у тебя обычно используются больше при всяких сжимателях кода.
> > А как клиент должен узнать о изменениях?
> В экспрессе по средствам responce.
Ты не совсем понимаешь как работает интернет. После ответа клиенту, сервер уже ничего не может отправить.
А тебе нужно уведомлять клиентов о изменении в базе данных, правильно? Значит сервер как-то должен связаться с клиентами, это делается через сокеты.
Таки что?
ШТО?
>>835904
Блин, ты когда редактируешь, ты можешь сразу значение подставить в html то, которое юзер ввел. Если скорость реакции UI не принципиально, то дожидаешься ответа сервера на запрос обновления имени (в идеале должен придти объект целиком, либо просто ОК 200) и обновляешь html (обновляешь коллекцию и перерендеришь).
>>835958
Стандарт не запрещает, но смахивает на какое-то колдунство и изобретение велосипедов. Есть такие штуки, как (JSON-)RPC, REST, в которые можно класть мета-данные.
https://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html
В-нулевых, описание функции можно сделать на строке декларации, после скобки: строка 1.
Во-первых, пиши нормальный код. Проверка на численность `hui` и выбрасывание ошибки с текстом - лучше всякого комментария, как по мне: строки 2-3. Если не хочешь кидать ошибку, значит, типизация там нахуй не нужна.
Во-вторых, даже если у тебя идут охуительные вычисления хуй - можно просто закомментить тип где-нибудь: строки 5 или 7.
А вообще, я против таких >>835980 комментарием - слишком уж код раздуваю, да и, по-моему, проще понять значение по имени переменной или коду, чем искать описание в таких ебанутых комментах.
И да, чот проебал, там должен быть TypeError. Но пока-что и просто Error сойдёт, для наглядности.
Клиент один. Данное приложение рассчитано для использования на одной машине. Возможно на этой же машине будет и БД, возможно на другой, но это не так важно.
>>835983
Наверное, я попробую твой вариант с сокетом, по крайней мере я с ним еще не работал и адекватно судить нужен он или нет не могу.
А чем плох вариант с записью данных с сервера в переменную, эту переменную использовать для заполнения таблицы и при редактировании посылать серверу запрос на изменение в нужном месте и менять в нужном месте данные в переменной?
>комментарием - слишком уж код раздуваю
*комментариев - слишком уж код раздувают
Фикс.
>>835995
А в чём проблема присылать JSON в response, блять? Клиент1 изменил значение, новое значение (возможно, изменённое и профикшенное на сервере) возвращается в JSON.
Я так и не пойму чего ты хочешь.
> Блин, ты когда редактируешь, ты можешь сразу значение подставить в html
Если бы я использовал jquery, то так и делал. Но я работаю с vuejs.
Может вам код скинуть, чтоб понятнее было?
> А в чём проблема присылать JSON в response, блять?
Я так и делаю. Проблема в том, что значения в html не меняются.
Посмотри здесь >>835785
Кидай код.
Было-бы в HTTP какой-нибудь Updated или ошибки для загрузки файлов - юзал-бы.
Но спасибо за ссылку, лучей добра ^_^
А теперь главный вопрос: как при помощи Angular/VueJS поменять значение в ячейки на отредактированное если таблица заполняется по средствам директивы ng-repeat(или аналогичному v-for)?
http://jsbin.com/xujatodufi/1/edit?html,js,console
В поле для js-кода и скрипт контролера и сервера.
Вряд ли на jsbin'е взлетит, у меня работает.
А у тебя обработчик получения этого ответа-то есть, который значения в html и изменяет?
Я не знаю как изменить. Точнее, я не знаю взять нужную ячейку.
inb4: задай класс/ид.
Смотри html http://jsbin.com/xujatodufi/1/edit?html,js,console
Точнее как получить доступ к mongodb (который уже подключен) как объект называется?
К примеру я хочу получить коллекцию юзеров в контроллере - как к ватерлайну обратиться?
Ты ебанутый? Какое нахуй приведение к цифре?
А если hui == 0 ? А если hui == '0' ? А если hui == '15213' ?
Дебил, блять, откуда вы лезете, сука?
Ничего не понимаю… И это программисты. Говно какое-то, пидоры, блядь. Стандарт им дал проверку типа — проверяй, проверяй тип! Блядь... Не хочу, хочу жрать говно! Что такое? Это программирование? Это программирование?! Суки. Мудачьё. Пограмисты! jQuery нацепили, говно жрут — пидоры, блядь, ёбаные…
> А вообще, я против таких >>835980 комментарием - слишком уж код раздуваю, да и, по-моему, проще понять значение по имени переменной или коду, чем искать описание в таких ебанутых комментах.
Такие комментарии просто необходимы для проектов, где больше двух разработчиков. Да и удобно их юзать для генерации документации, загугли jsdoc
Я писал выше, что генераций документации и всякие сжиматели кода - другая тема, вот там они действительно нужны.
А так.. даже такой проект как NodeJS обошёлся, по большей части, такими комментариями, как я показал в >>835991 и >>835992, лол.
Я уже половину документации сейлса и всю документацию waterline пересмотрел - нет ни одного примера как к этой хуйне обращаться.
Если знаешь - скинь пример как в AdminController получить доступ к экземпляру (или объекту который работает с монго), если нет то к чему про документацию пишешь?
У тебя уже есть там доступ ко всем моделям, в любом контроллере и сервисе. Просто, без задних мыслей делаешь Модельнейм.find() и всё
Смотрю список литературы. Я так понимаю, что некоторые источники взаимозаменяемы. Например, JavaScript: сильные стороны и learn.javascript.ru (и, возможно, Выразительный JavaScript). Подробное Руководство вообще похоже на справочник, его нет смысла тупо читать от корки до корки, лучше заглядывать время от времени а еще лучше на MDN. Короче, суть вопроса: назовите минимум книг, которые нужно прочесть, перед тем как браться за Angular/React?
inb4: букварь, учебник русского языка
надо переписать пример своими руками, поизменять, походить вдоль туда-сюда, плюнуть и забыть. а потом проснёшься, вспомнишь и будешь уже примерно чувствовать как оно там всё работает
Погуглить статейки на тему. Мне лучше идет, когда изучаю по нескольким источникам. На одном затык - через другой понял, сделал, пошел дальше.
В Json не должно быть функций.
YDKJS
Всё, разобрался, спасибо
Думаю тебе Jquery хватит.
Это норма.
>>835785
Не тред, а помойка
Ээ блет
Год не писал на JS. Как новости? React все еще топчик?
помогите
https://bitbucket.org/user723142/video_organizer/src/7e659b92d918255e9e1addbebd42560bac5c95d4/src/main/webapp/static/main.js?at=master&fileviewer=file-view-default#main.js-36
делается аппенд
$('#main_table').append("<tr>"
затем я хочу повесить онклик.
ОН же должен навешивать онклик и на новые элементы тоже
поясните почему не навешивает
Реакт и первый ангулар монополисты. Потихоньку из-под шконки вылезает vuejs со вторым ангуларом
> ОН же должен навешивать онклик и на новые элементы тоже
Нет, не должен. Ты навешиваешь этот листенер на конкретные элементы. Вешай его на боди, если хочешь отслеживать динамику, и не вешать при этом на каждый элемент по отдельности.
$("body").on("click","#main_table tr",function() {
// . . .
});
10 из 10 господи
поясни ещё
вот тут в цикле делается аппенд, на каждую строку навешивается скрипт с полем для тегов
https://bitbucket.org/user723142/video_organizer/src/d226e1d90991d764f68550c14482095a1577c137/src/main/webapp/static/main.js?at=master&fileviewer=file-view-default#main.js-26
проблема в том что в таблице 3000 строк, и страница загружается 60 секунд.
есть ли какой-нибудь лейзи лоад для навешивания этого скрипта? как сделать так чтобы он не тормозил загрузку страницы?
Так не грузи одновременно 3к строк, вот тебе и лези лоад. Подгружай по 2 экрана, например, и при переходе на второй экран подгружай третий и тд. Экраны - это фиксированное число строк, просто я не знаю какой они у тебя высоты
мне нужно чтобы было всё на одном экране
вот пример
без поля с тегами грузится за пару секунд.
делить на страницы не вариант вообще
> мне нужно чтобы было всё на одном экране
Зачем?
Вангую, что для поиска. Сделай поиск на сервере
>>836378
ну пиздец, так вот ты о чём:
при прокрутке посылать запрос на сервер за очередной порцией строк?
я думал ты предлагаешь сделать пагинацию, где мышкой цифры жать.
посоветуешь какой-нибудь умный скрипт чтобы без пердолинга сделать это?
Ну да, инфинити скролл, вся хуйня
> посоветуешь какой-нибудь умный скрипт чтобы без пердолинга сделать это?
Я этот юзал обычно: http://jscroll.com/
годно, я даже удивлён что кто-то адекватно советует
добавил в вики в ТУДУ, когда-нибудь я это обязательно сделаю!
[x,x+1,x+2].forEach(console.log)
Почему это не работает?
Что не так?
Слушай, я ньюфана, но увидел это у флэнагана, забил в фидл и в кодпен и нихуя не получается, вот и спрашиваю объяснение
language_rus.first = [function func() {console.log('Функция №1')},'1','21', '31', '41', 'клик'];
Подскажите пжалуйста как вызвать функцию func.
language_rus['first'].func() не работает(
let obj = {self: function() { return this; }};
obj.self() // возвращает obj
let self = obj.self;
self() // возвращает некоторый глобальный объект
Когда ты вызываешь obj.self(args), obj передается в качестве this функции obj.self.
let pew = {};
let self = obj.self.bind(pew);
self() // теперь возвращается pew
Я натыкался на такие конструкции c bind'ом:
> [1, 2, 3].forEach(console.log.bind(console))
Но как по мне выглядит не очень, уж лучше forEach(x => console.log(x)).
language_rus.first[0]();
Я ньюфаня и как же я охуел сейчас от счастья, что смог правильно ответить.
Cannot read property '0' of undefined
Я тоже совсем ньюфаня, буквально второй день что-то читаю.
Перебрал кучу вариантов - ничего не работает(
Ты забыл
let language_rus = {}
language_rus.first = [function func() {console.log('Функция №1')},'1','21', '31', '41', 'клик'];
forEach передает коллбеку 3 аргумента:
собственно сам элемент, его индекс в массиве и сам массив целиком. Поэтому и выдает вот такое:
А 1 и 6 строка как бы у тебя выглядели?
Да, всё такое-же говно.
А что он делает-то? Массив сортирует по числовым значениям? Тогда
> array.sort(function(a, b) { return a-b; });
, лол. Или тебе вручную переписать обязательно и нельзя нативными методами?
Вот же: >>836621, если тебе нужен результат и ты не знаешь как это сделать.
Если тебе нужен именно код - так и скажи, сейчас накатаю.
Вот. Это если тупо изменить оригинал, без учёта контекста контекста, методов JS и пр.
Нет, лол. while - бесконечный цикл если 3й элемент A больше всех остальных.
А, стоп. Я кое-что проебал. Ща профикшу.
Вот и я не пойму, как понимать пример из книги про алгоритмы. Меня больше смутило А[i+1]. В JS разве так можно?
>А[i+1]
Нет, это в JS можно. Простой доступ к элементам.
Исправленный код - пикрелейтед. Но я всё ещё не понимаю что за хуйня там творится, т.е. вообще. Какая-то лютая дичь, тестам не поддаётся. Хотя кто знает - может, я просто не умею нормально переписывать коды.
А у тебя вообще в for j=1, когда в учебнике 2. Есть ли смысл читать дальше, когда 2 главе проблемы.
В js массивы начинаются с 0, в твоей книжке по алгоритмам с 1. Это не такая уж и проблема.
Можешь взять вместо js какой-нибудь другой язык, где массивы начинаются с 1.
И в правду.
Пытаюсь разложить твою эрроу фанкшн на нормальный вид.
https://jsfiddle.net/f8v2LLLo/5/
Правильно?
Да.
Я так понял, в алгоритме j увеличивается автоматически, как в JS'ном for..in, так что… Иначе какой смысл тогда вообще в цикле?
Да, автоматически.
очень просто:
import Youtube from 'youtube-api'
let api = (
<Youtube channel="здесь id канала"/>
)
api.video.getList()
нахуй они нужны эти наркоманские сафари и ие(эдже?)
я про нормальные браузеры говорю
недавно столкнулся с пидорской чертой сафари - она не передаёт при ajax запросе в хедерах куки, если эндпоинт на "/" заканчивается
то что все остальные нормально хавают, она тупо молча отказывается передавать куки. ладно бы ошибку какуе-то выбросило, но это же пиздец!
Так и задумано же. И, кстати, правильно задумано.
<Component>
__<SubA />
__<SubB />
__<SubC />
</Component>
В самом Component'e делаю мап по массиву this.props.children (или {children} из аргумента функции) и... НИХУЯ! Реакт ругается на то, что массив состоит из объектов, что невалидно.
Как я заебался с ним бороться. Причем, пробовал по-разному:
- и так <Component children={[<SubA />, <SubB />, <SubC />]} />
- и так <Component children={[SubA, SubB, SubC]} />
один хуй - ругается и все.
Один субкомпонент рендерится отлично, несколько - на отрез отказывается.
Помогите, пожалуйста. Понимаю, что антипаттерн, но очень хочется динамично добавлять субкомпоненты.
Если это имеет значение - Component чистая функция, которая возвращает разметку, а Sub-компоненты - классы React.Component.
И файлы мне-бы не сохранять, а хранить в переменной. В клиентском JS это возможно благодаря Blob, которого, насколько я знаю, в Ноде нет.
Ещё были вариантом всякие Buffer'ы, но тоже не до конца разобрался.
В общем, поясните мне про парсер, а также про Blob и Buffer в целях хранения файлов.
Зачем тебе вручную, если наверняка есть десяток пакетов, которые за тебя это будут делать?
Например:
https://www.npmjs.com/package/multiparty
И, конечно, же ты можешь посмотреть в сорцы, чтобы посмотреть, как другие люди парсят.
Так, блять, не делают, поехавший. Каждый компонент должен иметь свои зависимости.
Я думаю доосилить его учебник на сайте и взять сразу курс по ноду, как думаешь, хватит этих знаний чтобы комфортно себя на курсе чувствовать?
Да, вполне. У него же учебник как вводная к его курсу, а дальше он все углубляется и углубляется.
>>836991
>Так, блять, не делают, поехавший.
Может, станет понятнее, какой результат я ожидаю получить. Я использую либу UI компонентов MUICSS. Хочу сделать родительский компонент, представляющий собой табы (пикрил №1), а панели под этими табами передавать произвольно дочерними компонентами.
Ничего же криминального? Хотя бы не в рантайме, а на этапе разработки.
Сейчас решение "в лоб" просто передавать ссылки на дочерние компоненты пропсами, как на пике №2.
То, что делал, и не получалось, на пике №3.
Собственно, еще раз вопрос, можно ли обработать массив дочерних компонентов в родительском? Или это не только bad practicles и антипаттерн, но и невозомжно в принципе?
Спасибо. А то брать его курс по js/dom слишком дорого, и кроме третьей части ничего особо не увлекло
На пике 3 ты нихуя не возвращаешь из map. Либо убирай фигурные скобки после фэт эрроу, либо добавляй return.
Спасибо, анон, за помощь, но я уже видел эти топики на стаке.
У меня синтетические компоненты экспортируются как default.
Импорт без фигурных скобок, соответственно. Но на всякий случай попробовал через старый добрый реквайр с указанием default. Тот же результат.
Пробовал и спец утилы из состава React.Children.* (toArray, map) чтобы шаманить над {children}, и пробовал сделать из родительского компонента не просто функцию, но полноценный класс с принудительным рендерингом - ничего не помогло.
Даже когда дочерние компоненты - не синтетические, а натуральные элементы DOM - т.е. передаю только <div>A</div>, <div>B</div>, <div>C</div> - сразу в ошибку уходит. На пикрилейтеде - обрабатываемое дерево компонентов в контейнере.
Собственно, все танцы с бубнами вокруг родительского <Buttonbar>.
Раньше даже самые влажные фантазии удавалось реализовать на Реакте, а сейчас уже нет. Старею, вестимо, или совсем извращенцем стал.
В эдже тоже работает.
Так что мозилловское поведение как видим будет исправлено скоро (c 50 версии), а там может и сафари подтянется если в нем тоже не пашет (проверить сейчас не могу, ибо не мак)
Подводные камни для шестерки? Я вижу, что она станет лтсной в октябре.
Я знаю, поверь. Я посмотрел минимум 5 разных парсеров, но всё не то. Везде оверинжиниринг, а ещё просто ебанутый код.
Да и все хранят присланные переменные во временных файлах.
Двачую, кстати.
У меня на локалхосте 4.5.0 не сохраняла файлы, попросту их ломала. Вот после этого окончательно бросил
({hui})
Методом тыка получилось, что переменная hui как бы расшаривается в область видимости функции. И все?
node.js — http://pastebin.com/nntaR1Ka
В ФФ и Хроме работает нормально (и мп4, и вебм). В сафари (9.1, El Capitan) вебм вообще мимо пропускает, а мп4 с сервера запрашивает, но ничего не отображает, висит на постере, даже не понятно, грузит он что-то или нет. При этом тут https://www.w3.org/2010/05/video/mediaevents.html видео нормально играется.
(В хроме, конечно, перемотка не работает, но это из-за accept-ranges: none, если bytes поставить то всё ок, хотя и ломается всё, т.к. сервер-то не поддерживает). Ну а лиса вообще может без каких-либо хэдеров или тегов нормально видео играть, каким бы хером его сервер не выдавал.
Есть слитый видео курс ITVDN по react'у, но по качеству не скажу. Но для начала думаю точно сойдет
Нет, там зашквар какой-то
Если да, как максимально быстро влиться, что почитать посоветуете?
Пришло задание на страницу с большим количеством разных графиков. Хочу прокачаться, не хочу опять делать через chart.js.
d3 библиотека визуализации данных (манипуляции абстракциями svg/canvas).
Чтобы рисовать графики, с тем же функционалом что есть из-коробки в различных библиотеках отрисовки графиков (масштабирование, интерактивность, итд итп), тебе прийдется пройти большой путь. Есть библиотеки надстройки, упрощающие задачу, т/е к написанию еще одной такой ты и придешь, когда надоест из кирпичиков -примитив собирать очередной график.
И встает вопрос - зачем тебе эта лишняя работа?
Если все же решишься на получение компетенции
есть курс
https://www.udacity.com/course/data-visualization-and-d3js--ud507
есть книга
http://www.spatialcapability.com/Library/FOSS4G/Data Visualization with D3.js Cookbook.pdf (и до кучи еще)
Вообще же, прикладные программисты копошатся на уровне angular-nvd3 итп
Что там где чо делается?)) Ты программировать собрался или фигурки рисовать? Как ебашили всё pngшками в энтерпрайзе так и будут ебашить ещё лет 5. SVG конвертацию во первых не поддерживают все граф.редакторы до 2015 года, во вторых поддержка браузерами ещё не устоялась. В третих эта ебля с анимациями НУЖНА только если тебя наняли за значительную сумму и заказчик понимает что это ему действительно нужно. Либо какой то специфический проект. К программированию это почти не относится, только к выебонам на codepen.io.
Вроде понемногу начал вливаться, но вот вопрос созрел такой:
Изменение отображения в mobx триггерится при обращении к наблюдаемым данным. Здесь все четко, если компонент выводит <component>store.mokroPiska</component>.
Но как быть, если отображение данных в компоненте НИНУЖНО, а необходимо эти данные передать в другую жс либу (отрисовываю графики при помощи Plotly)?
Пока через задний проход нашел решение в 'render' компонента запрашивать store.mokroPiska, что триггерит обновление графика, так вот: const updated = JSON.parse(JSON.stringify(this.props.plotData));
Уебищно, знаю, но без этой строки не реагируют ни встроенные методы жизненного цикла компонента, ни мобИксовый "componentWillReact ".
Захотелось знания и скилл работы с js хотя бы до фронтенд джуна добить и я решил запилить крестики-нолики онлайн.
Саму игру я уже запилил, а вот как прикрутить к ней сервер - даже не представляю.
Есть какие нибудь подробные гайды как на nodejs сделать простой сервер для похожей игры? Или в какую сторону вообще копать?
бамп вопросу.
>>837847
Спасибо! Но походу это останется для самообразования на потом, да. Ближайшую задачу придётся решать плагинчиками. Я как-то раз уже трогал рафаэль, но этого по-ходу критически недостаточно.
На мысль об освоении этой штуки наталкнуло то, что я не раз видел, как заказчикам прям ну вот очень нужен разраб с навыками популярныйфреймворкнейм + d3. Да и вообще идея навыка визуализации данных интересная.
>Извращение - это промисы
>Код выполнен в виде простой и понятной последовательности шагов .then()
>Извращение
>Наглядность и структированность кода
>Извращение
У меня для тебя плохие новости, браззер.
Двачую. Извращение - это когда код идёт хуй знает в каком порядке. Поэтому не люблю генераторы (а их ещё и сложнее отслеживать), поэтому не полюблю async/await
Что мешает ветвить промисы внутри шагов then() ?
Их точно так же можно обернуть в функции дабы не нарушать читаемость.
Никогда не испытывал проблем с промисами.
Ветвление внутри промисов превращает их в колбэки. В общем, все это костыли для защеканцев.
Нормальные ребята делают let user = yield Users.findById(1) вместо ваших танцев с .then'ами. И слава богу, что это через пару лет будет стандартом, а про промисы и колбэки будет только вспоминать
Ты даун? Ты реально не понимаешь что yield и promise это вообще разные вещи для разных вещей?
сам по себе canvas api знать надо примерно что бы понимать на что он способен. напрямую сейчас мало с ним работают, в основном через библиотеки разные.
svg - это вообще не в кассу, так как это векторная картинка описанная в xml'е. её конечно можно генерить "на лету", но в основном она генерится в векторных графических редакторах. канвас же на выходе даёт растровую картинку и может работать с растровыми картинками. как-то так
лол, а кто заставляет их использовать? можно и как диды писать код на колбеках, хули.
промисы - это только удобная овёртка для колбеков. а генераторы вообще предназначенны, внезапно, для генерации списков, но никак не для корутин.
вот async/await хоть и синтаксический сахар, но иногда даёт очень лаконично выразить мысль. именно там где это надо. бывает когда нужно сделать несколько ajax запросов, а потом сделать с ними что-то сложное с кучей логики и ветвлений. вот тут без async/await нехватает какого нибудь Promise.if да и всё равно сковывае движения. тоже самое с async библиотекой для ноды
На пике - модель юзеров.
Алсо, забыл сказать что это sails
showSlides(slideIndex);
Что это еще за приколюха такая во второй строчке? Ньюфаня в растерянности
http://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_slideshow
Не понимаю как вообще и что это. Шоуслайдз это типа функция или че это такое? Как так объявлено?
Да, это пользовательская функция.
Сука, вот какого хуя ты лезешь на w3c, если не читал элементарных учебников?
Скажи мне, что ты троллишь…
В общем, разобрался. Если кому интересно, то Сафари сначала отсылает запрос на 2 байта (range:0-1), чтобы получить размер файла, а потом уже целиком его запрашивает (нахуя, "range:0-" ведь для этого и придуман, не?) Иногда, видимо имея что-то у себя в кеше, начинает вобще непонятные куски запрашивать. В итоге сервер при загрузке видео через Сафари получает что-то типа:
bytes=0-1
bytes=0-86941578
bytes=131072-86941578
bytes=327680-86941578
bytes=25617-131071
bytes=196608-327679
Хром и файрфокс же один раз просят "0-" и дело с концом, если перемотка не требуется. Впрочем, благодаря этому странному поведению сафари я узнал, что youtubeStreamer'ом можно спокойно рэнджи заказывать. Ну и убедился, что плеер лисы самый лучший и говнокодеро-упорный.
>видимо имея что-то у себя в кеше
Нет, потестил ещё, он даже новые так запрашивает. Какая-то попытка распараллелить загрузку, что ли, если вдруг есть ограничения на каждое из подключений?
> waterlock
Лучше выкинь это дерьмо и поставь passport. Я столько с ватерлоком наебался, что пиздец. Им, кажется, вообще поебать, они не следуют никаким стандартам, даже своим. У меня даже не получилось использовать их примеры из доков, они, блять, просто не работали.
>>838413
Если кому надо: вышел из проблемы путем создания отдельного метода create
https://github.com/duhruh/sails-waterlock-example/blob/master/api/controllers/UserController.js
Итак ясно, что имеется в виду написание через объект Promise. Как по мне, async/await - просто ненужный синтаксический сахар.
Там уже давно все есть.
Совсем со своим бабелем поехали.
https://nodejs.org/en/docs/es6/
http://node.green/
Раньше я не слышал, чтобы XMLHttpRequest.prototype.open мог выкидывать ошибки. Прогуглил это - ничего.
Поясните, это кодер поехавший или там реально что-то может выкинуться?
В принципе, все что угодно теоретически может выкинуть ошибку в зависимости от обстоятельств. Конкретно в этом случае ошибка может выкинуться если url undefined, это из очевидного.
такс такс такс што тут у нас наследование от конструкторов из стандартной билиотеки ахахах ну наконецта!
мимо нетор махно
забей. сахар что найтивный что не найтивный - один хуй, а иногда даже быстрее не найтивный(как это было и вроде как до сих пор с промисами, блубёрд - быстрее [native code])
С такой логикой у тебя браузер без поддержки жс будет идеальный
Да, пожалуй… Просто думал фиксить свой код или нет, а сайт, на котором видел код - и правда чуть-ли не каждое место оборачивает в try-catch.
Спасибо, няша ^_^
Ну yield есть, но это каждую функцию в корутину блюбёрдовскую оборачивать. В общем, пофиг, и так гораздо опрятней код сделался. Просто думал известна дата выхода ES7 этого.
Ты все проспал.
es7 уже давно вышел. в него входит всего две фичи,новый метод у array и новый оператор возвежения в степень.
асинки а авайты не были часть es7 уже давно, они планируются в es8
в архиве следующий удивительный яваскрипт файл
http://pastebin.com/0Q6qv4n0
кто-нибудь понимает что он делает?
я вижу что он сначала получает буквы из кодов, но мне лень расшифровывать. а дальше что происходит?
Все, что у меня получилось достать оттуда:
> unknownEcho
> WScript[undefinedundefinedundefinedundefined]
Похоже нужен Windows Script Host, чтобы нормально работало.
> var pe = "http://www.amoralhorno.com/frody.exe";
Походу просто скачивает и запускает эту фигню.
https://gist.github.com/anonymous/0f362ca50db3e159051a38c57f174fdb
Это не браузерный яваскрипт, там cmd.exe запускают каким-то образом, видел упоминания адобы и activex.
Гугли что такое JScript
2) Вписать код:
[code]
function p(i) {
setTimeout(p.bind(null, i+1), 0);
console.log(i);
};
p(0);
[/code]
3) Запустить;
4) ???
5) Наслаждаться;
Благодарю.
и не собирался. я же написал - годное чтиво, а ты сухую доку кидаешь. мне нужно, чтобы меня за ручку провели по созданию пары-тройки приложений с возрастающей сложностью.
Я создаю сначала аррай из всех интегеров в рэнже параметров, которые вводит пользователь.
Потом создаю аррай с числами, которые буду пермножать.
И самый важный потом третий аррай - Аррай Арраев, в котором сторятся результаты перемножения первых двух арраев.
https://jsfiddle.net/rzr7c0aj/5
Вот такая портянка.
Проблема в том, что нужно в т.ч. проверить на выполнение миллионных минимальных мультиплаев - smallestCommons([23, 18]) should return 6056820.
Для этого второй аррай должен включать в себя числа до 6056820. Для этого i надо сделать большим. От этого виснет браузер.
В частности для 360360 (тоже один из тестов) проверялось 40 минут.
Думал форИчи уберу, лучше станет -
https://jsfiddle.net/rzr7c0aj/7 - не стало
Можно как-то математической приблудой уйти от создания второго аррая для перемножения (сохраняя остальные элементы подхода).
желательно с тем, как это оптимально использовать в webstorm'e. мб плагинчики там какие, или отладка покруче
>Можно как-то математической приблудой уйти от создания второго аррая для перемножения (сохраняя остальные элементы подхода).
https://en.wikipedia.org/wiki/Least_common_multiple#Computing_the_least_common_multiple
https://en.wikipedia.org/wiki/Greatest_common_divisor#Using_Euclid.27s_algorithm
>съеби в пхп тред
Оригинально, а на все остальном закаче долбаебов посылают в https://2ch.hk/pr/res/835735.html (М)
если ты, мразь, не можешь подсказать, то завали ебальник и не кукарекай.
лямбда в ES6
arrow function
И
if (x%y)
равносильные записи?
Собственно, для этого jquery и существует. Представляет красивый кроссбраузерный , и все это с поддержкой плагинов, которых уже миллионы
google://john papa angular style guide
В общем, ковыряюсь с Express, осваиваю, вроде забавно, но закрались сомнения насчет запуска приложения на нем. При генерации базового шаблона он мне в консольке писал что приложение запускается через DEBUG=projectname: npm start - я на это благополучно забил, прописал в app.js простой app.listen, запускаю с node app.js и в ус не дую. По крайней мере на этапе разработки это быстро и удобно. Я все правильно делаю? Как там задумывался запуск приложения по версии Express'a?
Я вообще думал что когда закончу ковыряться на локальном компьютере и настанет время переносить все на живой сервак, то просто удалю тот app.listen и дам Express'у делать там все свои дела как он задумывал. Хорошая идея? Подводных камней нет?
Алсо, еще насчет депенденсов. Объясните пожалуйста что значат все эти "^, ~" и прочее перед версиями пакетов? Я так понимаю что "^" - это текущая версия и выше, "~" - это любая близкая к текущему значению версия (забавно конечно). Порылся на гитхабе, видел там некоторые вместо версий везде пишут просто "" - это по идее установка последней доступной версии, так?
Но ведь это идиотизм, разве нет? Написав проект сейчас и попытавшись развернуть его через полгода по депенденсам с "^" и "*" ты вместо приложения получишь тыкву, т.к. новые обработчики могут на хую вертеть старый код. По моему лучше писать строго конкретные версии, чтобы потом не пришлось перелопачивать пол приложения. Или я неправ и тут какая-то своя особая магия развертывания версий?
Бамп вопросу. Как хранить файл, готовый к записи или показу пользователей, исключая вариант с временными файлами?
https://gist.github.com/anonymous/33252378ff13a8f79aaf11878108131b
Если все-таки хочешь вручную, то изучай:
https://github.com/mscdex/busboy
Я блять с ума щас сойду.
Короче, по этому вопросу >>839825 вкурил ссылки, предоставленные >>839833.
В частности, табличный метод нахождения lcm.
Мне показалось. что понял. Там же приведена примерная реализация на си шарпе.
Ну в общем запили, запустил. Не работает. Уходит в бесконечный луп.
Я крч не поверил своим глазам, разобрал подстрочно код сишарпа (пикрелейтед), запилил то же самое. не работает!
Я блять по комментам разобрал и запили. Все равно не работает! Что не так, почему, где была проебана логика при переносе на жс?
https://jsfiddle.net/tv8z66m8/2/
Спрятал код в теги коммента /* а то там луп-убийца, фиддль виснет.
вот ссылка
https://jsfiddle.net/tv8z66m8/3/
>>840371
>>840366
лолблять
надо было вместо arrRemnants.filter()
сделать arrRemnants=arrRemnants.filter()
https://jsfiddle.net/tv8z66m8/4/
Заработало
Меня смутило то, что в ситуации, например,
arrRemnants=[1,1,1,1,1];
console.log(arrRemnants.filet(x=>x!=1);
консолеложка выдаст []. в связи с этим я думал, что фильтр ебашит сам аррай подобно сплайсу и переназначение через переменную не нужно.
Однако если сделать console.log(arrRemnants.length), мы получим 7. что показывает, что нихуя не мутировал аррай.
да уже заработало, спасибо
Это я видел, но спасибо.
А есть такие, которые просто вызываются `multipart.parse(requestBody)` и возвращают сразу объект?
boolean statement ? true result : false result;
https://en.wikipedia.org/wiki/?:
короткая запись булической ифы
Хуйню несёшь, мразь. Если ты про офф.документацию то там только туториалы, где всё перемешано.
У тебя нормально работает?. Просто я сколько раз не пробовал в пизду хуй передавать пизда падала с TypeError.
1. http://innovastudio.com/content-builder.aspx
2. http://madebymany.github.io/sir-trevor-js/
Я совсем не в тему, но не называй его "аррай", пожалуйста. Аррэй или, лучше, массив. Передёргивает прям.
Я охренел пока пытался въехать че отвечать, правда несколько легких вопросов есть
Ну вот 4 как раз легкое как по мне. this - undefined т.к. IIFE, класс дает тип function, а как известно если у нас NFE (ну в данном случае class) то имя видно только внутри самой функци/класса, поэтому ответ ["function", "undefined"]
в 5 и 6 сам ошибся поэтому ниче сказать не могу
Это было количество неправильных ответов, а не пункты. 4 в результате, но я некоторые сразу в node проверял.
Хах, ясно
потому что arguments не массив долбаёб
2-3 ответа долго думал, но сошлось.
А вообще, такие ебанутые конструкции будет писать только говнокодер, не вижу смысла в подобных тестах.
Ну эт вроде всем понятно, что так писать не стоит. Просто интересно.
Котаны, поясните за этот код:
http://pastebin.com/BAB7Dqgh
Устроился недавно в фирму и сегодня получил доступ к сайту, увидел это из любопытства копаясь в коде. Не могу понять, что это вообще. Погуглил - какая-то рекламная фирма, какую-то big data собирают. Поскольку создатель, он же админ, нашего сайта - скользкий ублюдок, я предположил, что он каким-то образом на этом деньги делает. Насколько это вероятно, антош? На сайте из "левого" подключены только гиперкомментс, ЯД и Relap, проверил - в их коде такого не встречается. С удовольствием сдал бы этого админа, его ненавидит весь офис.
с меня тонны нефти!
У тебя, скорее всего, пека заражена. Попробуй с другой проверить, будет там этот код или нет.
Ты не читал даже первую часть учебника кантора - хули с тобой говорить?
идёшь на юзерскриптс орг или как оно там
находишь юзерскрипты для вк
смотришь, делаешь свой
я бы как-то так поступил
мимо не знаю жс вообще
У меня нет высшего образования, стоит ли отзываться на вакансии, где требуется ВО? Стоит ли обманывать работодатели и говорить, что меня выперли с энного курса?
У меня нет опыта работы, стоит ли отзываться на вакансии, где требуется 1-2 года опыта?
У меня 19 лвл, неплохой стек фронтенда и я нигде до этого не работал, прошу помощи, анон
Ты - это я, анон. Сам жду ответа на этот пост.
>вакансии, где требуется 1-2 года опыта
В общем-то, я так и не понял: этот опыт должен быть в трудовой или нет? Я вот уже 3+ года изучаю JS и вот думаю считается это или нет? Пишу почти как б-г.
>У меня нет высшего образования, стоит ли отзываться на вакансии, где требуется ВО?
нет
>Стоит ли обманывать работодатели и говорить, что меня выперли с энного курса?
нет
>У меня нет опыта работы, стоит ли отзываться на вакансии, где требуется 1-2 года опыта?
нет
>19 лвл
>неплохой стек фронтенда
>нигде до этого не работал
пошёл нахуй
хуянтора
Постоянно так делаю и успешен.
ПХП-макака в треде, все в сеньоры!
>>840868
Нахуй тебе трудоустройство вообще? Иди во фриланс.
>Иди во фриланс
Я бы пошел, но хотет переехать в Москву и устроиться где - нибудь там. Да и во фрилансе жуткая конкуренция или это мои маня фантазии
Чот срекнул с такого поворота))
На самом деле ничего менять не хочется, ибо если это какая-то попытка навариться на сайте с неплохой посещаемостью - админу-пидору придет пизда. А Я ДЖВА ГОДА ЖДУ ЭТОГО. В любом случае, спасибо за вариант.
Проверил. Та же хуйня. Спасибо за то, что отозвался анон, буду копать дальше.
Как лучше его спроектировать? Через обращение через API к бэкэнду, который отправляет все нужные данные (REST) и Редукс обновляет стейт, или можно как-то ещё?
> Через обращение через API к бэкэнду, который отправляет все нужные данные (REST) и Редукс обновляет стейт, или можно как-то ещё?
Ну да, а как иначе-то?
Ну я хз, где-то вообще стейт на сервере хранят, в некоторых туториалах там всё ещё более непонятно.
Ну если у тебя серверный рендеринг реакта, то стейт будет на сервере храниться в виде сессии. Если же рендеринг полностью на фронтенде, то и стейт должен быть там же
Поясняю для залётных даунов. Да-да-да-да. Похуй что там пишут. Позовут на собес там и проверят ваши знания. Максимум скажут что не подходишь по документам, а если вылежешь очко хрюши и покажешь скилл сеньору-помидору, то могут искать копромиссы.
this.a: prompt('entre a:');
this.b: prompt('entre b:');
};
som = (f) => a + b;
som(f());
Аноны почему этот код не работает? Как его подправить чтобы работал? В одну фукцию все пихать не хочу, именно хочется так что две функции- одной получить числа, другой их сложить.
f = function() {
this.a: prompt('entre a:');
this.b: prompt('entre b:');
};
som = (f) => a + b;
som( f() );
let f = function() {
let a = prompt('enter a:');
let b = prompt('enter b:');
return [a, b];
};
let sum = ([a, b]) => a + b;
sum(f());
В предположении, что prompt где-то существует уже.
шпасибо!
а почему в некоторых источниках вместо равно ставят двоеточие, например?
a: prompt('enter a:');
Бля, ну ебаный пиздец, ну изучите уже основы языка хоть немного, прежде чем писать, чтобы не появлялись глупые вопросы. Главное arrow function используем уже (наверное даже не понимая ее особенностей) а про объекты и конструкторы не читали даже.
Анон, будь человеком объясни когда использовать равно а когда двоеточие. Клитора читаю если что
Хуитора
Спасибо
Из подобного пока только angular 2 нашел подходящего. Есть еще альтернативы?
> Есть еще альтернативы?
Vuejs ещё годный. А так советую тебе все современные-популярные попробовать и выбрать тот, который прям понравится
Двачую. У меня пиздец подгорело с этого >>841086 дерьма ;_;
>>841267
writeityourself.js - годнота, как по мне, лучший вариант.
Я бы реализовал это в виде скрипта для casperjs, что по сути будет эмулировать действия пользователя в реальном браузере.
То есть, для этого программа браузера не понадобится вообще?
кантира читаю, но как запускать проги еще не понял
Зашёл, глянул. Ещё хуже раковник, политота какая то, хуета.
Двачую адеквата.
А что именно не понимаешь-то? Рекурсия - это когда функция вызывает себя. У рекурсии есть предел, после достаточно большого кол-ва рекурсионных вызовов бросается ошибка.
https://jsfiddle.net/5khLw0wz/
Не совсем понятно, что происходит после накопления стека. В отладчик смотрю, тоже не догоняю.
В web молчат спрошу тут.
Потихоньку вкатываюсь в веб разработку.
Учу академию месяц попутно читаю учебник jslearn.
Но у меня до сих пор все представление о планах на учебу плавает на поверхности.
Что нужно знать, чтобы стать обычным джуном?
Научусь верстать по академии, стану js джуном по jslearn, а дальше что читать?
Я не представляю что делать с вашими cms и с чем их едят, не представляю php, python, node? что учить для бэкенда и как на это ставить mysql.
Уж о графике о фотожопах с coral я слышал только в пэинте.
Передо мной все плавает но я не ебу как все это грамотно расставить, чтобы учить.
Есть вариант пойти на курсы в вузе моего города где должны дать комплексом за пол года.
Вот список фреймворков оттуда:
Пхп: Symphony, Zend framework
Js: backbone, Angular
Html: bootstrap, 1140 CSS Grid
Python: Django даваться будет только фреймворк.
Учеба полгода, вот ссылка www.fpk.unn.ru/kursy-po-sozdaniyu-sajtov/
Добрые аноны просто скажите как мне адекватно поступить.
>Я не представляю что делать с вашими cms и с чем их едят, не представляю php, python, node? что учить для бэкенда и как на это ставить mysql.
Гугли rfc на http, tcp, ieee 802.11, osi модель. Без базовых знаний ты всюду соснёшь.
Еще разок
Спасибо, почитаю. Можешь еще чего посоветовать? Я тут заполняю свой список литературы.
>Как вообще сабж взаимодействует с сайтами
>будучи установлен на компе
Отправляет запрос, как и любой другой, лол.
Алгоритм примерно такой:
1) Отправляешь HTTP-запрос на сайт.ру;
2) Когда приходит ответ - смотришь, требуется-ли авторизация.
3) Если авторизация не требуется - идёшь на шаг 6;
4) Авторизируешься (ещё один HTTP-запрос);
5) Когда приходит ответ - проверяешь код состояния: нормально ты авторизировался или нет. Если не получилось по твоей вине - фиксишь логин/пасс и идёшь на шаг 4;
6) Посылаешь запрос на "нужную страницу";
7) Когда приходит ответ, парсишь его. Ответ придёт, скорее всего, в text/html, так что просто вытягиваешь нужную тебе таблицу;
8) Из нужной таблицы (я так понял, ссылка на файл находится в таблице, верно?) вытягиваешь нужную ячейку, где будет ссылка на файл;
9) Посылаешь запрос по этой ссылке;
10) Когда придёт ответ - сохраняешь файл и таблицу на диск - таблицу в .txt или .html, файл - в том формате, в котором нужно;
11) ?????;
12) ПРОФИТ!
Чёрт, анон, я-бы помог, но.. не знаю, это настолько просто, что я даже не могу это нормальными словами объяснить.
Юзай `console.log` чтобы логировать глубину вызовов, там сам разберёшься.
Ты чё совсем долбоёб? не вздумай читать про хуйню которую он тебе посоветовал.
>хуйню которую он тебе посоветовал
Но ведь RCF на HTTP ему действительно понадобится. А остальное - да, верно.
мимо
> Где ты там деление на ноль увидел то?
Ну, по стандарту в моем хипсторском языке
> 0.0 / 0.0 => NaN
> (any_num > 0) / 0.0 => Infinity
> 0 / 0 -> Посылаем нахуй.
Ятп, стандарты — стандартные и в джабаскрипт тоже самое. Так что таки поделили на ноль, но не простой, а вещественный, кек.
Анон, суть такая.
В дивах выводится хуйня из базы(позиция и ссыль), мне нужно что бы кнопка копировала ссыль, но копируется всегда первая ссыль.
(any_num !== 0) / 0.0 => Infinity
Ты это имел ввиду, потому что отрицательно число тоже даст инфините
Эм, в скриптах возможно. В руби будет -Infinity, вообще не стоит вскрывать эту тему, а то я ведь у нас у хипсторов
> -(-7 / 3) != (7 / 3)
Своя атмосфера =(
епты пропиши во втором details.html в меню class="active" и через css выдели хуйли ты тупишь ?
Этот понятно лол.
Как сделать так, чтобы оно понимало в каком я хтмл нахожусь и такую ссылку и выделяло?
Может какой нибудь
document.onload = function () {
и тут автоматом присваивается класс
}
Или так не сработает?
в всмысле ? У тебя ж статические html файлы есть index.html и в нем меню в котором
<a class="active">home<a>
а в другом статическом файле details.html нaпример
<a class="active">details<a>
ну а если ты хочешь чтоб js тебе active ставил то можно попробовать поставить на onload обработчик который смотрит что у тебя в window.href и ставит в нужную ссылку active
Аноны, извините вопрос не совсем по теме.
Допустим у меня есть гитхаб с несколькими репозиториями и частыми коммитами. Все в нем - это мои велосипеды написанные на js, немного vue, backbone и ангуляра. Так вот вопрос: может ли кто то скопировать из моего гитхаба код и выдавать за свой, а я потом сосну хуйца из-за этого при приеме на работу?
Да. Я уже скопировал все твои велосипеды, прохожу собеседования, пили новый гитхаб, закрытый.
Конечно может, лучше закачивай на bitbucket, тоже самое что github, но в нём есть возможность бесплатно создавать приватный репозиторий, которым пользуется не более 5 человек. На гитхабе приватные репозитории - платные по подписке
Да. Хакер может как полностью скопировать твой репозиторий, так и просто скачать его.
Но, блять, если работодатель не может посмотреть на дату файлов - нахуй тебе такой работодатель?
впрыснул хакера тебе за щеку, проверяй
Как пользоваться гитхабом, анон? Вот есть у меня дотайп хтмл с кодом, что с ним делать, как его портировать на гитхаб? И как это будет выглядеть? Заходишь на гитхаб а там САЙТ?
Что происходит, помогите кто-нибудь разобраться, ХЕЛП!!
Базовый интенсив html - академии 1 урок, либо 1 урок продвинутого. В базовом работа через gui, в продвинутом через консольку
Слушай, а объясни мне своими словами, как регкексп юзать. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions
Вот надо чекнуть текст на паттерн регекспом. Чо делать?
я не он, но вот что тебе принес https://learn.javascript.ru/regular-expressions-javascript
обмажся, сам сначала или сразу кидай текст и строку которую надо найти, я лично ебал например объяснять
addEventListener
На блоки вешай с for (i=0;i<arrayfOfBlocks.length;i++) или arrayOfBLocks.forEach()
Да там задание ниибацца, а не строка...
Я похожий артикль сам выше скинул, но как-то сложно, мне бы своими словами...
а вызывать обработчик после (или перед) вызова show()? потому что среди стандартных событий show я не припоминаю
Зачем новые отмазки, когда есть старые?
Ангуляру второму уже прикрутили что-то нормально дебагаемое вместо строковых темплейтов? И для использования ангуляра я могу применять всю мощь JS, или по-прежнему требуется использовать убогий ng-DSL?
Я не знаю, следует ли мне перекатываться на ангуляр, не вижу пока что киллер-фич перед реактом, а косяки вижу. То, что он Opinionated конечно плюс, но если вся команда готова обмазаться редуксом и эрэксом, то будет тот же ангуляр, только лучше.
У нас с 10-ых rc в продакшене, никаких подводных
впилить*
Как считаете, стоит ли оставаться в этой фирме?
Суть в том, что они не писали автотесты, и конкретно ничего ответить не могут.
Я вот что думаю, а если я и разберусь с этой штукой то это же очень узконаправленная вещь и если что, я никому не нужен буду.
> автотесты
> узконаправленная вещь
Чё? Вообщет сейчас тренд писать сначала тесты, а потом под них приложение. Говорят, что годнота, ещё захочешь.
В том то и дело, что тестов нет, а приложение уже есть. Да и вообще, в эмбере же должны автоматически генерироваться тесты для компонентов. Поэтому и бугурчу сижу каждый день там
Ну я про то, что тесты это нужная штука, и время на изучение их написания ты не потратишь зря
А на чем вообще тесты под эмбер пишутся? Mocha/Chai или там своё что-то?
Да, можно на них. Но вообще у ember уже qunit подключен
Помогите с angular разобраться
есть цепочка промис объектов
и внутри она разделяется на две ветки, которые потом снова сливаются
как это организвать?
Т.е. если вкратце, то я пытался что-то такое делать:
mypromise.then(
__if (someExpression)
____return $q.all(listOfPromises).then(listOfResults).then(resultOfPrevious);
__else
____return staticValue;
).then(staticValueOrHujnia);
Вот, как-то так
И, получается, что если я попадаю в ветку с q.all, то после then(listOfResults) у меня выскакивает алерт с then(staticValueOrHujnia), а мне надо, чтоб сначала then(resultOfPrevious) и только потом then(staticValueOrHujnia)
плиз хелп
пробовал с $q.wait
но, как я понял, он только сразу применим. Если нету promise до этого. (т.е. mypromise)
Я короче уже охуеваю от напряжения мысли.
надо сматчить стрингу, в которой, например, пятерку предваряет 4, "12345". Или строку, в которой пятерку предваряет 3, но между 3 и 5 есть 1 карактерина. "12345". А на "123445" соответсвенно ругнуться.
Как это блять делается?
> А на "123445" соответсвенно ругнуться.
Но тут "пятерку предваряет 4". Ты хочешь невозможного. Или это уже другой регексп?
Другой, конечно. "Или строку, в которой пятерку предваряет 3, но между 3 и 5 есть 1 карактерина. "
На 12345 такой паттерн даст трю, на 123445 фалсе (ткт 2 карактерины между 3 и 5, а не одна).
Что? Наведи мышкой на регексп, там все описывается или справа есть подробное объяснение.
Да я уж прочел и понял твой код.
Я про другое. Научи так же решать регекспы. Ты же с ходу взял и сообразил как-то этот код.
Бамп. Не молчите, сэнсэй.
Я не знаю, что тебе посоветовать кроме практики.
Можешь почитать про конечные автоматы и как представлять регулярные выражения с помощью них.
Cэнсэй, а как сделать алтернативную проверку (если между 3 и 5 один символ ЛИБО пятерке предшествует 4, то трю)?
очевидный выбор был бы ПАЙП I
Но я попробовал, и нихуя. А тут еще и оверфлоу http://stackoverflow.com/questions/17378503/why-doesn-t-the-alternation-pipe-operator-in-javascript-regular-expressi подбежал с пояснениями, что регекс прекращает чекинг на ПЕРВОМ матче и дальнейшее его не интересует, хоть второй кондишн и будет выполняться. "njn gbljh gj ccskrt gjlndthlbk http://www.regular-expressions.info/alternation.html
Что делать, сэнсэй?
Плохой пример в том посте. Там строгое либо, либо. нет такого, чтобы оба кондишна выполнить можно было (и нужно было).
Вот правильный пример:
например
var array = /1.3 | 45/.exec(12345)
чтобы напиздошило в аррай оба матча.
На Ноде - ищи библиотеки для работы с файлами. На браузерном.. удачи в изучении Canvas - заодно и листву скинешь.
А можно как-то попроще? Мне бы скрипт один написать и забыть js.
let num = arr.reduce(function(sum, current) {
i++;
return sum + Math.pow(current , i);
});
not a function - общее сообщение при ошибках синтаксиса. давай полный фиддль еба.
let arr = ['1', '2', '3', '4'];
let i = 0;
let num = arr.reduce(function(sum, current) {
i++;
return sum + Math.pow(current , i);
});
Запустил ноду с экспрессом, хочу банально загрузить на страницу картинку, вот так:
<img src='./public/images/test-image.jpg' alt='wtf'>
но оно нихрена не грузит. Хотя если грузить картинку с удаленного сервера <img src='http://res.cloudinary.com/7adf6ngw/image/upload/sample.jpg' alt='wtf'> например, то все нормально, выходит проблема в пути. Я уже и без первого слэша пробовал, и без точки, и полный локалхост-путь прописывал, но все без толку.
Чому у меня не едут лыжи? Экспресс как-то по своему воспринимает путь к файлам?
В смысле оставить как есть, а при переносе на живой сервер все заработает? Оно-то я подозреваю что так и случится, но мне же как-то надо еще и работать с этими картинками. А вслепую это делать ну как-то не.
Что не так, как мне их отобразить? Рендерю ejs.
Я видимо сплю уже, не понял сразу. Вот код, но там нет ничего особенного. Честно говоря там вообще ничего по сути нет, только две ссылки на странице.
index.ejs - http://pastebin.com/a3rCaaEV
index.js - http://pastebin.com/A40VgzcG
app.js - http://pastebin.com/WGHVMsqL
А я в app.js минут пятнадцать все путь express.static('public') крутил и так, и эдак, но как оказалось крутил не там.
Спасибо, анон.
var array = /(1.3)|(45)/.exec('12345')
> [ '12345', '123', '45', index: 0, input: '12345' ]
Ок, тот пример тоже неправильный.
Вот, грубо говоря, есть регексовая строка поиска.
\Polo(moi)(ej)ka\
И сырьевые строки Polomoika, Poloejka, Syroejka, Poloenka.
(moi)|(ej) - то, что ты предлагаешь - разбивает поисковые фрагменты на два разных Polo(moi) или (ej)ka. Она сматчит в данном конкретном случае Syroejka вдобавок. А это не надо.
Пробовал [(moi)(ej)] - нит
[(moi)|(ej)] - нит
Как альтерацию между группами делать? Между одинарными карактеринами [ae]. А меж группами?
Вот регексина https://regex101.com/r/vN5rI8/2
Вот как тут второй символ [0-9] сматчить АЛЬТЕРНАТИВНО группе (/([0-9]), чтобы оба сорца сматчились?
О, вот так кажись будет (\([0-9]|[0-9])
/Polo(moi|ej)ka/
^1\s(\([0-9]|[0-9]), хотя тут можно просто ? поставить после \(
Что ты хочешь распарсить?
Да там пиздец. Вот задание https://www.freecodecamp.com/challenges/validate-us-telephone-numbers#?solution=function telephoneCheck(str) { var pattern=/((^1((\s\d)|(\s\(\d)|(\d)|(\(\d)))|(^\(\d|^\d))\d{2}((\)\s)|(\)-)|-|\s|\))\d{3}[\s-]\d{4}$|^\d{10}$/; if (pattern.exec(str)) {return true;} else {return false;}}telephoneCheck("1 555-555-5555");
Вот код, которым я сделал почти все - https://jsfiddle.net/wtumu182/
Осталась одна проблема - чекать "рваные" брекеты.
Т.е. когда в стринге есть ), но отсутствует парная ей ( (и наоборот). Есть мысль, что это можно достигнуть вариациями lookbehind, но для этого надо заглянуть через три клетки лукбехайндом и чекнуть на наличие символа, хз как это сделать.
Решение в скриншоте, считай его спойлером.
> Есть мысль, что это можно достигнуть вариациями lookbehind, но для этого надо заглянуть через три клетки лукбехайндом и чекнуть на наличие символа, хз как это сделать.
Там не нужны look ahead/behind.
Ну у тебя не нужны. Хорошее экономное решение. Класс.
Но все-таки, в моем случае можно как-то вылезти из ситуации с нехватающими скобками средствами регекса?
Т.е. ты подошел к скобкам к части блока, группы, у тебя не стоит проблема чекнуть скобку как индивидуальный символ. А у меня именно проблема( с моим многоэтажным кривым аппроачем) чекнуть индивидуальную скобку - предваряет ей другая скобка за три шага до или нет. Можно из этого вылезти средствами регекса, не меняя аппроача?
Одним только регекспом без дополнительного кода? Вряд ли.
Либо тебе придется чекать скобки в выхлопе regexp.match либо как на скриншоте.
если матчится скобка, то пожалста подайте мне три джигита между ними...неплохо, неплохо
Как так надрочиться задачки решать? Ты давно кодишь?
B том, что изначально по задумке вводилось слово из чисел наеример '101010'. Это слово разделялось на массив из букво-цифр ['1', '0', '1', '0', '1', '0'], а они в свою очередь переводились в 10 ную систему.
И это все хотелось написать с новыми методами, чтобы кратко и красиво. Правда с reduce так и не смог сделать.
charCodeAt() // get unicode
toString(2) // unicode ---> binary
parseInt(x, 2) // binary ---> character
>>843025
>>843029
Лол, так и деванона недалеко, но не Аннушка. Реализовывать тут нечего особо, разве что с reduce было бы интересно сделать. Что не понимать, вводится string из 0 и 1, а на выходе число в 10 системе. Например вводим '101' получаем 3.
Но повторюсь, все это делалось чтобы поиграться с map и reduce, но как оказалось рано мне еще.
рейтаните https://github.com/sergeyksv/tingodb
хочу использовать для мелких проектов и разработки. как по мне это 10/10. еще не тестил скорость, если верить их документации эта бд в два раза медленней mongodb она написана на ЖС
есть такой момент, эта бд использует память в пропорции 1:100, т.е. если таблица /коллекция/ весит 100 мб, то приложению нужно будет 1 мб памяти, т.е грубо 1 гб РАМа хватит на обработку 1к похожих и конкурирующих запросов?
может кто знаком, 100мб JSONа, сколько это примерно элементов для типичной коллекции "юзер" с полями "айди, ник, пасс, майл, рег_дэйт"? примерно хотя бы
Я вообще в Ангуляре не шарю, просто знаю, что крутые чуваки ее советуют, мол это практически все, что нужно вообще.
Бери 2, он только что зарелизился. 1.5 уже поздно изучать.
Очень аргументированно
Бери 1.5. Он сейчас активно используется в разработке и будет использоваться ещё лет восемь, пока не появится альтернативы - как раньше использовался бэкбон. На двойку забей, она не взлетела и в серьёзных компаниях не используется.
Я был не прав, с помощью lookahead + lookbehind можно обойтись без дополнительного кода, вот только в js нет lookbehind.
https://regex101.com/r/cO8aI8/1
>>842901
Кроме практики, полезно будет прочитать книжку по алгоритмам, ну и читать статьи с новыми или не очень идеями, чтобы возникали мысли "ох, оказывает еще вот так можно делать".
Давно.
> она не взлетела и в серьёзных компаниях не используется.
Она зарелизилась три дня назад. О каком взлете может идти речь?
Нахуй ты людей дезинформируешь, дегенерат? Ангулар морально и технологически устарел, именно из-за этого и брейкнули обратную совместимость второго с первым, чтобы не тащить всё это говно еще десять лет. Делать проекты на первом сейчас будет только отбитый, который вообще не в курсе что там, как и почему, делаю на чем умею.
Поясни, пожалуйста за фреймворки и микросервисы?
Что проще использовать? Я уже пробую вкатится в Ангуляр новый, но пока не знаю, насколько он хорош и не имею опыта использования других, что бы сравнивать. Что посоветуешь?
А по поводу сервисов, я разбил все на микросервисы, т.е отдельно апи, отдельно веб, везде использую экспресс, дальше, думаю, если будет еще какая интеграция - тоже отдельный сервис. Что скажешь о таком подходе?
Заранее благодарен.
> А по поводу сервисов, я разбил все на микросервисы, т.е отдельно апи, отдельно веб, везде использую экспресс, дальше, думаю, если будет еще какая интеграция - тоже отдельный сервис. Что скажешь о таком подходе?
http://eax.me/server-side/
Вообще не понимаю зачем разбивать введённую строку. Один вызов `parseInt(str, 2);` - и всё готово.
Рано тебе потому, что не понимаешь сути reduce и массивов вообще.
Двачую.
https://teamtreehouse.com/community/anyone-else-getting-an-error-when-including-react-hot-loader-in-the-webpack-config
Вложенный цикл прокручивается каждый раз на одну итерацию внешнего? Т.к. во внешнем три дырки, то внутренний цикл на проверку 5ки прокручивается 3 раза на каждую дырку внешнего? В этой ситуации, наверное, подойдет array.prototype.every.
Спасибо анон, так еще круче.
Рано мне потому что кроме клитора ничего толком не осилил, хотя уже пробовал первый ангуляр и мне он понравился. Сейчас нашел очень годную книгу по жсу со всеми подробностями и подводными камнями языка и читаю ее.
>кроме клитора ничего толком не осилил
После его учебника ты можешь уже нормальные приложения писать, это я тебе из личного опыта говорю.
Жопой читал, видимо. Надеюсь, с книгой будет получше.
Пиздец говнокод. Лучше объясни что ты сделать пытался.
Хеллоу ворлды я и без его книги писал отлично.
Лично мне нужно упорядочить все это, более глубокое понимание как оно изнутри работает чтобы на собеседованиях хуй кто смог прикопаться. А наговнокодить ума не надо, имхо для этого лучшая книга Eloquent JavaScript.
Для глубокого понимания надо спеку читать.
Да. Да. Нет.
Вообще, для симметричной разницы вложенный цикл не нужен.
https://jsfiddle.net/98tj054z/
А как ты понял, что это на симметрик дифференс задача? Тоже фрикодекампом обмазываешься или просто экстрасенс?
function sym(args) {
var arr0=arguments[0];
var arr1=arguments[1];
var arrNew=[];
var count=0;
while (count<arguments.length){
for (i=0;i<arguments[count].length;i++){
if (arguments[count+1].every(x=>x!==arguments[count]))
{arrNew.push(arguments[count]);}}
count++;}
return arrNew;
}
sym([1, 2, 3], [5, 2, 1, 4]);
Я сейчас дропну подход через эври, но напоследок хотел бы выяснить, где тут ошибка, почему отказывается читать индекс аррая? Подставлял вместо каунта число - работает, то есть синтаксис в остальном верный. В индексы аррая нельзя пихать экспрещоны?
count + 1 вылазит за границы arguments
>более глубокое понимание как оно изнутри работает
А стандарты тебе на что?
Хуй знает, мне все книги по JS, которые я читал, ничего нового не дали.
Ими тоже пользуюсь. Просто там где живу охуенно большая конкуренция на жс макак и чтобы получить работу джуном надо хотя бы чистый жс знать от и до со всеми подводными.
>чтобы получить работу джуном надо хотя бы чистый жс знать от и до со всеми подводными
Не надо.
Я знаю JS от и до, но везде в требованиях стоит: Angular/jQuery/React.
Поэтому, наверное, веб-разработка дальше хобби и лаборанства не зайдёт - презираю всё это говно и не собираюсь его учить.
Что есть: мой manifest.json http://pastebin.com/xdRkySF9
Мой redirect.js http://pastebin.com/VB6jYMfi
Мне посоветовали синхронный вызов функций (тут к стати нашёл что-то в тему), но я особо не профессионал в js и пока не сообразил как и что делать. Если коиу не лень, насоветуйте что делать.
> Я знаю JS от и до
Портфель собрал на завтра, знаток? Откуда вы лезете только. Знает от и до, ой пиздец
привки посаны, чому переменная sum равна 16, ведь она была ноль, и к ней прибавили 8
https://jsbin.com/vemimikika/edit?html,js,output
сап /pr/, помогите ньюфагу. значит, задача следующая -- я сам из рубей, но сейчас по долгу службы засел за JS и Backbone. помогите ньюфагу разобраться, как совместить Backbone и json-server (который из npm). для склеивания модулей юзаю RequireJS
>>847248>>847248
смотри. Тут ты гавна напорол чуток.
у тебя в цикле for идет наращивание sum: сначала 0, после 1 прогона sum=4, после второго - 9, потом i=6 у тебя пропускает и в конце добавляет 7. 8 не добавляет, т.к. знак строго меньше.
чтоб получить sum=8 вынеси sum после цикла
Какой программой обфусцируют код до такого нечитаемого состояния? И как вернуть ему нормальный вид?
>>848775
спасиб братишь, дело в том что это пример из обучалки, и там надо было выяснить чему равна sum, и я пока не проверил код в консолечке, не осилил вычислить в голове, а отом как проверил код в консолечке, удивился результату, и только потом уже понял что она суммирует итерации кроме шестёрки. карочи походу я охуенно тупой, врядли получится вкатиться в программирование.
Вы видите копию треда, сохраненную 3 октября 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.