Вы видите копию треда, сохраненную 11 августа 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
JS-конфа в телеграме:
https://telegram.me/jsthread
НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Если будешь учить php, то js тоже придется. А так они оба денежные
В общем лучше не суваться в prototype, пока не освоишь нормально this. Если первый язык программирования.
> Список инструментов и направления JS-разработки:
> https://github.com/xxxwww/js-thread/blob/master/Wiki/tools.md
Где Sublime Text?
о какой литературе базар то ? Кантор чем не устраивает ? хочешь полнее читай ecma спеки
поехавший, какое отношение ecma имеет к DOM?
ой чет бес попутал, ты прав
Кантора наверни и не выебывайся. Недавно листал это вот расхваленное "Секреты JavaScript ниндзя" - типичная рыготина с кучей воды. А Кантор по хардкору ебашит, без воды и лишних пояснений. Если освоишь его курс, то можешь считать, что постиг суть js.
Кантор это автор сайта javascript.ru? Помню, как он обосрался, забыв в описании функции setInterval указать 3-й параметр. Больше на эту парашу ни ногой.
Учите стандарт и не читайте всяких хуесосов: https://html.spec.whatwg.org/multipage/webappapis.html
Хули ты пиздишь, где там ХАСКЕЛЬ? Только жс макаки да какие-то seo хуесосы.
Отписался там, в общем.
ох ебать, кантор обосрался?!?! забыв указать в описании функции бля ты нелепей чем goddes bunny сейчас выглядишь
phpstorm. от jetbrains всё хорошее. если только js, то бери webstorm.
А спека для кого?
https://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/introduction.html
Улучшить знания DOM - это что вообще значит? Список названий ивентов на зубок знать? Определись что именно не понимаешь и копай туда.
Именно обосрался, порватка, этот тупой хуесос предлагает создавать таймер с параметром на JS так:
setInterval("function(n) {...}", interval);
Я бы такому дебилу и домашнюю страницу писать не доверил.
как ты вообще программированием занимаешься ? У тебя с логикой траблы лютые:
Кантор знает как делать правильно ? - да
Кантор человек ? - да
Человек периодически ошибается ? - да
а все остальные свои скилзы он из-за своего непрофессионализма получил.
короче тут есть тысячи вариков доебаться до твоей логики, так что ты либо правда туповат либо тролль в жс трейде, что собственно то де самое
> Я бы такому дебилу и домашнюю страницу писать не доверил.
лол хорошо, что ты ни на что не влияешь. Тимлид диванный
> Именно обосрался, порватка, этот тупой хуесос предлагает создавать таймер с параметром на JS так:
https://learn.javascript.ru/settimeout-setinterval
и тут ты такой с пруфами...
Хе-хе, в одном месте хуесос ошибку исправил, а в другом забыл: http://javascript.ru/setinterval
жестоко конечно, ничего не скажешь.
Хватит нига стыдно за тебя
> Илья Кантор, 16 мая 2009 - 08:55
Как заставить ноду отображать html-документ на поднятом веб-сервере?
Возьми нож и угрожай ей.
Начал экспериментировать с Реактом (без флакса) и разрабатываю мини-сайтец с изоморфными компонентами. Проблем и вопросов особых не возникало, ибо контент весь рендерится однажды, после запроса.
Но тут еще созрела идея админку запилить, и там уже хотелось бы динамически обновлять содержимое страницы (фильтры, редактирование и отправка данных, вот это все).
Пока для основных страниц код был простой как два пальца - сервер рендерил страницы и попутно херачил json данные в тег javascript. Для унификации кода использовал метод getDefaultProps() в котором определял окружение и брал данные из того самого тега, если мы находимся в браузере.
Вот теперь возвращаясь к проблеме динамически обновляемых данных.
Я хочу, чтобы в моей админке при запросе сразу рендерились определенные данные, а так же, при AJAX запросах обновлялись.
Читаю всякие гайды по этому вопросу и никак не могу взять в толк, какой же пождход наиболее грамотный. С одной стороны, можно в getInitialState фигачить пропсы, а потом стейты обновлять в соответствии с полученными данными.
И, хотя фейсбук вроде не против такого подхода, когда пропсы используются только в качестве первоначальных значений ( https://facebook.github.io/react/tips/props-in-getInitialState-as-anti-pattern.html ), но неприятный осадочек от слов НИНАДА ТАК ДЕЛАТЬ, ЭТА АНТИПАТТЕРН остался. Так как же лучше организовать обработку данных?
чистую ноду ? Тогда надо прочитать по пути html
https://nodejs.org/dist/latest-v6.x/docs/api/fs.html#fs_fs_readfile_file_options_callback
если express то вариков масса от sendfile до res.render
А я фс с экспрессом минут 40 скрестить не могу, но у меня подает файл в загрузки.
var fs = require('fs');
var express = require('express');
var app = express();
fs.readFile('index.html', (err, data)=>{
if(err) console.log('error');
app.get('/', function(req, res){
res.send(data);
})
})
app.listen(3000);
да нет, все правильно вроде
когда юзаешь експресс, юзай sendFile т.к. общая практика и не нужно опускаться до лоу левел, она сама все прочитает и сделает.
если нужно прочитать файл и с его содержимым что нибудь сделать, регулярочкий что нить поменять например надуманный пример но все же а потом только отправить то второй
Два стула: или накатить стейт менеджмент, или обмазываться антипаттернами.
У brackets есть плагин, преобразовывающий html в css(CSSFier), стоило только скопипастить из поля с нтмл-кодом в поле ксс-кода. Есть ли в Sublime подобный плагин?
бля чувак, ну почему ты полез задавать вопрос на двач даже не погуглив ?
cssfier sublime -> google.com
https://packagecontrol.io/packages/eCSStractor
ну нахуя мне делать то что должен был сделать ты сам? Хоть одну бля причину назови
function b() { return 42; }
1.
a = true && b()
2.
if(true) { a = b(); }
Еще одно подтверждение того что использовать это говноподелие не нужно.
http://blog.ox2.ru/js/pokazat-skryt-div-blok/
>true && b()
1. проверка первой части выражения - равна true, если бы была false, проверять вторую часть выражения смысла нет
2. выполняется функция b(), которая возвращает 42.
таким образом переменная а будет равна 42
#block_id {transition: top 1s ease-out 0.5s}
А что ещё использовать? Не говнотырпрайзный ангулар же. Альтернатив просто нет.
Бэкбоун + марионетт
Глядите, взрослый человек не умеет адекватно отвечать на аргументированную критику JSX.
Доведённый до ума текстовый режим. Шиндузятники уже и забыли, в семёрке заводится со специальными видеодровами, с восьмёрки выпилен с концами. OS X изначально только графическая. А используется, когда графика нахуй не нужна либо иксы не заводятся. Вебдева слабо касается, правда, ибо хоть более-менее рабочих решений для отображения браузеров во фреймбуфере нет, иксы при переключении туды-сюды тормозят, а Wayland готов чуть менее, чем второй ангуляр. Но для многоязычных богов один редактор для всего — куда более приемлемое решение, чем осиливать стопицот узкоспециализированных блокнотов со свистелками, коими эти ваши IDE являются. (inb4: Visual Studio).
Сто лет ебашили лапшу на жыквери и ещё столько бы ебашили, но тут вылезают хипсторы и начинают кукарекать, что без жирных фреймворков, которые проблем больше создают, чем решают, жизни нет.
Хуита, бизнес диктует наворачивать йобы в браузере - с жквери лапшой тут можно только жидко обосраться и съебнуть с проекта, пока нормальные пацаны не заметили. Каким тупым надо быть, чтоб думать, что какие-то хипсторы решают что именно будет в тренде, а что нет. Это тебе не вирусный маркетинг, это гонки, где выигрывает тот, у кого конкурентное преимущество.
А где там была адекватная критика? Выражение return check && value это нативный жс и нормальная практика.
>>796763
Тебе напиздели господа
>>796858
>>796931
И первый и второй пример делают одно и то же, присваивают результат функции b переменной a если передается truthy значение. Только в первом случае сменив true на false ты присвоишь переменной false, а во втором ничего.
Может, ты ещё !1 вместо false и приведение к инту через |0 "нормальной практикой" назовёшь? Оно с одной стороны нативный жс, конечно, но с другой — снижающая читабельность кода кашица, которую в век промисов, сахара для классов и прочих модулей юзать как-то неприлично.
В отличии от твоих примеров эти шортхэнды нихуя не снижают читабельность кода, если, конечно, преодолеть предел айкью двух ретардов выше.
https://invite-me-to-2chpr.herokuapp.com/
> один редактор для всего
Это обычно значит, что он для всего говно.
Да и вообще текстовый режим в 2016 на десктопе - это пиздец какой атавизм. Ты мазахист какой-то.
Ты ебанутый?
a = true && b()
a = true && 42
a === true
Нормально заменять if (something) { func(something) } на something && func (something), но тут значение a различается в двух вариантах.
> > один редактор для всего
> Это обычно значит, что он для всего говно.
Нет, это значит, что он насколько хорошо и универсален, жетбраинз ребенок
Готов поспорить, что жетбрейнс-ребенок делает кнопочками всё в несколько раз быстрее и ненапряжнее, чем ты выбиваешь свои заклинания на клавиатуре, попутно вытирая пот со лба
>Это обычно значит, что он для всего говно
Да любая программа говно, которая не делана под конкретного человека и конкретные задачи. Можно аппроксимировать плагинами и прочими кастомными патчами, получится говно в шоколаде, И хуле?
>текстовый режим в 2016 на десктопе
Я что-то пропустил, десктопы превратились в фоторамки? Или моноширинная сетка нынче уже не тру и надо код комиксансом писать? Деплой, пакажманажеры, VCS — один хуй в консоли все.
Жетбраинс-ребёнок умеет в слепую десятипальцевую печать? А то знаем мы этих задротов, которые в погромисты вылезли... наловчился в шутанах быстро по кнопочкам тюкать, но через жопу и уже хуй переучишь, проще кверти выкинуть и обучить какому-нибудь твиддлеру.
Телеграммопараша не нужна. Светить телефон гэбне и юзать сырую пародию на слак - не нужно. Да и людей мало.
Хотя бы тем, что функционал ветвления с помощью && прозрачный и задокументирован, а битвайзовым или кастить в инт это сайдэффект с нехуевыми ограничениями.
Да, да, да, жетбраинз шорткаты настолько хорошо, что в жетбраинз встроены шорткаты из Emacs и vim
Туда должен приходить объект ToDoItem ( у него есть id, text и
булево значение)
Делаю это так: https://jsfiddle.net/50djaf8q/1/
Получаю в консоли вот это.
(index):49 Uncaught ReferenceError: task is not defined
1й раз пишу фронт, соре.
1.В твоем фиддле не подключен jQuery
2.Лучше не ловить клики в атрибутах тега, а вешать лиснер
3.var json = JSON.stringify(todo);
Они так заманивают вимеров и эмаксеров. Вимера ведь калачом не заманишь опять корячить руки для вражеских концепции QWERTY CUA-шных сочетаний.
Слак не сливает данные и имеет нормальные клиенты для всех мобильных и десктопных осей, а телеграм говно для школьников из вк. А конфа живее всех живых.
> Слак не сливает данные
Пруф, что не сливает
Пруф, что телеграм сливает
> имеет нормальные клиенты для всех мобильных и десктопных осей
Которые тормозят просто нереально, в сравнении с телеграмовским, который даже на моей распе просто летает
> А конфа живее всех живых.
Мантры какие-то, я же там есть
>Пруф, что не сливает
Пруф отрицания? Ты ебанутый?
>Пруф, что телеграм сливает
Пашка. Он всегда ходил под гебнёй и нет поводов думать, что в этот раз он внезапно изменился.
>Пашка делает заявление, что не собирается сотрудничать с властями и сливать ключи.
>Анон делает заявление, что пашка всегда ходил под гебней и всё уже давно сливается.
Спасибо, что показал путь к истине, анон.
> Пруф отрицания? Ты ебанутый?
Знал, что ты так скажешь. А теперь иди нахуй:
https://techcrunch.com/2015/03/27/slack-got-hacked/
Охуенно! Легко жи запомнить.
AND - правило правой руки (возвращает второе значение, если первое truthy)
OR - правило левой руки (возвращает первое значение, если оно truthy)
Тебе шашечки или ехать?
Ебашь в N++ по-хардкору. Там тебе проекты, и прочие свистоперделки если надобно, причем все шустро и удобно.
>Тебе шашечки или ехать?
Не понял. Но спасибо, сейчас буду смотреть N++, а то от хтоничного запутанного пиздеца Ителлиджей уже глаза болят, нахуй.
> передается
POST-запросом?
> сверяется логин/пароль
Ищется в базе и проверяется. Если совпадает - записываешь в сессию данные пользователя
В этом примере же имя с паролем прописан заранее, мне надо, чтоб логин/пасс были динамичными.
А вот какого хуя на false можно тихо и безрезультатно пытаться вешать свойства и никаких эксепшонов не сыпется? Я знал, что жабоскрипт говно, но не до такой же степени. Последний раз так охуел, когда узнал, что в похапэ до 5.4 нельзя было к свойствам возвращённого функцией массива на ходу обращаться.
Сервер после загрузки страницы не может ничего по своей инициативе на клиент слать, только если ты (с клиента, опять-таки) откроешь комет или вебсокет, и то пока он не отвалился.
Ну так вместо хардкода делай запрос к базе. Ты ж даже не сказал, что за база. А впрочем, сразу лучше sequelize бери.
Я не знаю как гуглить реализации/примеры/мануалы, да и понимания о реализации нет.
Ну дак sequelize с ней работать умеет.
Барев брат! Как сам, как семья?
Бамп
Тогда смотри, да. Правда, он стух немного. Но общие принципы уловить можно
Немножко перефразирую. Есть у меня node.js проект в WebStorm (нахуй IntelliJ). Как Express js рисует страницы? Как я понял, для Angular js нужен только тег на html страничке, а значит, его туда нужно добавить. В какие папки распихать всю эту ебалу? Пояснений по структуре проекта я почему-то не нашёл.
А как, собственно это делается? У меня есть связка хуёв скриптов на express. Мне нужно сделать страничку, на которой бы пахали эти скрипты.
Каких скриптов? Express - это сервер.
В идеале, если его использовать с ангуларом, ты делаешь через ангулар запрос на роуты - express отвечает json'ом, ангулар его парсит и вставляет куда нужно
А как отправить запрос экспрессу и получить ответ? Половина гайдов - невнятные.
Ангулар делает запрос:
$http.get('/api/hello').success((data)=> { console.log(data) }); // Hello!
Express по этому роуту отвечает:
app.get('/api/hello', (req, res)=> { res.status(200).send('Hello!')});
Конечно html нужен, а в него ты уже ангулар подключаешь. Что-то ты рано ангулар учить начал
Вовсе нет. Порог входа как раз довольно низок, можно начинать его использовать почти сразу после прочтения тутора и парочки гайдов. Вот кривая обучения довольно долгая, хоть и пологая, потому что множество подводных камней и специфичных не дженерал-кейс вещей.
К примеру Ember имеет куда более высокий порог вхождения, это жесткий фреймворк который надо знать хотя бы на 75% чтобы его применять, в отличие от ангуляра. При этом у него короткая кривая обучения, - сел, выучил, и дальше ебашишь себе спокойно ни о чем не задумываясь.
Как ты это смешал вообще, бэкенд с фронтендом? Sails - надстройка на express, там учить нечего, если знаешь express
Ну я просто расставляю приоритеты что первое учить. А так наверно sails просто освоить тем кто уже использовал другие MVC.
Учи. После смерти руби на sails стало появляться всё больше работы.
наподобие вопрос, но только он наверное к хтмл больше относится. Как на одной странице перейти по меню чтобы заголовок и navbar остался тот же, но контент открылся другой?
Это делается не ангуляром, а через html.
Самый простой вариант:
https://webref.ru/html/iframe
http://www.bootply.com/95542#
>>798359
Ты тоже хочешь отображать чужие внешние страницы у себя? Если да, то пробуй iframe, но в твоём случае с ним могут возникнуть сложности при autosize контента.
Есть другие более сложные варианты, например, скачивать к себе внешние страницы и потом их отображать, здесь уже гугл в помощь.
Если контент именно твой, то это не схожая задача, здесь нужно будет перключаться на другую view. Для начала попробуй бутстрапом реализовать, у них есть отличные примеры в документации.
На другую view, только вот я думал это решается каким-нибудь href-ом. Спасибо, щас попробую поискать
>>798368
>>798371
Жара мне весь мозг расплавила, херню тебе написал, лол.
Короче, navbar делай тупо бутстрапом:
http://www.bootply.com/95542#.
На сайте бутстрапа найдёшь ещё примеров с navbar.
А вот уже контент отображать:
1) Внешний контент: iframe или шерсти интернет.
2) Твой контент, то это разные view должны быть (Это если ты MVC концепцию используешь). В navbare да, это тупо href получается на твою другую view.
Как-то так.
Спасибо, сейчас попробую изменить view
> Твой контент, то это разные view должны быть (Это если ты MVC концепцию используешь). В navbare да, это тупо href получается на твою другую view.
А без бекенда это нельзя реализовать?
Сейчас есть выгрузка с бекенда и отображение на фронт, а так же добавление новой тудушки.
Мне нужно навешать на все чекбоксы по лиснеру, и в случае клика делать ajax patch запрос и еще кнопку удаления. Халп.
https://jsfiddle.net/fa3sxcqd/
Ааа, это ты, который тудушку делает уже несколько дней кряду. В чем хелп-то нужен?
Вешай лиснеры. Только не по чекбоксу, а групповой, например, на класс. А внутри хендлера проверяй, на что таргет. По свитч/кейс логике можно определить для каждого элемента свое действие. Профит!
https://jsfiddle.net/5tanumyz/
result - undefined потому что. И даже result.toString(). Есть какой-то другой путь?
Если result не определен, его нужно определить.
Очевидно же.
Хинт: ты проебался с 'result' где-то сильно раньше в своих вычислениях.
У меня не то немного, у меня тудушек может быть сколько угодно, но при этом одна и та же функция должна отбатывать ( патч запрос на сервер)
Имеется .xls таблица где-то 4000 х 4, графики строятся из её данных, могут строиться как крохотные на несколько точек, могут строится и по всему диапазону.
Так вот, в чём для js лучше давать данные?
Выбирать php скриптом, потом в какой-нибудь xml сохранять и передавать? xml очень много весит.
Поясните за этот момент
Засунуть все данные в CouchDB, как вариант. А ее теребить будет быстрее, чем читать файл с диска или парсить XML. Хотя, парсить придется в любом случае, только уже нативный формат JSON.
И еще проблема, что все это внутри ul'a и еще и кнопку delete припердолить надо, не понимать как это сделать.
> У меня не то немного, у меня тудушек может быть сколько угодно, но при этом одна и та же функция должна отбатывать ( патч запрос на сервер)
Какое это имеет значение, сколько у тебя тудушек? Да хоть дохуллион. Вешай на класс лиснер, в хендлере ссылайся на this.
ну там все в одном диве сделано. а у меня тип 2 лиснера в каждом ли должно быть, на чекбокс и на кнопку удаления.
Их типо в отдельный див внутри ли пихать?
И подскажите вот эти все Coffee Script и иже с ним это типа такая возможность писать "питонично" а потом пересобирать в js?
С чего начать?
Если не путаю, кофескрипт любые фреймворки поддерживает.
Кофискрипт больше на руби похож, чем на пыхтон.
>как остановить выполнение скрипта до совершения пользователем определённых действий?
Повесить алерт, очевидно же, лол. Он остановит выполнение скрипта до тех пор, пока пользователь не нажмет "Ок".
косяк скорее всего на клиенте, но ошибок не показывает никаких, не пойму что не так.
https://jsfiddle.net/a4h3q94r/
дак а проблема в чем, браузер то мой поддеживает WebSocket,
var ws = new WebSocket('ws://localhost:8888');
на клиенте ошибок не показывает, да и connection событие на сервер бросает, я знаю про сокет ио, я хочу с низкоуровневым разобраться, а потом уж обмажусь express, socket.io и прочими паспортами
ща проверю твой код.
кста, во многих местах нецелесообразно использовать let. const уместнее смотрелся бы.
я так понял, что это происходит когда обновляешь страницу не перезапустив сервер
на самом деле проблема оказалась на 39 строке:
wss.on('message', message => {});
я вешал обработчик message на wss (webSocketServer) когда повесил на каждого клиента по отдельности все заработало
https://jsfiddle.net/a4h3q94r/1/
вот минуту назад об ентом подумал и заработало, бля я код из учебника переписал неправильно
пасибо анон
Дабы не стать заложником подобной ситуации (ведь все гипотетически возможные эксепшоны в try/catch не отловить) автор предлагает воспользоваться встроенным модулем 'cluster' и, через мастер процесс, форкать дочерние процессы, тем самым, заставляя их падать принудительно после первого же необработанного эксепшона (заодно и некое подобие балансировки нагрузки имитируя, да), и возрождаясь вновь.
Так вот вопрос к профи - такая схема реально используется в продакшне кем-либо? И чем такой вариант лучше/хуже модуля Node Forever?
"You should now understand that once an unexpected error is thrown process is on it's way to junkyard."
Значит все пиздеж и можно смело пропускать мимо пальцев эксепшоны?
Может для того, что вордпресс переписали на ноду, лол? Скоро эта армия пыхомакак будет соснет
Опубликована в этом году, если верить издательству.
https://pragprog.com/book/kdnodesec/secure-your-node-js-web-application
Просто я слышал о такой проблеме последний раз где-то в 2013. Не знаю, актуальна она сейчас или просто все начали вешать глобальные обработчики экспепшенов, но у нас чат-сервер с декабря прошлого года работает без рестартов и всё хорошо
Сделайте за меня и поясните, почему так плис.
https://jsfiddle.net/f1ypucfg/
Нахуя там бабель? Года и так поддерживает последние стандарты.
Нужно отправить от ангулара экспрессу два файла, а потом, проделав с ними операции, вернуть результат в виде строки (или похуй, чего) от экспресса ангулару.
Ты тролишь, что ли, блять? Это же всё без проблем гуглится, куча ссылок
> Нужно отправить от ангулара экспрессу два файла
https://habrahabr.ru/post/191464/
> проделав с ними операции, вернуть результат в виде строки (или похуй, чего) от экспресса ангулару
app.post('/files', (req, res) => {
// операции
res.status(200).send('result')
})
Нужна помощь.
Есть вот такая маленькая функция.
function inputCheck () {
alert(this.value);
console.log(typeof this);
}
Она срабатывает на onkeyup, при этом постоянно выдает undefined, хотя инпут не пустой. Из-за чего это может быть и как исправить?
> this.value
С чего ты взял, что такой метод вообще есть?
var inputCheck = (e) => { alert(e.target.value) })
Я спокойно пилю на бабеле, правда на реакте. Если правильно настроишь сборщик или скачаешь настроенный, то разницы вообще никакой
бамп
А чтоб не фреймворк, а код работающий в реальном проекте?
Вот как например тут выложет топовый бекенд на питоне
https://github.com/reddit/reddit
Как можно что-то сделать за тебя, если нет сервера?
Добавляй нужным кнопкам классы и data-id, а потом слушай через листенеры и что-то делай
<button data-id="1" class="remove">Remove</button>
$("body").on("click",".remove",function() {
console.log($(this).data('id'))
});
В ноде другой подход, тут не принято делать переусложненное монолитное говно нереальных размеров, а разбивать всё на независимые микросервисы.
Так я написал как они вешаются. После клика на кнопку листенер вернет её id из data-id
Ну так а где посмотреть можно набор таких сервисов?
Просто хочу разобраться как пишут реальные проекты на ноде, но примеров не нахожу кроме новой админки вордпресса про которую тут кто-то несколько тредов назад написал "вордпресс переписуют на ноде!!1".
> В ноде другой подход, тут не принято делать переусложненное монолитное говно нереальных размеров
В том и суть, что ты можешь маленький кусок говна переиспользовать, потому что он отвечает за конкретную задачу
Это не новый вордпресс, просто новая админка к нему которая никому в хуй не вперлась кмк.
Хотя возможно это они так обкатывают ноду и когда-нибудь реально выпустят cms на ней(лет через 5)
Ты не понял сути картинки, любитель обмазываться...
Может проблема не в монолитах, а в том что ты говно пишешь?
>когда-нибудь реально выпустят cms на ней(лет через 5)
Но ведь есть KeystoneJS и Ghost Writer.
Я про разрабов вордпресса.
> Может проблема не в монолитах, а в том что ты говно пишешь?
Монолит всегда скатывается в говно, потому что нельзя всё продумать заранее, а проект становится всё сложнее и сложнее. Микросервис всегда можно вообще переписать, хоть на другой язык, который лучше подходит под задачу
Это что, какой-то плагин, выводящий список библиотек, используемых на странице? Поделись, плиз.
wappalyzer
Есть две функции которые делают одно и то же. Разница в том, что один работает в хроме. но не работает в огнелисе, а второй наоборот - работает в огнелисе, но не работает в хроме.
Как мне запускать проверку на брузер и выдавать лишь нужный код?
yep thanks
обязательно встрянешь если нет опыта
Лул. Скажи честно, ты же ЖС решил взять нахрапом, не читая по ней ничего совершенно?
п.с. кавычки скобки прочее пробовал.
$('<button data-id='+$item.id+'class="remove">Remove</button>').prependTo(li);
$('<button data-id="'+$item.id+'" class="remove">Remove</button>').prependTo(li);
Кавычки чет съелись
Вопрос, как мне отобразить данные? Интерпретатор не видит массив объектов.
Допустим console.log(data), нихуя, а вот внутри функции return console.log(data) в сосноли массив с данными отображается.
Это из-за локальности переменных? Типа аргумент функции, который локально создается.
Первый ангуляр.
Гугли даун.
Мое, не мое - не важно.
Я не могу найти как текст из инпута записать в переменную/массив/json/похуй_во_что в клиентском js и передать серверной, чтоб я ее хотя бы мог вывести в консоль.
Если мои представления о том как это происходит отличаются от реальных действий, так наставь на путь истинный.
Ты уже заебал. Иди читай учебник
http://learn.javascript.ru/
Я заебался тебе по главе примеры кода в тред переписывать
>скажите делают ли на ней магазины ?
Неудобно, бери джумлу и не выебуйся.
Вот буквально месяц назад ставил на пощупать reactioncommerce, оно еще сырое шо песец.
Какой тебе толк от ноды, если ты не знаешь как работает DOM, http? Это как хотеть научиться бегать, не умея ходить
Мелкий магаз можно и самому написать, благо на ноде это в удовольствие. Тебе ж не дохуя гибкое решение создавать на все случаи жизни.
> научиться бегать, не умея ходить
Чет Фореста Гампа вспомнил.
Я немного иначе отношусь: я как ребенок, который учиться письму, а потом уже учиться видеть в своей писанине ошибки. Так же и я пытаюсь написать, ради того, чтобы видеть что работает, а потом или/и походу замечать косяки. У меня банально нет опыта для анализа своего кода.
Давай подсказывай куда смотреть.
Учусь.
Это больше напоминает "гитаристов", которые пропустили постановку рук, ноты, аккорды и сразу начали играть по табам дип перпл
Смотри html, потом js
Нет ничего плохого в таком подходе, но учи последовательно, епта. Чтоб передавать данные по протоколу http на ноде, тебе нужно знать как он работает, чтоб понимать что ты вообще делаешь. Чтоб взять данные с input, нужно понимать как эти данные хранятся, и как к ним добраться.
Копируя код с треда многому не научишься. Будешь может понимать какие-то паттерны, но шаг влево-вправо и ты обсераешься
Почитай как отправлять с клиента данные на сервер, потом как принимать на сервере
Алсо, я примеры это уже кидал итт
Теперь в аджаксе передай username. Открой в доке jqery ajax и смотри как там пост запросы делаются
AJAX или form с прописанным action
По идее ты должен в url указать конкретный url Типо /getUsername, а в app.js уже app.post("/getUsername", function (req, res) {});
Все равно он хуйню написал в url, app.js это ж просто название файлы на серваке.
Там надо писать что-то типа /login
А в app.js обрабатывать посты по этому url
app.post('/login', func(req, res))
Ты там можешь написать хоть '/hyisobachiy.exe'
Главное чтоб url была одинаковой на клиенте и сервере.
Вот он прав, иди пересматривай, там дальше будет гораздо сложней, а у тебя отсутствует понимание базовых принципов работы http-протокола(
Я не люблю деморализовывать начинающих программистов, но ты явно что-то упустил
так: "var arr = ["soa", 1, 2];
Или
так: "var arr = new Array ["soa", 1, 2];
Пока на большинстве хостингов пыхпых и иногда пёрл и пыхтон, а не какая-то нода — сасать будешь ты. И VPS нужны далеко не всем.
А зачем VPS? Есть же PaaS. Но я тоже сомневаюсь что нода уйдет в мейнстрим сайтостроения "под ключ", хотя было б прикольно.
кароч говорит что айди андефайнд в данном случае.
$("body").on("click", ".remove", function () {
$(document).ready(function () {
$.ajax({
type: "DELETE",
url: "http://localhost:8080/" + $(this).data('id'),
success: function (msg) {
console.log(msg);
}
});
update();
});
});
Ещё бы. Нахуя ты обертку из document.ready добавил, поехавший? У тебя this заменяется
Кто-то еще пользуется хостингами от васяна? А, да, я же забыл, вон в /веб/ пиарят свое говно для целевой аудитории макак.
https://www.hetzner.de/en/hosting/produkte_webspace/level1
Это васянский? Можешь посоветовать что-нибудь лучше возможно?
>hetzner
лютый кал же
алсо, вот тебе первая же впска за 15 баксов в год, можешь там своими нодами в жопу ебать родных и друзей, цена даже ниже этого говна с ужасной репутацией
https://lowendbox.com/blog/dedistation-ddos-protected-openvz-vps-starting-15year-london-uk/
Да куда хочешь, главное после подключения jquery
Спасибо, выглядит годно, попробую взть у них один впс для тестов.
А про хетзнер ничего плохого не могу сказать за несколько лет использования, не было проблем с ними.
А вот когда на всяких русских хостингах я "лечу сайты от вирусов" то там охуеваю с того что за те же деньги или большие оно работает крайне хуево.
Ты правда не соображаешь, что вместо ожидания ответа от рандом ананаса давно мог намного быстрее разобраться сам в таких вещах, как "куда мне добавлять жс на страницу шоб работало" и "как правильно написать 10 строк базового jquery кода"?
Советую полистать сайт, это очень популярное коммьюнити где всякие компании делают йоба-скидки типа таких что по ссылке, может найдешь что-то покруче даже.
Типа 4гига @ 4 ядра за 20 баксов в год, с кучей перделок.
Это скрытый реквест помощи был, не спал хуй знает сколько, бекенд давным-давно готов и протестирован ( работает) и сегодня нужно выкатить всё.
Кому нужно? Ты это кому-то за деньги делаешь, пидрила? Не понимая, как жс вообще подрубается к документу?
О х у е т ь.
Нет жи, кто за деньги такой говнокод в фронте возьмет?
Тестовое на жаба девелопера, сказали что на фронт похуй, лишь бы работало.
Просто то, что ты не можешь справиться с задачей, которую любой школьник сделает с гуглом за вечер, говорит о том, что ты от природы тупой. Хз как ты на джаве умудряешься писать
Жабоиндусам должно быть стыдно за тебя.
Как это понять?
function inBetween(a, b) {
return function(x) {
return ...
};
}
Как интерпретатор понимает что (x) относится именно к arr а не к чему то другому?
Замыкания. Ты ж сам в функции filter, передаешь в цикле элементы массива
Функция, которая возвращает функцию. Помнится мне, тута месяца три назад из треда в тред гонялся парнишка, который не понимал, как устроен счетчик, скроенный подобным образом.
Суть заключается в очереди выполнения.
Обрати внимание, как передается inBetween в функцию filter.
inBetween вызывается с аргументами (3, 6) и, следовательно, выполняется, возвращая в filter не собственное тело, но дочернюю анонимную функцию function(x), причем не просто возвращая, а с контекстом. Именно поэтому анонимная функция сохраняет способность обращаться к аргументам материнской функции inBetween .
Если залезть поглубже, то в Chrome DevTools можно проследить весь жизненный цикл функции, от вызова и начала ее выполнения до передачи контекста и возврата данных.
Многим тяжело суть замыканий понять
спасибо.
>в Chrome DevTools можно проследить весь жизненный цикл функции
Демистифицировать поведение такой функции можно установив брейкпоинт в возвращаемом значении дочерней функции. Хромой дебаггер заодно раскрывает и скоуп (область видимости), и контекст (сиречь Closure). Т.е. дочерняя анонимная функция имеет доступ к своим локальным объектам, объектам материнской функции и, конечно же, к глобальным (Window).
Не понимаю зачем вы поритесь в сраку этими замыканиями, если их можно оформить просто как вспомогательные функции. В чем тайный смысл разрывать себе и другим моск?
>Не понимаю зачем вы поритесь в сраку этими замыканиями
Такой подход, кстати, охуенно облегчает жизнь любителям поиграться с коллбэками. Т.е. в коллбэк можно передать дочернюю функцию, доверху указав в материнской необходимые аргументы, как раз, как было у вопрошающего анона в фиддле. Сам я так не делаю.
Ну и по сути это реализация фактори паттерна.
http://jsfiddle.net/Aapn8/7921/
>Как можно при помощи expressjs скачать с интернета страничку
NEECKAQUE
>чтобы её распарсить потом? И как её можно распарсить?
Request + Cheerio
>Ребят, почему второй круг не появился
Тащем-та, он и появился.
>и как вообще сделать несколько кругов?
Очеидно же, задать разные координаты для отрисовки, не?
var drawCircle = function(color, lineWidth, percent, x, y)
...
ctx.arc(x, y, radius, 0, Math.PI 2 percent, false);
Спасибо, дружище. А то одни дауны повылазили.
Ты сделал так, что это все работает, только если указать эти id:
drawGraph({id: 'graph1', circleColor: 'green'});
drawGraph({id: 'graph2', circleColor: 'green'});
drawGraph({id: 'graph3', circleColor: 'green'});
Но у меня эти id динамические. К айдишнику graph подставляется число автоматом. Можно ли обойти это, и что бы скрипт сам брал айдишники, а не я их прописывал в скрипте?
Можно. Если все эти дивы будут завраплены, например, в див, то просто пройдись по всем дочерним элементам.
var wrap = document.getElementById('wrap');
var a = Array.prototype.slice.call(wrap.children);
for (var i in a)
drawGraph({id: a.id, circleColor: 'red'});
Что-то они не отображаются вообще.
И на моем сайте они не могут быть все завернуты в один див.
>Что-то они не отображаются вообще.
Все работает.
>И на моем сайте они не могут быть все завернуты в один див.
Dom traversal. Если ищешь по ид, а не как показали тебе с классом, то
document.querySelectorAll('[id^=graph]')
>>800124
> document.querySelectorAll('[id^=graph]')
http://jsfiddle.net/xxxwww/m1dhc8w5/3/
Уже можно в либу оформлять, лел
Что не то? Графики будут отрисовываться на всей странице, на всех элементах с классом 'chart'
Ну давай разберем.
1. Это работает:
<div id="graphWrapper">
<div class="chart" data-percent="88"></div>
</div>
<div id="graphWrapper">
<div class="chart" data-percent="100"></div>
</div>
Мне так и нужно, окей.
2. Вместо этого
drawCircle('#efefef', options.lineWidth, 100 / 100);
drawCircle(opts.circleColor, options.lineWidth, options.percent / 100);
Мне нужно это, например:
drawCircle('#efefef', options.lineWidth, 100 / 100);
drawCircle('red', options.lineWidth, options.percent / 100);
Что бы задать цвет всем кругам сразу. Один цвет для всех.
3. Если удалить:
drawGraph({id: e.id, circleColor: 'green'});
То все ломается, а оно мне не нужно.
4. Обязательно юзать две функции, или что это?
let drawMultipleGraphByWrapper = (wrapperId) => {
let nodes = document.getElementById(wrapperId).childNodes;
for (let i in nodes) {
let e = nodes;
if(e.className == 'chart') {
e.id = 'chart-'+i;
drawGraph({id: e.id, circleColor: 'green'});
}
}
}
let drawMultipleGraphBySelector = (selector) => {
let nodes = document.querySelectorAll(selector);
for (let i in nodes) {
let e = nodes;
if(e.className == 'chart') {
e.id = 'chart-'+i;
drawGraph({id: e.id, circleColor: 'green'});
}
}
}
По-моему можно только с первой работать.
Ну давай разберем.
1. Это работает:
<div id="graphWrapper">
<div class="chart" data-percent="88"></div>
</div>
<div id="graphWrapper">
<div class="chart" data-percent="100"></div>
</div>
Мне так и нужно, окей.
2. Вместо этого
drawCircle('#efefef', options.lineWidth, 100 / 100);
drawCircle(opts.circleColor, options.lineWidth, options.percent / 100);
Мне нужно это, например:
drawCircle('#efefef', options.lineWidth, 100 / 100);
drawCircle('red', options.lineWidth, options.percent / 100);
Что бы задать цвет всем кругам сразу. Один цвет для всех.
3. Если удалить:
drawGraph({id: e.id, circleColor: 'green'});
То все ломается, а оно мне не нужно.
4. Обязательно юзать две функции, или что это?
let drawMultipleGraphByWrapper = (wrapperId) => {
let nodes = document.getElementById(wrapperId).childNodes;
for (let i in nodes) {
let e = nodes;
if(e.className == 'chart') {
e.id = 'chart-'+i;
drawGraph({id: e.id, circleColor: 'green'});
}
}
}
let drawMultipleGraphBySelector = (selector) => {
let nodes = document.querySelectorAll(selector);
for (let i in nodes) {
let e = nodes;
if(e.className == 'chart') {
e.id = 'chart-'+i;
drawGraph({id: e.id, circleColor: 'green'});
}
}
}
По-моему можно только с первой работать.
Ну давай разберем.
1. Это работает:
<div id="graphWrapper">
<div class="chart" data-percent="88"></div>
</div>
<div id="graphWrapper">
<div class="chart" data-percent="100"></div>
</div>
Мне так и нужно, окей.
--
У тебя невалидная разметка. Ты в курсе, что ид должен быть уникальным? Да и врапать нужно все чарты, а не каждый по отдельности оборачивать.
>>800165
> 1. Это работает
Нельзя иметь два одинаковых id, это противоречит конвенциям. id - ИДЕНТИФИКАТОР, он должен быть один. В твоем случае нужно использовать классы, у тебя уже есть класс chart, по нему и можно рисовать
> 2. Вместо этого
> 3. Если удалить:
Ты, судя по всему, вообще в жс не шаришь
Если тебе нужно просто рисовать графики по определенному классу, то вот:
http://jsfiddle.net/xxxwww/m1dhc8w5/5/
Удалил всё "лишнее"
> 4. Обязательно юзать две функции, или что это?
Первая рисует графики во врапе, вторая по селектору (по классу, по id, по любому атрибуту)
>>800167
Лол, в смысле?
>Нельзя иметь два одинаковых id, это противоречит конвенциям. id - ИДЕНТИФИКАТОР, он должен быть один. В твоем случае нужно использовать классы, у тебя уже есть класс chart, по нему и можно рисовать
Мне структура HTML не позволяет сделать так, как делаете вы.
>Лол, в смысле?
Я там задавал такой же вопрос, и мне там один ответил, чтоб я тоже юзал document.querySelectorAll
> Мне структура HTML не позволяет сделать так, как делаете вы.
Какая структура? Она тут никак не влияет, у тебя идет поиск .chart по всей странице. У тебя может быть хоть десятиуровневая вложенность, может её вообще не быть, всё равно будет работать
>Она тут никак не влияет
Вот почему ты сразу не сказал?
Спасибо большое, лучей добра и позитива. Все работает. Я счастлив.
Неужели есть долбо>бы которые реально пользуются такими бесплатными хостингами? Блин, 2016 год на дворе ведь уже.
>Enterprise
Ага. Только при чём тут интернет-магазинчики, бложики, музло- и софтопомойки, информационные сайты фирм и всякое такое прочее? Нода и жирные JS-фреймворки позиционируются как замена технологиям разработки десктопных и мобильных приложений и RIA. А стек HTML+CSS+JS+PHP+MySQL как жил, так и живёт. Джанга, рельсы, спринг, аспнет его не вытеснили и не убили, почему вдруг нода должна убить?
Не обязательно бесплатными, на бесплатный влезет максимум личный сайтик, статика или динамика с полутора посетителями в час. А бесплатно и Openshift/Heroku есть, так и что? И учти ж ещё, что PaaS и тем более VPS сложно админить, нужно постоянно держать для этого человека или срочно искать фрилансеров неизвестного уровня жопорукости, а PHP-сайтик по FTP залить и дамп базы в PMA закинуть любая макака осилит.
А кто говорит, что нода убьет этот стек? Этот стек невозможно убить, не предоставив полноценной замены пыхе, которая при отсутствии трафика севрер не нагружает вообще
В сети валяется скрипт интернет-магазина аккаунтов, думаю какой-нибудь студентик за 10-15к перепили тебе его в магазин ключей.
Мне он не нужен, я спрашивал сколько стоит сама работа написать такого рода сайт с нуля
ну бирём какой нить гавнаетский рейт 10$, работы та максимам на 2 недели, значет 80 часов * 10$ = 800 баксав.
Я сейчас пишу подобный движок, только для себя. Кому-то б я такой ни за какие деньги бы не делал.
Но это я, лучше в /б или /врк спроси, там тупые непривередливые студенты-нищеебы, которые за 5к сделают
Да, но это не принципиально, мне так просто удобнее
>полноценной замены пыхе, которая при отсутствии трафика севрер не нагружает вообще
Любой язык, на котором писал не жопорукий даун с бесконечными циклами.
Ты что-то нихуя не понял. Для пистона, ноды, руби нужно постоянно держать рабочий инстанс, который грузит сервак. У пыхи инстанс рождается после получения запроса и умирает после ответа на него
Но там надо постояно держать апач, нжинкс или другой вебсервер который тоже грузит сервак, чудес и магии не бывает, 80 порт должен кто-то напостоянку слушать.
Да и вообще о какой нагрузке на сервак речь если нет запросов и нода нихуя не делает просто ждет?
мимо
> Но там надо постояно держать апач, нжинкс или другой вебсервер который тоже грузит сервак, чудес и магии не бывает, 80 порт должен кто-то напостоянку слушать.
Вебсервер может быть один на все сайты
> Да и вообще о какой нагрузке на сервак речь если нет запросов и нода нихуя не делает просто ждет?
Запусти голый экспресс и посмотри сколько он жрет
Память
У меня только каркас mvc из примеров репозитория экспресса ест 30 мб. Это только каркас.
Готовое приложение у меня в среднем ест 150-250 мб
Нода не конкурент пыхе для малопосещаемых сайтов, а пыха не конкурент ноде для хайлоада
Ну там половина шаред либ.
Ну и для сравнения голая нода без нихуя занимает всего на 7мб меньше.
Ну а по поводу всяких сайтов с низкой посещаемостью, то я полностью согласен что нода там не подходит.
Для команды очевидно. До сих пор использовался реп визуальной студии.
Гитхаб слишком социальный. Обитель форкинга и пиздинга.
Когда и я был социоблядью, мне нравились все эти звездочки и друзяшки. Ровно до тех пор, как стал зарабатывать на своем коде. Тогда пришло осознание, что весь этот опен сорс просто утопия.
Я даже поясню для ньюфагов и некоторых заблудших душ.
Есть два типа программистов, зарабатывающих и работающих даром или за копейки.
Каждый сам выбирает свою роль. Это даже не зависит от навыков. Конечно минимальные способности нужны, хотя бы знания сочетания копипастинга.
Ближе к телу. Почему программисты в своей массе стали получать меньше? Разве они мало что могут? Нет. Сегодня даже школьник может на коленке поднять сервер, накидать сайт за вечер и запустить стартап на выходных. Спасибо, опенсорс.
Раньше, даже простой интеллектуальный труд ценился. Ты делал пинг понг и люди несли свои деньги, женщины предлагали интим, а власти мечтали нанять тебя в свои элитные структуры. Теперь ты собираешь крайзис из ассетов на юнити за неделю и тебя поливают говном. Спасибо, опен сорс.
Как я и говорил у программистов две личины, позитивно воспринимаются те, кто гребет бабло, закрывает и ворует, присваивая себе чужой код и унижают всех этих бомжей с бородой, которые верят в то, что капитализм все еще не наступил. Из-за них у программистов есть также негативный облик - обиженка, затворник, чмошник, обоссанный программист, никчемное говно. Скорей всего речь о тебе.
Никто кроме тебя, не решает кому принадлежит твой код. Когда ты выбираешь GNU лицензию ты подписываешь в том, что ты предатель и не заслуживаешь уважения в среде достойных программистов.
Из-за тебя у нормальных ребят будет меньше предложений, из-за твоей "щедрости" средние зарплаты не поднимутся выше з/п какого-нибудь водителя, потому что бомбила берет деньги за свой труд, а ты нет.
Тебя обокрали? Ты обокрал нас, когда сделал наш код общественным достоянием.
Петух, сука, как же я ненавижу опенсорсников. Ссыти на них, гнобите и унижайте. Они не достойны места в этом мире.
Пиздец ты шизик обоссаный, аж противно отвечать тебе.
Так переживаешь за свою нищенскую зарплату, с которой ничего не случится, потому что задач у программистов становится всё больше и интереснее, что готов по тысяче раз переписывать одно и тоже, а не заниматься полезным делом.
Алсо, вангую в тебе ньюфага-крудошлепа, который думает, что на он сейчас занимается полезным делом и мог бы получать гораздо больше, если бы не проклятые опенсорсники
Типичный столлмановский синдром. Ожидал, что набросится несколько сектантов с мозгом пропитым безумными идеями о коммунизме, где все для всех и бисплатна!!1
Я понимаю что это все я вылечу просто установив ide апп, но все же, в чем проблема.
А хочу я сохранить свои говна из сентиментальных чувств, вдруг хорошо овладею JS, будет приятно посмотреть.
Ты хоть понимаешь, что об этом и речь. Программисты недополучают денег, потому что их труд ничего не стоит.
Если бы их труд ничего не стоил, они бы ничего не получали. Ты даже в логику не можешь?
Разве интеллект это не ресурс, разве интеллектуальный труд менее ценен, чем физический? Программисты итак лишаются многих радостей жизней, им приходится отказываться от нормальной жизни, чтобы выполнять нетривиальные вещи, на которые у протстого быдла ни хватит ни ума, ни всей жизни.
Но нет, мы не будем брать денег, отдадим им все даром. Ну и пиздец. Где тут логика?
Но я бы мог продавать либы компаниям, занятым разработкой готовых приложений, если бы не эти петухи.
Благодарю, заработало https://ideone.com/7woTCD https://ideone.com/37VHoC просто я был не внимателен, как в целом код? Или просто на таких простых заданиях особо негде сильно обосраться?
Тебе работы нехватает? Тысячи вакансий, работай — не хочу, хочу продавать либы
Код хороший, но можно решить эти задания куда короче
Посмотри решения тех заданий, которые ты накодил, и охуей
https://github.com/marijnh/Eloquent-JavaScript/tree/master/code/solutions
Привел бы тебе убедительные возражения, но я стал больше ценить время и не хочу тратить его на распри с демагогом. Вряд ли ты сам веришь в ту позицию, которую пытаешься оправдать.
Ты просто еблан. У тебя вообще нет четкой позиции, как и логики в ней
ДАВАЙТЕ НЕ ВЫКЛАДЫВАТЬ ЛИБЫ В ОПЕНСОРС И ДЕЛАТЬ ПРОЕКТ НЕ ЗА МЕСЯЦ И ПОЛУЧАТЬ 1000, А БУДЕМ ДЕЛАТЬ ЕГО ПЯТЬ МЕСЯЦЕВ И ПОЛУЧАТЬ 5000. ЕЕЕ ВОТ ЭТО ЗАЖИВЕМ ТАК ЗАЖИВЕМ!!
Ты понимаешь, что нихуя бы не изменилось, просто сильно тормозился прогресс?
как это на компе выполнить? скачал Visual studio открыл вставил сделал файл тест.жс а открыть\скомпилировать в смд хз как
> Мы (программисты) могли быть богами этого мира, но из-за опен сорсников мы те, кем пренебрегают.
Но ведь это просто наемный труд, компании зарабатывают на труде программистов гораздо больше чем платят.
Это как хабрахабр, все пишут туда статьи/переводы, а на рекламе зарабатывают левые люди.
Или как фриланс биржи.
На программистах паразитирует куча всякой хуйни короче и единственный годный шанс избежать этого это свои стартапы.
А по поводу гитхаба, есть же битбакет, это тоже самое что гитхаб, но приватные репы там бесплатны.
Все верно. Вот только этот прогресс произошел за наш счет. Мы его оплатили, своими жизнями, а могли бы в своем поместье жить.
Сидели на бакете, но сейчас подумываем перейти на гугл клауд, там в две строки синхронизация настраивается, пока просто зеркала держим. Все нравится, но пугает, что повторится история с гугл кодом, гугл ридером и десятком других проектов убитых гуглом.
В либы выносится код из проектов и публикуется. Фреймворки пишутся при поддержке компаний. Весь труд оплачен, хуй знает с чего ты решил, что кто-то пишет либы вместо работы.
А чем плох бакет то?
Гугл клауд коммерческий проект. Я не помню, чтоб у гугла умирали коммерческие проекты
Иди в жаву - поймёшь, насколько закрытые библиотеки и инструменты становятся кривым и убогим набором из костылей со временем.
Это заслуга CGI как такового, а не похапэ. Что мешает CGI-скрипты на жабоскрипте писать? Нода жирная — так другие интерпретаторы есть.
Всегда.
Можно ли решить эту задачу возвращая анонимную функцию вместо return buffer?
Точнее вопрос даже такой, можно ли добавить метод к функции изнутри этой функции?
Тип такого?
function f() {
return {
del: function() {console.log('deleted')},
add: function() {console.log('added')}
}
}
Вызов такой же:
var someFunc = f();
f.del() // 'deleted'
Так ты возвращаешь объект, а не функцию еще и называешь его someFunc :3
Мне надо чтоб работал такой вызов someFunc()
function f() {
var buffer = function() { console.log('self') };
buffer.add = function() { console.log('add') };
return buffer;
}
var buffer = f();
buffer();
buffer.add();
Не, я думал есть способ сделать что-то вроде
return function () {} и внутри этой функции как-то указать что вот у нее будет такой метод.
Но видимо нет такого способа.
Никак не получить доступ к содержимому внутри closure.
Сорян, за тупые вопросы.
Import, так как это официальный стандарт, который скоро вытеснит остальные варианты.
Всем здрасте.
Вопрос скорее не сколько в JS, сколько просто в логике скрипта.
Есть вот такая херня на сайте(вместо цветных блоков изображения) - http://codepen.io/anon/pen/akYogo
Вроде все работает, НО, когда сайт будет готов, не будет известно сколько изображений будет. Может 4, может 8. Нужно сделать код, который бы работал для любого кол-ва. Сделал массив, раздал каждому элементу пронумерованный айдишник, а че дальше делать не ебу. Помогите пожалуйста
$('.img').hover(function(){
$('.img-full').hide();
$('#' + (this.id).slice(0, -3) + 'full').show();
})
ну вот посмотри еще раз в кодепан - http://codepen.io/anon/pen/akYogo
там я костыльно показал, как это должно работать визуально,
проблема в том, что там я знаю что изображения 4, и сделал 4 функции для каждого из них, а в "полевых условиях" сколько будет изображений не будет известно, нужно сделать код, которому было бы похуй сколько их, он бы все равно работал для каждого
Единственную прикольную штуку видел, это обработка через JsHint на ошибки.
боже, ты гений, спасибо
Забыл ещё за снипеты. Это все умещается в обычном текстовом редакторе.
ну для какого то большого проекта с ангуларом, нодой, монго и т.д. лучше подойдет webstorm - самый топ
На моем днищеноуте он лагает шопиздец. Самый смак - это фризы по две-три минуты, когда он начинает переиндексировать проект с кучей модулей. Ебанная ссанина. Вернулся на N++ и слава богам Египта.
Использование ide предполагает, что ты работаешь с большими проектами и много зарабатываешь, соответственно имеешь нормальные рабочие инструменты. Если ты можешь заменить ide на npp и радоваться этому, то ide тебе и не нужна
Расскажи про специфичные плюсы этой IDE, которыми ты постоянно пользуешься.
Как я понял, поэксплуатировав немного, вебшторм не может в извлечение методов из исходником для последующего автокомплита. Это так?
> специфичные плюсы этой IDE, которыми ты постоянно пользуешься
Оче удобный рефакторинг
Интеграция с нодой для дебага. Брейкпоинты и инспектирование без выхода из ide
Проверка на опечатки в коде, сканируя весь проект
Подсказки по возможной оптимизации и структуре кода
Структура кода в виде дерева и удобный переход по ней
Шаблоны для файлов с автопроставлением различных переменных, вроде копирайтов/времени и тд
Построение списка задач из TODO в коде
> вебшторм не может в извлечение методов из исходником для последующего автокомплита
Может конечно, лол. Это одна из главных фишек, "умный" автокомплит
Единственная, наверное, проблема, что нельзя его просто так за несколько минут освоить, как редактор. Нужно почитать и разобраться, иначе он для ничем от редактора отличаться не будет, только ресурсов больше есть
>без выхода из ide
Всё-то вам жирные комбайны надо, а как же юниксвей? Давайте сразу браузер в IDE засунем, чтоб прямо там отлаживать, а не удалённо, верстать мышкой и ваще.
>что нельзя его просто так за несколько минут освоить, как редактор
Хороший редактор (не блокнот с подсветкой кода) тоже осваивается непросто.
>иначе он для ничем от редактора отличаться не будет
Изкоробочная подсказка по встроенным средствам языка и проверка синтаксиса на ходу — это уже немалое отличие. Кстати, эта самая проверка имеет негативное психическое воздействие, потому что ругаются, блджад, на недописанную строчку в процессе её написания. Нахуй так делать?
ng-book и будешь сеньором-помидором ангуляр инженигр
https://docs.angularjs.org/tutorial/step_00
тоже начал разбираться. Вот прошёл офф. туториал параллельно делая похожую хрень сам (минус тесты)
Думаю теперь сделать что-то, вроде как тестовой прилаги, хз пока что. Телефонный справочник пока запилил, без выебонов.
Вопрос: где можно подробно ознакомиться о нем и о других методах и свойствах stdin/stdout/stderr?
В документации к ноде о них ни слова.
Есть див на всю ширину страницы, упакованный во флексбокс. При добавлении второго дива они поровну делят ширину.
Проблема: появление элемента происходит резко. Я же хочу, чтобы правый элемент плавно вылезал/расширялся, а исходный левый элемент так же плавно сжимался. Как это сделать без жс-анимаций?
Спасибо, резиновая уточка.
Нужно добавить свойство transition: flex-grow 1000ms linear и выставить подходящий flex-grow.
Сразу поясню, что ось будет нуждаться в node.js сервере, очевидно подойдет минимальный линукс, способный на это.
Далее я напишу файловый менеджер, самые нужные программки на js, типа блокнота, калка и всякие проигрыватели с просмотрщиками просто форкнув и переделав под себя готовые решения.
Далее форкаю последний хромиум и моя ось готова.
Ее фишка - весь софт будет открытым, так как нужны будут исходники, то есть ты копируешь не бинарники с интернета, а именно код, архивированный конечно. Пакеты исходного кода и ресурсов, все в открытом виде.
Каждый юзер сможет менять все, что захочет. Из уберфич будет возможность загнать всю свою ось в репозиторий в сети и восстановить именно свои конфиги на любой другой машине.
Это будет встроенной фичей, моя реализация восстановления системы.
Также приколом системы будет то, что она сможет запускать ограниченное только ресурсами машины число независимых нод, например вы хотите использовать комп для запуска текстового редактора, сервера майна и веб сервера, пожалуйста вы запускаете пакеты приложений и система выделяет столько независимых серверов, сколько требуется.
Как вам в целом идея.
Да, графическая оболочка и вообще все приложения системы будут поддерживать CSS3 и HTML5. Например вы пишите свою утилиту, вы сможете юзать привычные теги и собрать такой тип окна, какой хотите, используя готовые шаблоны из сети или вручную настраивая каждую кнопочку и шрифт.
Будут и системные шрифты, минимальный набор, но каждое приложение может использовать любые другие.
Такое вот дерьмо я мечтаю создать, хотя бы начать это дело, поскольку мне нравится писать на js и учитывая, что он развивается я вполне представляю, что на нем можно будет удобно писать системные приложения.
JS OS (ориентировочное название)
Похоже на наебалово. Не удивлюсь, если собирают деньги на кикстартере.
Годно, юзаем
> А можно ли это реализовать через mysql и node.js?
Конечно
> правильно ли это будет?
Конечно нет
Я решил добавить настройки для пользователей, теперь у меня есть таблица Settings. При регистрации я добавляю записи в две таблицы,в Users и Settings
Но в таблице Users у меня уже есть 10 пользователей, у которых нет запись в таблице Settings.
Как решить эту проблему?
Тебе данные как-то хранить эти нужно, чтобы несколько раз отрисовать? Или только один раз отрисовать кому-то и забыть?
Эти данные - святыня святынь, их не то что хранить надо, их надо выбить каждому человеку на его еблище грешном.
Что я хочу сделать - есть несколько графиков 2ух мерных и один 3ёх мерный. Пользователь заходит - выбирает параметры, интересующие его - отрисовываются графики, при желании он может их сохранить в виде картинки, пдф, ну это уже другая история.
Какие параметры будет выбирать пользователь -неизвестно, поэтому как я полагаю нужен пхп скрипт, который в зависимости от выбранных параметров сделает sql запрос, так?
Запрос выберет, что интересует конкретного пользователя вот сейчас и дальше это пойдёт к нему в бразуер магическими путями. которые мне неизвестны в силу не знания мат части.
js или кто? это пропарсит и построит графики, еблище пользователя увидит и охуееет, потом, там выборка данных из бд больше естественно не нужна, потмоу что потом либо пользователь закроет к херам сайт или сделает новый запрос на совсем другую выборку
Как бы я это делал на C#, я бы запустил ms sql server, законектился с ним, сделал выборки, отрисовал бы их какой-нибудь бибилиотекой, матлабом или математикой.
но это декстоп приложение, как сделал всё тоже самое из браузера?
>>801758
Такой же алгоритм и на жс. Ты серверную часть на пыхе сделать хочешь?
В общих чертах алгоритм такой
Сервер получает откуда-то xls ->
Парсит его на данные ->
Заносит данные в базу
Юзер заходит на страницу сайта ->
Выбирает параметры и нажимает кнопку, делая запрос на сервер ->
Сервер делает запрос к базе с нужными параметрами ->
Отправляет данные пользователю, где эти данные как-то отрисовываются
Алсо, если данные нормализированные, лучше взять mysql или postgres, а не nosql, как советовали перед этим
TypeScript стоит учить?
Учиться дописывать в конце тип данных через двоеточие?
>Но в таблице Users у меня уже есть 10 пользователей, у которых нет запись в таблице Settings.
>Как решить эту проблему?
Проблемы никакой. Пройдись по базе с таблицей юзеров и настроек. Если в настройках нет записи с таким юзером - создай и запиши дефолтные настройки. Вот и все.
<tr ng-repeat="p in people | orderBy:'age'">
<td>{{$index+1}}</td>
<td>{{p.name}}</td>
<td>{{p.age}}</td>
people - просто массив объектов.
Теперь, когда я добавляю новый элемент массива, используя push(), элемент появляется в массиве и отображается в таблице, но только в конец. orderBy:'age' на него не распространяется. Я думал нужно сделать что-то в духе refresh, но вроде нет. Искал, но запутался, растолкуйте, плз, почему новодобавленный элемент не сортируется.
.unshift()
>We're happy to announce that we’re splitting the Angular 2 codebase into two flavors – a Dart version and a TypeScript/JavaScript version – and creating a dedicated AngularDart team.
>a dedicated AngularDart team
Лол, нахуя?
У них же большие планы на дарт, хотят его вроде свифта сделать у эппле
Теперь будут срачи не только angular2 vs reactjs, а еще angilular dart vs angular js
Таки да, я лох. parseInt помог. Спасибо, гуру!
Как вы так живёте, я особо не в курсе мира JS, но вроде как только недавно трубили о том, что есть нормальный JS - это TypeScript. Angular2 на него перелез и теперь Angular2 никому не нужен.
Он "не нужен" только здешним аутистам, которые потом его всё же будут учить с красной жопой. Как это было с первым ангуларом.
На западе про него трубят оче сильно.
Мимо-реактоблядь
>и теперь Angular2 никому не нужен
Не потому что на TS, а потому что overengineered piece of shit, Эйзинберг подтвердит.
А тайпскрипт хорош. Просто удовольствие писать на нём.
> а потому что overengineered piece of shit
Это называется архитектура и продуманное ядро. Чего нет, например, в реакте, и каждый тут пишет как ему в голову взбредет. Нет стандартов, есть десяток противоречащих друг другу договоренностей и каждый выбирает свою. Десятки версий модулей для вещей, которые по идее должны быть в ядре.
Нахуй это дерьмо, лучше overengineered, чем охуевать с больной фантазии коллег. Решил перекатиться на ангулар, когда он релизнется.
Потому что ты не изменяешь текущее значение, а перезаписываешь на новое.
Эта архитектура пахнет тем же, что и синтаксис шаблонов.
Те, что не изменяются присваиванием, называют константными значениями.
Это не либав привычном понимании. Они просто разбили фреймворк но модули, но по отдельности эти модули никто не использует. Вроде и либа, но де-факто нет.
Де-факто каждый может писать как ему в голову взбредет. Поэтому либа.
https://jsfiddle.net/m7ts7mLm/
Скорее всего проблема в том, что ты пытаешься вернуть response до того, как асинхронно получишь chunk. Делай колбэк или наворачивай промизы.
Действительно. Синхронно записал всё в файл - содержимое получено.
В замен я получаю высокую скорость рантайма. Что я получаю лишая себя этих возможностей в джсе? Это же просто суперсет, интерпритатор никуда не делся и по прежнему будет весь LHS интерпритировать, и никакого буста по скорости нет и быть не может.
Зачем вся эта телега нужна? Может быть я просто не шарю что-то, проясните пожалуйста.
Ах да, и спасибо большое.
Если ты не видишь в этом плюсов - не используй.
Это нужно для больших проектов, где много разработчиков. Там динамическая типизация становится проблемой, а не преимуществом.
>Что я получаю лишая себя этих возможностей в джсе?
Возможность писать большие проекты и тырпрайз всякий с кучкой таких же как ты обезьянок. Не допускать типа скатывания кода в хаос и при этом не нанимать шибко умных паграмастов, чтобы больше одного доширака в неделю не требовали.
Да все как обычно с любыми ограничениями, которые разработчик сам на себя навешивает - самоконтроль и\или организация кода.
Подскажите возможно ли по аналогии с выбором файла сделать выбор папки. Может подскажите какие-нибудь примеры, ну или хотя бы укажите в какую сторону гуглить.
V8 работает примерно так:
Если у тебя переменная инициализирована одним типом, а потом в нее запихнуты данные другого, движок ее реинициализирует - на это уходит время и память. Таким образом, статическая типизация позволяет писать более быстрый и экономичный код.
Требование одно: хорошо организованный и продуманный компонентный подход, крайне желательно - импортируемые кастомные элементы.
Поигрался с полимером - все нравится, но люди пишут, что нихуя не понятно - будет он дальше поддерживаться/развиваться, или нет.
Поглядываю на ангуляр2, оченно нравится тайпскрипт. Но, насколько я понял, там все markup-first (JS встраивается в маркап, а не наоборот), и пишут, что дебажить его адово.
В реакте нравится JSX (как раз-таки js-first, который мне импонирует), но до сих пор нет версии 1.0, и с каждым релизом он так меняется, что нуегонахуй. Есть подозрение, что долгий опенсорс на реакте со временем превратится в набор шизоидного кошмара.
Где я заблуждаюсь?
Ну так вот и думай, в коде после тайпскрипта будет минимум переинициализируемых переменных, v8 должен вроде как быстрее работать, не дергать кучу лишний раз.
Ангуляр2 тоже ещё не релизнулся, я когда делал проект на работе в апреле-мае, пережил 5 релизов, в которых умудряли синтаксис менять. Больше не обновляю, если багов нет, на какой версии начал, на такой и будет. Тоже самое с реактом можешь сделать, к тому же, на пет-проекте не похуй?
Попробуй Backbone.js ещё
Ну хз, в каждом классе будет свой полифил super и т.п.
V8 - это движок, интерпретирующий JS. Он написан на C++, который статически типизирован.
Это же пет-прожект, бери что нарвится и делай. Нравится js-first и тайпскрипт? Наверни реакта с тайпскриптом, никто не запрещает.
>>802282
>>802283
>>802347
>а теперь самый цимес яваскрипта - это функции, которые могут быть анонимными и переменными
Всплакнул.
Смешной студент не может в замыкания, спешите видеть
>да, javascriptы это зло. всегда отключаю их в браузере. но иногда всё же приходится.
>Добавлено: Пт ноя 21, 2014
Ебать.
Случайно, уважаемый. С телефона неудобно.
Есть nw.js для написания программ на js
Ты ебан? Ещё раз спрашиваю, где в V8 реализована статическая типизация JS?
> мне вот западло было жертвовать своими мозгами и честно говоря даже обидно, что я не могу писать свой софт легко и просто
> для меня это лютая мука, хотя с 20 лет назад еще начал изучать программирование и так и не осилил
> я понимаю принципы ооп, но они там говорят про свои абстгакции в то время как я оперирую образами
Неосилятор, короче. Ума ноль, а выебнуться хочет.
Да, и судя по всему он даже не слышал про ФП, раз так охуевает с функции-переменной. Застрял в 00-х и других туда тащит
Никогда не понимал, с чего у них так шаблон рвет.
[CODE]
function foo () {}
foo()
[/CODE]
[CODE]
const foo = function () {}
foo()
[/CODE]
Разнице же никакой. Что там, что там foo будет константой, которую можно вызвать.
Ох, давно макака code сломала?
Откуда такие лезут. Вот ещё одного уносите: https://habrahabr.ru/post/215777/
>14 марта 2014 в 01:01
Что в том году за сборки были?
return str.toLowerCase().replace(/( |^)[a-z]/g, (L) => L.toUpperCase());
А именно что за (L) => L.toUpperCase() ?
>>802453
ES6 Ultra Masterpiece Special Edition стрелочная функция, в данном случае выполняющая роль колбека.
Иначе можно записать (с некоторыми (this) ограничениями):
function(L) { return L.toUpperCase(); }
Блджад, из всех виденных мною поделий, начиная ещё с древней eyeOS, это первый десктоп на вебне, который реально передаёт десктоп-экспириенс, не тупит и даже выглядит пригодным для хомячков. Таки свершилось. Спасибо, анон.
npm кучу ненужных файлов тащит, ибо пакеты в нём содержат билды и для ноды, и для браузера. Не очень весело, когда директория с небольшой приложухой весит несколько десятков мегабайт из-за зависимостей.
Просто название. Скорее всего сокращение от Letter
Тут всё упирается в файловый диалог. Если он может передать выбранную папку как пачку файлов в ней, то можно. А вообще, у браузерного жабоскрипта нет доступа к файловой системе: если диалог отдаст имя папки, вытащить её содержимое не получится. Через внутренние API Firefox прочитать можно (не помню, можно ли получить к ним доступ через GreaseMonkey, но своим аддоном точно). Только учти, что мозилла из-за решетяности, трудноотлаживаемости и неинкапсулированности собирается через пару лет выпилить всё это дело нахрен в пользу убогого хромовского WebExtensions с парой плюшек, так что готовься перекатываться на SeaMonkey/Pale Moon/etc.
>Но, насколько я понял, там все markup-first (JS встраивается в маркап, а не наоборот)
Да вроде не. Можешь захуячить в компонент темплейт, прям как в реакте. А ангуляровские расширения для разметки — это не жабоскрипт, обычно просто специфичная ангуляровская декларативная хуита, от JSX принципиальных отличий не вижу, там тоже вкрячиваешь в тег хендлеры и можешь туда жабоскрипта напихать, а можешь в именованные методы всё вынести и будет чистенько.
А в 2016 жабоскрипты ещё больше жрут.
Как раз то, что нужно. Спасибо.
ФП тоже не обязательно перемешивает код (функции) и данные (переменные). Просто в жабоскрипте хэшмапы на хэшмапах и хэшмапами погоняют. И любой нормальный системщик будет недоумевать, на хрена плодить на ровном месте столько указателей. И тем более на хрена автоматом преобразовывать объект в число и делать прочие финты ушами, сокращающие и упрощающие код, но творящие полный пиздец под капотом, когда можно было бы намного эффективнее. Скриптовый язык, что с него взять.
Потому что какой-то мудель не умеет называть переменные.
https://jsfiddle.net/2zwyravy/
Пиздец, ну что за говнокод.
PerlPower клевый
Страницу до конца прогружаешь? аддоны для параноиков стоят? и почему ты в мёртвый тред пишешь?
>Пикрил
Почему у меня от этой хуйни все ядра на 100% загружены?
Причём любая замена на setInterval или onhashchange - вообще не меняют результат к лучшему.
Я подозреваю это как-то свзано конфликтом прямого доступа к cputime и что строгая привязка к date или time и их синхронизация может облегчить, но как реализовать я без понятия.
Помоги анон, а? Желательно готовое решение на основе моей пикчи.
Сап! Пните в нужное русло или на сурс готового решения для раздербанить, чтобы научиться в проксинг из расширения для Хрома. В двух словах суть задачи:
Разобраться в механизме работы такого расширения, которое по определенным спискам заворачивает траффик через прокси в зависимости от домена. В списках перечень доменов и проксей, и правил, хотя этот велосипед я и сам придумаю. Хочу плюшку, чтобы серфить все, как обычно из под своего IP, а на некоторые ресурсы шляться через прокси, и в идеале подправлять http-заголовки запросов на лету по неким правилам.
Вы видите копию треда, сохраненную 11 августа 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.