Этого треда уже нет.
Это копия, сохраненная 1 декабря 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
JavaScript #90 #1082836 В конец треда | Веб
Ссылка на прошлый тред: >>1074974 (OP)

Этот тред посвящён главному языку будущего - JavaScript. Благодаря своей гибкости используется в браузере, на серверах, в мобильных приложениях, на десктопе и практически во всех видах программирования. Удобный синтаксис позволяет легко писать на нём, а высокая производительность делает его отличным выбором для решения любых задач - от небольших магазинов до огромных highload проектов. JavaScript по праву является самым популярным в мире языком. На каждом сайте есть браузерный JavaScript, а JavaScript на сервере используется такими крупными корпорациями, как Amazon, Yahoo, HP, NASA, Walmart и многие другие.

Часто задаваемые вопросы:
https://github.com/vladimir37/js-thread/blob/master/Wiki/faq.md

Список материалов для изучения:
https://github.com/vladimir37/js-thread/blob/master/Wiki/learn.md

Список инструментов и направления JS-разработки:
https://github.com/vladimir37/js-thread/blob/master/Wiki/tools.md

Инструмент для визуализации и экспериментов со связями между объектами в JavaScript:
http://www.objectplayground.com/

Конфа /pr/ в Slack:
https://slack-2chpr.herokuapp.com/

JS-конфа в телеграме:
https://telegram.me/jsthread

НЕ КОПИРУЙ КОД ПРЯМО В ТРЕД!
Воспользуйтесь https://jsfiddle.net/ для браузерного кода и https://ideone.com/ для серверного кода.
Что я делаю не так? #2 #1082890
Посоны, а поясните по хардкору, почему эта функция через раз срабатывает?

В html подключаю draw3.js и в body-script вызываю функцию init(). В draw3.js только эта функция. Сам файл test.png - белый квадрат хуевича. Консоль лог выдает то 0, 0, 0, 0 то 255, 255, 255, 255. Вот F5 жму, рефрешу страничку и то нолики, то 255. Шозанахуй?

Скрипт запускаю на домене.
#3 #1082902
Почему можно сделать всего один export default в модуле?
#4 #1082905
>>1082902
Сценарячую! Почему мы даём какому-то экспорту привилегии? Надо, чтоб было несколько дефолтов и рандомом решалось, какой импортировать. Равные возможности, яй!
#5 #1082906
Есть проблема.

Есть map, внутри него еще map. Между мапами нужно использовать функцию OnClick. В результате происходит срабатываний столько сколько позиций в первом мапе. Как сделать?

И еще, как Акардеону внутри Акардеона задать функцию при открытии?
#6 #1082921
>>1082890
В data попадает Uint8ClampedArray
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Uint8ClampedArray

>The contents are initialized to 0. Once established, you can reference elements


Может это как-то влияет?
Попробуй логать после таймаута. Если влияет, то там точно будут только 255.
#7 #1082935
Бля, делаю запрос и страница перезагружается, как избежать этого? Но получить при этом ответ.
#8 #1082937
>>1082935
А где же код?
140 Кб, 720x528
#9 #1082945
>>1082935
Телепатическими силами заставил страницу не перезагружаться. Ты получишь ответ.
40 Кб, 1028x790
#10 #1082946
>>1082937
>>1082945

Не тральте. Как кстати рендер вставить из функции search_by_author в тело html?
42 Кб, 297x399
#11 #1082963
>>1082836 (OP)
Проиграл с жсеров. Мало того, что на говне пишут, так её и мочу какую-то изучают.
#12 #1082968
Антоны, что в этой хуйне не так? на деле в хтмл все ломается
https://jsfiddle.net/n5k0p0zu/3/

Почему то не жрет этот див блок
<div id="window">
<img class="close" onclick="show('none')" src="http://sergey-oganesyan.ru/wp-content/uploads/2014/01/close.png">
<img style="margin: 20px 0 0 50px;" src="">
</div>
Будто там какая то ошибка
#13 #1082984
Как правильно биндить функции чтобы не ререндить все элеметы каждый раз?
#14 #1083014
Написал тут змейку, только она не растет. Я молодец?
#15 #1083016
>>1083014
молодец.показывай
#16 #1083018
>>1083016
молодец.показывай()
#17 #1083027
Сука, объясните за эвенты. Как мне триггерить эвенты не на все элементы полученные через map, а на только те на которые я кликаю бля. Как мне забиндить блядский OnClick
sage #18 #1083030
#19 #1083031
>>1083018
Я стесьняюся
#20 #1083032
>>1083030

через this внутри хендлера?
#21 #1083036
>>1083027
Как ты через map биндишь евенты? Код показывай
#22 #1083037
>>1083031
нахуй ты нужен тогда здесь вниманиеблядь голимая? мут репорт
11 Кб, 918x199
#23 #1083041
>>1083032

>через this внутри хендлера?


Да спасибо, а как мне отрендерить пропущенную сквозь функцию инфу по нажатию кнопки?

>>1083036

>Как ты через map биндишь евенты? Код показывай



Ну я уже впринципе починил. Там залупа выходила, что когда я рендерю свои 5 внутренние складки он триггерят каждый раз блядский ивент.
#24 #1083059
Бля, это нормально что после нажатия кнопки триггерится еще эвенты, которые идут в render?
12 Кб, 1130x137
#25 #1083060
>>1083059
пик потерял.
#26 #1083073
А вообще реально зделоть, чтоб голова змеи перемещалась по одному сетинтервалу, а тело по другому?
#27 #1083089
>>1083073
Ебать ты заморочился. Делаешь обычный массив с телом змеи, каждый шаг делаешь аншифт и поп, если сожрал ягодку поп не делаешь.
#28 #1083205
я старый динозавр вылез и пещеры, смотрю - react. ну с redux все понятно, все очень круто - тут вопросов нет. и можно использовать отдельно от реакта.
зачем тогда он нужен, в чем прикол писать js и html одном файле в 2к17?
4 Кб, 652x59
#29 #1083236
ПЕРВАЯ СТРОЧКА КОДА
@
let proposals_before = Object.keys(proposals).length;
@
ВТОРАЯ СТРОЧКА КОДА
@
if(proposals_before == 0)
@
ПИКРИЛЕЙТЕД

Шо это за хуета?
#30 #1083255
>>1083205
Все наоборот, реакт охуенная штука, а редух мутная. Помню я в 2005-м делал один огромный объект-помойку и писал туда всю хуйню, а потом из него же доставал где кому что надо, суть та же.
#31 #1083281
Как не охуеть от дикого обилия разных фреймворков\библиотек и прочего говна, которое вроде все одно и тоже делает
#32 #1083282
>>1083281
Просто берёшь и не ахуеваешь. И пишешь на VanillaJS.
#33 #1083284
>>1083205
Суть в том, что ты не пишешь HTML, это чистый JS. Просто объектная презентация вью в более интуитивной HTML форме
#34 #1083286
>>1083282
И чо, это employable нынче? Всем же нужны мастера того или иного фреймворка
#35 #1083290
>>1083286
Значит пишешь в контору, где хочешь работать, и спрашиваешь, какие обезьянки у них в почёте. Если грят, что React-обезьянки - значит, становишься React-обезьянкой. Не надо учить всё подряд просто для того, чтобы пройти любое собеседование на изичах. Учи что-то конкретное. То, что нравится. А если контора хочет, чтобы ты знал и Vue,
и Lodash, и React и Angular и умел со всем этим работать -
шли нахуй, ибо ничего хорошего ты там не напишешь. У нормальных контор должен быть 1 любимый фреймворк на бэкенде и 2, максимум 3 - на фронте. И то, под каждый фреймворк зачастую нанимают по одному специалисту,
а не одного на все 3. Исключение - желание сэкономить на тебе бабло.
Но начать можешь с Реакта. Он сейчас наиболее востребован.
#36 #1083295
>>1083290
Спасибо, да, звучит разумно. мне elm нра
2,7 Мб, webm, 1280x720, 0:09
#37 #1083296
>>1082836 (OP)
Читаю вакансии по ноде и вижу такое вот требование:
— Mongo DB (глубже, чем использование mongoose)

Что имеется ввиду?
#38 #1083337
>>1083296
Очевидно, что требуются знания, позволяющие самостоятельно написать коннектор к БД, а не работа через имеющуюся обёртку.
#39 #1083361
Анон, а ты irc каналы какие-нибудь по жсу луркаешь?
#40 #1083364
>>1083361
Так есть же гиттер, почему именно ирка?
39 Кб, 600x450
#41 #1083406
Подскажите плз. В ньюфаг треде не отвечают
#42 #1083425
>>1083406
Конечно не отвечают, ведь никакого вопроса не задано.
#43 #1083429
>>1083425
что получается на выходе? абсолютно не разбираюсь в js
#44 #1083430
>>1083406
>>1083429
Лол, блять. Ты совсем тупой что ли? Написать "JavaScript Sandbox" и переписать код с бумажки не?
#45 #1083431
>>1083430
ну почему сразу тупой? я же сказал,что я не понимаю нечего в js я даже про JavaScript Sandbox ничего не знал. Написал код в консоли браузера. Получилось. у тебя плохой день был или что? почему вы все тут такие злые
#46 #1083432
>>1083431

>я не понимаю нечего в js



Зачем ты тогда решаешь задания на js?
#47 #1083433
>>1083431
Потому, что если ты учишься программированию, то должен знать, что для любого языка есть "песочница", в которой быстро можно что-то накидать. Чтобы попробовать C#, не обязательно ставить Visual Studio. Мы не злые
#48 #1083434
>>1083432
Так получилось,что я обходил всегда js стороной и изучал другие языки. Увидел,что на одном из it курсов,чтобы на него приняли нужно решить такую задачку. Мне стало интересно и я решил разобраться,т.к я понял,что идет работа с массивами,но полностью понять как работает код мне не удалось из-за незнания js опять же.Просто решил узнать
#49 #1083436
>>1083433
вот теперь благодаря вам я знаю,за что очень благодарен
#50 #1083437
>>1083433
Братишка, раз уж ты знаток. Подсоби и мне. Вроде всё правильно делаю, но на страничке не рендерится список. Что делаю не так?
#51 #1083439
>>1083434
Зачем записываться на курсы, где нужен язык, которого ты не знаешь?
#52 #1083443
>>1083439
я не хотел записываться, я просто решил узнать ответ. Понимаю частично,что в коде делается,а полностью понять не смог. Стало интересно. И если честно,то двач я сразу отодвинул на последний план,т.к. уже знал,что меня там могут встретить с такими вопросами слишком великодушно.
#53 #1083444
>>1083443

пиздуй на завод мудилка, тебе уже анон подсказал решение тут >>1083430 или это такой толстый тралинг у тебя?
#54 #1083446
>>1083443
Тебя "великодушно" встретят везде, где бы ты не задал вопрос на подобие "вот я листик сфоткал, сделайте за меня". Задавай конкретные вопросы - что непонятно, чего ты ждёшь от кода, что предполагает твой алгоритм, а что получается вместо, etc.
#55 #1083448
>>1083444
вот о чем я и говорил. я тебе на столько интерес,что ты за мной по тредам скачешь?
#56 #1083449
>>1083437
Ты заебал уже со своим списком авторов.
#57 #1083452
>>1083448

лол угу. в общем, в новой вкладке нажми в хроме ф12, перейди в "консоль", перепиши туда свой код и посмотри как он работает, и потом снова спроси, если что-то не понятно
#58 #1083453
>>1083449
Так поясни хули не рендерится и я съебу.
#59 #1083461
>>1083453
Въезжать в логику твоего приложения по рандомным кускам кода это такое себе удовольствие. Втыкай консол.лог на каждом шагу и смотри на каком шаге приходит не то что надо. Что пришло от сервера, что ты записал в стейт, что попало в компонент, и так далее. Если ты не понимаешь о чем речь зачем взялся за фреймворк не понимая основ.
#60 #1083466
>>1083461
Хорошо. Мне нужно вывести элемент по нажатию кнопки, но нихуя не происходит. Всё работает всё мапится. Нет только рендера. Не ебу почему.
#61 #1083469
>>1083466
как ты блядь читать и писать научился с такими мозгами вот что действительно загадка
#62 #1083475
>>1083469
Мы на личности переходим и мне надо съязвить что ты такой выебистый только в школе пока на тебя не поссат альфачи или мы всё таки останемся цивилизованными людьми и вернёмся к обсуждению проблемы при том что весь код, который нужен чтобы понять что происходит я предоставил?

Запрашиваешь, Получаешь ответ, мапишь, вытаскиваешь что тебе нужно, рендеришь. Привязываешь рендер к кнопке. Последняя часть не работает. Я спрашиваю хули не работает. Что сложного блять посмотреть и ответить если ты ебаный эксперт местный.
#63 #1083479
>>1083475

>весь код, который нужен чтобы понять что происходит я предоставил


раз ты скозал
#64 #1083483
>>1083479
Что конкретно ты не понимаешь и тебе нужно узнать? Есть функция, я хочу чтобы она выполнялась по клику кнопки и выводила мне список. Она не выводит список.
#65 #1083493
>>1083483

>Она не выводит список.


Она хотя бы вызывается? handleClick этот, вызывается? search_by_author вызывается? Я не ебу, как там чё в реакте, но кажется мне, что функция с первого пика ретёрнит titleList вникуда (нахуй он на отступ меньше остального? Я сначала вообще подумал, что вне коллбэка/промиса), а нажатие по кнопке пытается отрендерить то, что возвращает search_by_author, то есть нихуя.
35 Кб, 1151x353
#66 #1083500
>>1083493
Да. Всё вызывается. Console.log показывает что repsonse пришел и всё внутри есть. Нет только рендера.

>что функция с первого пика ретёрнит titleList вникуда



Вот я тоже не ебу. Может быть я как-то не правильно в jsx вызвал эту функцию.

>(нахуй он на отступ меньше остального? Я сначала вообще подумал, что вне коллбэка/промиса)



Как я понял отступы не особо там влияют. Что без return что с return нихуя не рендерит.

Если я убираю return titleList. Он мне пишет что я его нигде не использую. Собственно в моём понимании я должен вернуть titleList и отрендерить его в html.

То что функция работает показывает Author, который возвращается не пустым.
#67 #1083509
>>1083500

>Вот я тоже не ебу.


Ну так иди доки с примерами почитай, наверняка же это ультрапопулярное действие.
В стейт кто будет этот titleList пихать, а?

https://jsfiddle.net/zbhn1w6u/2/ Вот, блин, две секунды в бинге (в бинге, мать твою, даже не в гугле!) + абсолютное незнание react'а — готово.

>Как я понял отступы не особо там влияют.


Не влияют, как и эти уебанские скобочки у return'а, только зачем?
9 Кб, 1146x104
#68 #1083512
>>1083509

>https://jsfiddle.net/zbhn1w6u/2/



Ебать это конечно не читабельная запись кода, но да дело действительно в setState.

Теперь render() триггерится два раза, возникает вопрос это похуй или надо как-то чинить?
#69 #1083513
>>1083509
>>1083512
Забыл, Спасибо.
25 Кб, 768x291
#70 #1083515
Да, ну ебаный в рот.
#71 #1083520
>>1083512

>Теперь render() триггерится два раза


Ты не очень умный, да? render вызывается при каждом изменении state'а. Прочитай хоть это. что ли — https://reactjs.org/docs/hello-world.html

>>1083515
Шёл бы ты на ванильных js и html'е писать.
#72 #1083523
>>1083512
Сколько раз рендер вызывается, тебя по идее ебать не должно
#73 #1083536
>>1083523
Должно если он делает каждый раз запрос.
#74 #1083555
Перекатился со старого треда, а тут все этот отсталый список авторов построить не может.
Типикал жс пограмист.
#75 #1083621
>>1083555
Проблема не во вкатышах, а в ёбаных вакансиях, где фреймворк-нейм и зарплатка рядом стоят. А вкатыш типа поступает рационально, идёт по короткому пути.
Тут был программист на Реакте, который массив не мог отсортировать.
#76 #1083625
>>1083621
блядь это совсем надо быть ебанутым, чтобы в нашествии полоумных шизиков с дебильными вопросами в тред объяснять вакансиями. иди на хуй просто чмо ебаное и друзей своих дебилов уноси
#77 #1083755
>>1083536

У тебя не может быть запросов в рендере. Рендер — это просто проекция существующего стейта на вью. Разгребай лапшу. Рендер должен быть чистой предсказуемой функцией.
#78 #1083761
ТЛТ аноны, был ли кто из вас вчера на WebDev http://wdmeetup.ru/ конфочке? Были ли интересные доклады?
#79 #1083791
Есть сотня onclick, которые я вешаю из цикла.
Вот пример https://jsfiddle.net/qpamhts9/

Что лучше, хранить ссылку на объект DOM в замыкании, либо хранить id объекта DOM в замыкании, и потом искать его по document.getElementById?
Предполагаю, в первом случае я ем память, во втором - процессор.
#80 #1083792
Анон, смотри какую фигню наговнокодил. Это расширение для браузера, которое "шифрует" сообщения и пока работает только в TextArea на бордах (лень было проверять на других ресурсах). Еще он работает на Хромопере, лень было проверять на других хромиумах. Спасибо за внимание.
#81 #1083793
>>1083792
Поздравляю, ты изобрел куклоскрипт.
Это то, что он делал в RM-тредах много-много лет назад.
#82 #1083795
>>1083793
Не знал об этом и сейчас не вижу такой функции. Ткни пальцем пожалуйста. Обожаю допиливать куклоскрипт
#83 #1083798
>>1083795
Это была приватная фича только для завсегдатаев RM тредов.
#84 #1083801
>>1082836 (OP)
Надеюсь сдесь можно задавать вопросы новичкам
Почему второе условие всегда не работает вне зависимости от выбора
#85 #1083802
>>1083798
А в куклоскрипте не натыкался на код этой функции?
#86 #1083806
>>1083791
>>1083791

>сотня onclick


читни за делегацию событий, дальше не читал
#87 #1083808
>>1083801
JSFIDDLE
S
F
I
D
D
L
E
#89 #1083849
>>1083806
Знаю этот паттерн и использую. Но вот так написан конкретно этот кусок, и у меня нет времени его переписать, только выбрать одно из двух.
#90 #1083854
>>1083813
Это типа шутка такая, да? Если не шутка, перепечатай код ещё раз, без копипаста, а потом убей себя за такой стиль письма.
#91 #1083863
>>1083802
Тебе несказанно повезло, я нашел для тебя приватную версию куклоскрипта семилетней давности.
doSecure(), doUnsecure(). Разбирайся.
http://rgho.st/6mMcSgPBt
#92 #1083874
>>1083854
Просто скажи что не так, потому что я не понимаю где я написал не то
Или хотя бы что гуглить
#93 #1083892
Подскажите, можно ли скрипт(Js) обернуть тегами (Html)?
81 Кб, 1000x500
#94 #1083901
>>1083863
Спасибо, нефти тебе.
#95 #1083906
Почему JS- лучший яп на свете?
#96 #1083941
>>1083874
Сказал же, перепечатай заново строку "if(frm1.vib[0].cheсked){".

А затем можно сравнить
"cheсked".charCodeAt(0) и
"cheсked".charCodeAt(3)
Оба по идее должны указыват на букву "c", однако код у них, почему-то, разный. Догадаешься, почему?
#97 #1084058
что может нормально форматировать JSX?
есть альтернативы create react app?
go to definition по реактовским компонентам возможен в какой-нибудь ide?
#99 #1084144
>>1083892
Что именно тебе нужно сделать?
10 Мб, webm, 1280x720, 1:03
#100 #1084237
>>1082836 (OP)
Двачик, нашёл вакансию, но в ней есть такое требование Web sockets Circular JS. В гуле вообще не нашёл никакого Circular, может быть кто-то знает что это?
#101 #1084238
>>1084237
*Circular
#102 #1084240
>>1084237
>>1084238
Может, более опытный анон пояснит, нахуй это нужно, но в общем виде циркулярка - это короткозамкнутый объект, когда проперти объекта ссылается на этот же объект.

Пример:
var o = {}
o.p = o

Хоп-хей, ла-ла-лей, теперча в p у нас циркулярочка.
#103 #1084246
>>1084240
Хмммм, ну очень странное требование, как для вакансии...
#104 #1084249
>>1084246
Погугли socketio circular, мож что полезного извлечешь, у них объект насквозь в циркулярке.
ХЗ что конкретно твой потенциальный работодатель имел в виду.
#105 #1084258
Как сделать простую проверку чтобы если был undefined то присваивался пустой список? А то получаю что при поиске нету внутренних мета данных и всё идёт попизде. Нужно чтобы если кто-то прокатился еблом по клаве вместо ошибки нихуя не вывело.
#106 #1084259
>>1084258
if (data == undefined) {
var list = '';
}
#107 #1084260
>>1084259
Это смешно, спасибо хоть что настроение поднял.

Есть например:

{
"id": 1,
"title": "Test",
"content": {
"body": "sdfsdf"
"image": "http://example.com"
}
}

Но при поиске может найти хуйню где нет body, а я вытаскиваю именно его. Очевидно что получаю undefine. Как мне просто проигнорировать, если в нём нет body?
#108 #1084262
у меня завтра техническое собеседование по скайпу. на должность мидла(2к$). до этого уже давали тестовое, сделал на "крепкую пятерку" по их словам. и был разговор 20 минут с эйчаром. чувствую себя дерьмово. какой же ето стресс пздц.
#109 #1084263
>>1084260
if(data.body){
var list =''
}
#110 #1084267
>>1084262
Поделишься заданием? Конечно нет. Ну хотя бы расскажи в двух словах, что нужно было выполнить?
#111 #1084268
>>1084267
поделюсь офк
https://jsfiddle.net/45tjrvnm
1. надо сделать шобы переменная status работала
2. реализовать таймер который в конце будет вызывать колбек onFinish и передавать туда {$endTime:new Date()}
3. сделать так шобы это работало без тормозов при большом кол-ве таймеров на странице

есть еще по второму ангулару на сеньера из другой конторы
его я тоже сделал и прошел. кидать?
#112 #1084269
>>1084268
шобы вы понимали это такие задание которые вам в начале дают и после их выполнения еще интервью с hr + техническое интервью со спецом
#113 #1084326
>>1084268

> есть еще по второму ангулару на сеньера из другой конторы


> его я тоже сделал и прошел. кидать?


Конечно, няша. Спасибо.
60 Кб, 831x698
#114 #1084329
>>1084326
пустяки. это кем надо быть чтобы зажать показать такую вещь хз
пикрелейтед делал на ангулар 2
#115 #1084335
>>1084262

Эйчар, небось, 25-летняя ТП с гуманитарным псевдообразованием?

Интересно, с каким уровнем квалификации можно писать в резюме "эйчары идут нахуй" таким образом, чтобы данная запись не повлияла на возможность трудоустройства?
#116 #1084350
>>1084258

мб

let list = data.list ? data.list : [];
#117 #1084354
>>1084350

или ещё так короче:

let list = data.list || [];
#118 #1084363
>>1084354
>>1084350

там немного не так.

там response, в response -> message, в message items, а в items body, где body это список.

Поэтому когда у меня items, а там нет body. Меня шлёт нахуй map.

Потому что я пытаюсь достать body через:

this.setState({items: response.message.items})

const messages = this.state.items
const ItemList = messages.map((item, index) => { item.body.map((item2, index) => { console.log(item2) })})

И вот в этой конструкции мне нужно сделать проверку чтобы пропустить элемент и перейти к другому, если нет body внутри items.

Если можете предложить проще конструкцию чтобы пройти сквозь список и пройти по списку внутри списка, то я во внимании.

Грубо говоря у меня N array'ев а внутри каждого еще array. И мне нужна проверка на случай если внутри array нет array.

Ебаный рот... Это даже звучит по еблански.
#119 #1084380
Блять хуею с этого реакта ебаного, чтоб сраную кнопку сделать нужно блять тонну кода настрочить, нахуй оно нужно пиздец рот его ебал
#120 #1084385
>>1084380
Поощряют индусский код, псы!
И да, перекатывайся на vue.
#121 #1084389
Чуваки, создал в телеге канал, куда скидываю книги по js, Ноде, реакту и всему такому, кому интересно, подписывайтесь - https://t.me/programmingstuff
#122 #1084401
>>1084389
Тащ майор, забирайте клиента
#123 #1084409
>>1084363
Не вникал особо в твой эпос, но Rx определённо решает проблемы подобного рода.
#124 #1084415
>>1084363

а что тебе мешает в мап вставить перед ретёрн утиную проверку if ( item.body.isArray) ?
#125 #1084427
>>1084363
-> >>1084415 и плюс потом ещё отфильтровать нужно будет, так как map не может изменять количество элементов.

>[1,2,3,4,5].map(e => e > 3 && e).filter(e => !!e) // [4,5]

#126 #1084463
>>1084389
Интересно, если я сделаю приложуху, которая после сдачи кала, оригинала паспорта и норм ГТО позволит такую крутую и инновационную вещь, как... наберите воздуха... готовы?.. обмениваться сообщениями в Интернете в 2017, я смогу Пашку переплюнуть по унижению говноедов?
#127 #1084515
return ( message.map((item, index) =>
<div>
<Collapsible trigger={item.title} key={index} lazyRender={true}>
something
</Collapsible>
</div>)
);

Есть ли какой-то способ получить массив из map?

Вот не типо взять массив и проитерировать его, а именно просто массив.

array = message.map((item, index) => return item) ?
#128 #1084520
>>1084515
Так ты и присвой значение мапа, но не в ретёрне же.
#129 #1084523
>>1084520
Я не очень понимаю как, иначе бы не спрашивал.

array : message.map((item, index)) ?

map же нужно всегда функцию передавать. Какую функцию я ему должен передать?
#130 #1084524
>>1084515
Собственно массив:
array = message

Копирование:
array = message.slice()
array = message.map(x => x)

Исходный массив в мапящей функции
message.map((item, index, message) => ...)
10 Кб, 333x515
#131 #1084535
Короче, вот мой json. Как отрисовать title я знаю. Как мне отрисовать нормально info с учётом того что вот два последних этот тип метаданных не имеет.

Меня шлёт нахуй с undefined items.info
#132 #1084543
>>1084535
items.info || [ ]
#133 #1084556
>>1084543
а если мне например нужно items.info в map использовать?

например items.info.map((inf, index) => { something})

но при этом он пустой.
#134 #1084565
>>1084556
(items.info || [ ]).map((inf, index) => something)
#135 #1084569
>>1084565
Чувак, ты мой герой. Спасибо тебе.
27 Кб, 1259x477
#136 #1084589
>>1084565
Бля, сделал всё как ты написал. Ошибки не выдает, но не рендерит почему-то. Хотя передают не undefined. Тестовую рендерит, а нужную - нет.
#137 #1084592
Мне нужен аналог https://www.npmjs.com/package/voronoi с поддержкой произвольных функций расстояния. Что-нибудь такое в природе существует, или пилить самому?
#138 #1084595
Не смог пройти задачку про числа фибоначи, ебать я тормоз. Сижу думаю и не могу придумать ля
#139 #1084601
>>1084589
Всё починил. Проебался с return.
#140 #1084602
я не понимаю нахуя вы помогаете шизику с реактом
он же программировать не умеет абсолютно
#141 #1084604
>>1084589
у меня глаза вытекают когда я эту хуйню вижу
выпились уебище блядь
#142 #1084607
>>1084602

>он же программировать не умеет абсолютно



Умею, но не на реакте и не на js. Я понимаю что я должен сделать с логической точки зрения, но я не ебу как на скрипте это написать. Поэтому и спрашиваю тут.
#143 #1084608
>>1084607
блядь не отвечай мне хуесос ебаный мне похуй твои галимые отмазки. хватит срать в тред уебище
#144 #1084614
>>1084608

> хватит срать в тред уебище



срать is undefined.
#145 #1084616
>>1084535
Проксификацию запили, например
#146 #1084903
Ни у кого нет ненужной б/у Дэвид Флэнаган "JavaScript. Подробное руководство" (6-е издание)??? Я бы купил.
148 Кб, 768x1024
#147 #1084905
Почему я такой тупой? Задачки на рекурсию понять не могу...
#148 #1084907
>>1084905
Пакеж
#149 #1084911
>>1084907
Задача – написать функцию factorial(n), которая возвращает факториал числа n!, используя рекурсивный вызов.

Напишите функцию fib(n), которая возвращает n-е число Фибоначчи.
46 Кб, 1692x1199
#151 #1084938
>>1082836 (OP)
Анчоус, помоги.
Как запилить такой самодостаточный компонент на реакте? (Ну или просто хтмл)
У меня содержимое таблицы постоянно проваливается под днище и скроллится или вообще все или ничего
#152 #1084946
>>1084911
Ты рил тупой, сорри
#153 #1084947
>>1084946
Всм? А как решить эти задачи.
#154 #1084948
>>1084947

>как решить эти задачи?


используя рекурсивный вызов
#155 #1084949
>>1084948
Ну это понятно. А сами формулы, как ты собрался вычислять факториал?
#156 #1084950
>>1084925
JS, сэр. Впрочем, не очень понятно, первое или второе тебя смущает, но вот тут все правила неявной конверсии при сравнениях http://es5.github.io/#x11.9.3

1. true == "1", применяем правило 6
2. 1 == "1", применяем правило 4
3. 1 == 1
Готово.

Сдела то же самое с первый, на третьем шаге будет 1 == NaN, что, очевидно, false.
#157 #1084951
>>1084949
Так прочитай определение факторила на вики, дурилка, его второкласник (или когда там умножение проходят?) поймёт.
#158 #1084954
>>1084951
Понял формулу. А фибоначи как?
#159 #1084956
>>1084954
иди на хуй ну
#160 #1084961
>>1084954
Точно так же: википедия, число фибоначчи. Там ещё проще, вообще только сложение нужно, поэтому даже первоклашка справится!
#161 #1084963
Пиздец у вас тут отбитые. Задачки универские с Фибоначи решить не могут. А еще на врк-тред гонят.
#162 #1084964
>>1084963
есть разные
#163 #1084980
>>1082836 (OP)
Проганы, есть задача.
1. Есть такой сайт BrainwalletX на JS.
2. Есть ссылка на закачку его в zip: https://github.com/brainwalletX/brainwalletX.github.io/archive/master.zip
3. Есть index.html, который можно открыть во вкладке браузера, после розархивации.
4. Есть много монет, выпадающих из списка.
5. Эти монеты и их параметры - перечислены в index.html в списке <ul class="dropdown-menu dropdown-menu-two-column">
6. Когда выбираешь монету, скрипт brainwallet.js вгружает эти параметры на данных монеты, выбранной из списка,
и на основе данных, содержащихся в качестве параметров в этом списке.
7. Так же само работает и Sign с Verify.
8. Но на вкладке Сhains независимо от выбранной монеты, Armory и Electrum генерируют адреса биткоина.
Т. е. Armory и Electrum не подхватывают данные, содержащиеся в списке.
Какая функция это делает в файле brainwallet.js - не пойму,
по всей видимости это функция function crChange().

Короче, надо переписать всё это чтоб загружались данные из списка и добавить внутри кода ещё одно поле RANDOM SEED.
Пусть это будет строка с 256-битным значением, которые может указать в виде hex-строки любой пользователь.
И sercet exponent является изначальное значение hash(passphase), но с дополнительным XOR на эту строку.

Как всё это сделать?
#164 #1084997
>>1084963
А ты мог чтоли когда только начинал?
#165 #1085016
>>1084997
Цимес даже не в этом. Я такую задачку видел в одной комп. игре на тему кодинга. В итре где нет ни одной строчки кода, а все алгоритмы изображены в виде конвейера и кубиков со всякими операторами, методами, функциями и т.д.
#166 #1085022
>>1085016
Говорю же, не мог ты нихуя, а смеешься над новичками.
#167 #1085023
>>1085022
Ну и что что не мог? Все равно же смешно.
#168 #1085027
>>1085022
Если ты школьник <8 класса, то ещё простительно. Если старше, то уже как-то несолидно не смочь решить такую задачу, имея безграничное количество туториалов, подсказок и примеров.
Более того, что на самом деле плохо (ну не понял формулу там или не совсем понимаешь, как работает та или иная штука, мало ли, это фигня), так это то, что ты даже сформулировать проблему толком не можешь. "Не получается! Не могу! Не понимаю!", прям как блондинка. Что именно не получается? два числа сложить или умножить? Понять, как вызвать функцию изнутри её самой же? Как отановиться? Что? А ведь если бы ты смог это сформулировать, то даже сюда писать не пришлось бы, потому что первой строкой в гугле решилась бы твоя проблема.
#169 #1085046
>>1084980
там функция function crChange() внутри brainwallet.js
вызывается вот так:
$('#crCurrency ul li a').on('click', crChange);
а эта строка входит в функцию
$(document).ready( function() {
...
});

и всё это внутри функции
(function($){
...
})(jQuery);

т. е. в brainwallet.js эти параметры передаются через JQuery, а в armory.js - голый JS.
Как передать туда эти параметры - понять не могу.
#170 #1085054
>>1084268
>>1084329
только что закончилось собеседование
было две задачки на кодинг
https://codepen.io/brackets-arrows/collab/VrZYwZ/ тут пофиксить undefined
https://codepen.io/brackets-arrows/collab/rmqZQq/ реализовать функцию

вопросы по фреймворкам ангулару(инжектейбл, зоны, скоуп, перформанс, как реализовано отслеживание изменений и т.д.)
вопросы по event loop-у(куда же без него) и setTimeout
ну и еще куча всего. почти час говорили
#171 #1085055
>>1085054
я на ивент лупе взмок и вообще взмок
полтора года не работал. я кое-что очевидное позаебыл, а тут ивент луп хех
#172 #1085059
>>1085054
блин дал случайно ссылку с решением
вот нормальная
https://codepen.io/brackets-arrows/collab/VrZYwZ/
#173 #1085074
>>1085054
>>1085059

В решенный вариант не подсматривал, но чет не понял, первая задача решалась так просто, в одном из шагов не возвращался промис? Точно это исходное задание? Ничего ж допиливать не пришлось.
Вторая задач была в Codewars.

Так тебя на позицию мидла взяли? Фронтендером будешь, на энгьюлэ пилить прожекты? Если не секрет, назови вилку зарплат, на которую ты претендовал. Ну и расскажи, о чем еще болтали с тимлидом плес.
#174 #1085108
>>1084980
>>1085046
Короче, сам разобрался. Надо просто через файл brainwallet.js - передать эти параметры во все функции, вызываемые из armory.js и electrum.js
#175 #1085131
Вопрос по JS.
var ololo = new Date( (текущий timestamp) x 1000 );
ololo.getHours() - выводит часы, с учётом системных часов (переводит в мой часовой пояс). Так и должно быть?
#176 #1085132
Анончик, помоги, а то я туплю-торможу.
Как функцию принимающую (err, data)-коллбек переделать в промис?
#177 #1085133
>>1085131
вопрос про перевод в часовой пояс
#178 #1085145
>>1085132
Очевидно, нужно создать промис (new Promise()) и внутри него выполнить изначальную функцию, а внутри коллбека резолвить/реджектить.
https://repl.it/N65M/1 https://stackoverflow.com/questions/22519784/how-do-i-convert-an-existing-callback-api-to-promises
#179 #1085150
сап двачь, помогите с реактом

делаю что-то типа ТУ-ДУ приложения с базой данных на firebase
есть компонент View, который загружает эту базу данных, кидает в стейт компонента и рендерит в список

как лучше сделать, оставить так и просто рендерить <View /> в главном файле или сохранять базу в главный файл, а потом через props кидать в компонент View? ну, типа, рендерить вот так: <View huy={pizda} />
#180 #1085159
>>1085132
Есть же промисификаторы, например, в блюбёрде и в новой ноде.
11,7 Мб, mp4, 450x360, 3:31
#181 #1085175
>>1085145
Благодарю, забыл уже как промисы внутри устроены.
>>1085159

>в новой ноде


util.promisify() ?
#182 #1085176
>>1085175

> util.promisify()


Да, оно самое.
#183 #1085199
>>1085074

>в одном из шагов не возвращался промис


да

>Так тебя на позицию мидла взяли


еще неизвестно

>Фронтендером будешь, на энгьюлэ пилить прожекты


хз что ето "Фронтендером". проекты у них на ангуларе и реакте. верстать не надо
я 2к$ хочу
#184 #1085206
Помоги с тупняком. нужно запрос сделать, но он выглядит как query=song+year

я же передаю его в виде содержимого инпута как ${query}

Плюс к этому хочу результаты поиска проверять по двум query, но api позволяет только AND, но не OR.
#185 #1085214
>>1085206

>Помоги с тупняком. нужно запрос сделать, но он выглядит как query=song+year


я же передаю его в виде содержимого инпута как ${query}

Эту хуйню пофиксил. Как две query сделать через OR, если api не позволяет. Делать через url(query1) || url(query2) мне кажется не даст нужного результата.
#186 #1085215
>>1085214
Однако url(query1) && url(query2) дали почти нужный результат.
#187 #1085232
>>1085215
А нет нихуя =/
#188 #1085247
>>1085232
Починил. Просто я ебло.
#189 #1085256
Подскажите как установить дебагер для атома что бы не было ошибки ENOEN или где скачать бесплатно web storm актуальную версию для linux
#190 #1085259
Как предотвратить fetch если я использую onChange в Input. В итоге он запрашивает query="" и получает всю блять базу.
#191 #1085264
>>1085259
if( query == "") {return null}

помогло, но является ли это правильным способом?
#192 #1085285
>>1085259
А почему у тебя фетч сразу на onChange привязан?
Не спутывай так сильно вью и логику, фильтруй.
#193 #1085311
Двач, чому моя сортировка не пашет? Должно же быть abc2, abc3, abc1

https://repl.it/N7du
#194 #1085326
>>1084980
Кто-нибудь из программистов может подсказать,
как здесь сделать нажатой кнопку compressed
в зависимости от параметра gen_compressed (true или fasle)???

Вижу класс .addClass('active') но он не работает!
Может ещё что-то прописать надо?
#195 #1085327
>>1085311
a и b в внутри сортирующей функции — строки "abcN". У них нет никакого total_duration'а.
#198 #1085369
Нормально программируется с утра?
#199 #1085372
А в чём смысл учить это всё, если фронт умирает?
#200 #1085377
>>1085372
Бек енд.
#201 #1085379
>>1085377
Что бек енд? В шапке-то фронт
#202 #1085381
>>1085372
Это как он умирает?
#203 #1085384
>>1085381
Во-первых, везде пишут об этом, во-вторых, работы почти что нет, особенно если сравнивать с прошлым годом. Сейчас все, кто вкатываются во фронт, всё равно будут обречены на вкатывание в другие области. Я бы советовал вкатиться в мобильную разработку, если уж на то пошло. Ну, или же изучать нейронные сети и всё, что с этим связано. Только не говори мне, что фронт не умирает и в ближайшем будущем будут рабочие места
#204 #1085390
>>1085311
Сортируешь ключи, duration обрезается до сортировки
#205 #1085391
>>1085384
я работал удаленно на одну контору, а потом неожиданно в важный момент ливнул. перекрыл все контакты, ну типично.
через полтора года на меня накатило как-то ночью, что я так хуево с хорошими людьми поступил. сел и написал им письмо с извинениями. мол, я на самом деле наркоман, не смог побороть зависимость, скатился в говно. стыдно пиздец.
они утром пишут, типа а работать-то ты можешь? давай к нам обратно.
после этого захожу на двач и читаю твою хуйню и еще много такой же хуйни от других даунов. это каким образом фронт умирает, если там такая нехватка специалистов, что они кидал-нариков обратно на работу готовы взять? ссу+сру тебе в рот
#206 #1085398
>>1085367
Понял, базиба.
#207 #1085399
>>1085391
Посмотрим на тебя через два-три года
#208 #1085400
>>1085399

>пук

#209 #1085403
>>1085384

>вкатиться в мобильную разработку


которая массово перекатывается с приложений в натягивание фронт-морд на реакт нативе. нисе
#211 #1085592
Какая вилка зарплат в Питере на реакт (фронтенд)/реакт нейтив (мобилы) 2 года опыта?
#212 #1085632
прохожу самую длительную процедуру трудоустройства

cv -> тестовое задание -> интервью с hr -> тех. интервью -> интервью с менеджером (я тут)-> тех. интервью со специалистом клиента -> интервью с клиентом -> интервью с директором
#213 #1085706
Добрый вечер господа, подскажите мимокрокодилу как мне вставить в жиквери вот это
в параметре data у меня на фронт приходит {title: "тест", text: "тест", name: "васян", email: "", image: null}

я пишу вот так, сам блок выполняется проверял через console.log(data)
success: function (data) {
$("#post").html(data);
},
но на странице нихуя не появляется. ЧЯДНТ?
#214 #1085754
>>1085706
Попробуй так:

$('#post').append(data);
#215 #1085848
>>1085326
Сам разрулил, короче.
Там надо обозвать лейблы другими именами
и присвоить им классы так:
$('#gen_comp [name=comp]').addClass('btn btn-default active'); //активная кнопка
$('#gen_comp [name=uncomp]').addClass('btn btn-default'); //не активная кнопка
Иначе, класс присваивается input'у - это видно в исходном коде в Chrome.
Скоро в /cc запощу исправленный brainwalletX.
#216 #1085872
>>1085754
Не. нихуя.

Что, неужели всем так лень помочь, это же строка кода наверняка.
Вот есть дохуя коментов, в в диве с айди post через форму асинхронно создается новый комент и возвращается в виде как я писал, как мне его добавить к уже существующим?
#217 #1085873
>>1085872
тебе лень погуглить элементарную хуйню. почему кто-то должен тебе помогать?
#218 #1085875
>>1085872
А, да. Не благодари.

$('body').append(JSON.stringify(data));
#219 #1085882
>>1082836 (OP)
Ребзя, посоветуйте как лучше всего реализовать мультиязнычность на сайте с Node.js? Как это правильно называется? И мб есть уже какой-то готовый пакет хороший?
#220 #1085883
>>1085873
Я не понимаю, что гуглить, жс вообще не знаю, еле нагуглил как сделать так, чтобы форма отправлялась асинхронно и результат приходил нормальный, а дальше хз как.
>>1085875
Уже больше похоже, теперь у меня в хтмле
{"title":"тест","text":"ee","name":"васян","email":"","image":null

С этим уже можно работать, это не из-за того оно так выглядит, что я в апи обрабатываю это, то есть у меня же уже json приходит?
#221 #1085884
>>1085882
Имеется ввиду, чтобы когда у человека стоит английский язык в браузере, то оно отдавало страницу на английском, а когда русский - то русском.
#222 #1085885
>>1085883
Ну так ты пытаешься вставить целый обьект, оппробуй:
$('body').append(JSON.stringify(data.title))
или
$('body').append(data.title);
#223 #1085886
>>1085883
ты же не пробовал даже документацию открыть уебок блядь по функции которую используешь
просто иди на хуй
#224 #1085889
>>1085883
Нет, это не JSON, а JavaScript-объект. Ты не сможешь запарсить его с помощью JSON.parse(data). А вот то, что получается в результате JSON.stringify(data) - уже JSON.
#225 #1085890
>>1085885
Всё, спасибо, добра няша :3
>>1085889
И тебе.
>>1085886
А ты от рака сдохни)
#226 #1085893
>>1085890
рак это ты ебаный дебил и подобные тебе дауны которые срут в тред своими даунскими вопросами. и дебилы кто вам помогает. сука пиздец уебаны лень документацию просто открыть блядь прочитать что функция делает как работает, какие параметры принимает, что делает
надо со своим тупорылым вопросом обязательно насрать блядь в тред "ну я же не знаю не понимаю пок пок пок". хуесосы говножоры и те кто такую хуйню спрашивают и те кто тебе отвечают поощряя это говно
уебаны
#227 #1085895
>>1085893
найс полыхнуло)
#228 #1086018
>>1085893
найс комунити, пидорашка дикая
У тебя бы столько же времени заняло пояснить и кинуть парой ссылок в него, о которых ты говоришь. Откуда ты знаешь, какой там у него бекграунд? Уебан.
#229 #1086065
>>1085884
https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Accept-Language
Но как пользователь скажу тебе, что лучше так не делай, бесить эта штука юзеров будет. Оставь старые добрые /ru, /es и т.д.

>>1085893
Люто двачую.

>>1085883

>Я не понимаю, что гуглить


Потому что ты либо тупой, либо нет желания даже пытаться что-то гуглить. Вот ты пробовал? Вряд ли, "я не знаю, что гуглить", и всё. Да хоть что-то погугли, блядь, перелопать примеры этого jquery post'а, уж хоть кто-то, да пробовал отображать приходящий с сервера json на странице. И ведь там абсолютно плевать, post это, get или вообще из консольки ты переменную отобразить хочешь. Ты не понимая вообще ничего пытаешься что-то сделать, не желая хоть немного прочитать про то, что используешь. Нет, по сниппетам со стака можно много чего сделать, но не когда ты тупой, и пытаешься в js-объект вставить как html.

У меня уже давно появилась теория, почему в тредах почти никогда не бывает действительно сложных вопросов, только общие вопросы/советы по фреймворкам и вот такое вот примитивное дерьмо. Потому что те, кто пишут что-то сложное, могут погуглить и подумать сами, особенно когда начнут писать сюда вопрос, додумывать уточнения, предполагать допольнительные вопросы, продумывать на них ответы и вуаля, сам себе решил проблему, удалив неотправленное сообщение. Ну либо-таки запостит пару очень специфичных нишевых вопросов, никто не ответит и всё, больше не будет писать, так как смысла мало.
Неопытные, но-таки разумные (типа >>1084980), всё же постят, но спустя короткое время сами решат, потому что они, сюрприз-сюрприз, не ждут сидят ответа на вопрос, в отличие от некоторых.
#230 #1086073
Котаны, подскажите что делать. Надо чтоб из ебаного ничего плааавно один за другим на страничке возникали элементы, дивы, например. Я делал через setTimeOut(), но оно работало не так как я хотел: сначала все время что есть в таймеер ничего не происходило, а потом они все появлялись сразу. Я погуглил и уже знаю, что таймер отдается, так сказать, на аутсорс в API, потом функция попадает в очередь и ждет когда стек станет пуст и только тогда все это гавно выполняется. Как тогда решить вот это дело?

1-3: Как надо
4: Как я понял из видео что работает хуета с таймаутами.
54 Кб, 971x628
#231 #1086074
Помогите ньюфагу

Делаю задания из шапки, в консоли все выводит правильно, но решалка выдает пикрил. Я же задаю начальные значения, что не так?
#232 #1086075
>>1086074
А, лол, пофиксил, передав start=0, step=1 в параметры
#233 #1086076
>>1086073
Ты можешь либо:
1. В лупе пройтись по всем элементам, увеличивая время таймера для каждого следующего элемента https://codepen.io/anon/pen/WXQBNw
2. После каждого элемента проверять, есть ли ещё элементы для отображения и запускать новый таймер. https://codepen.io/anon/pen/OOyGeL

Анимация делается setInterval'ом со временем равным 1/fps.

>>1086074
http://lmgtfy.com/?q=javascript+необязательные+аргументы+начальное+значение+по-умолчанию первая же ссылка. И никакие начальные значение ты не задаёшь, ты start/stepValue на следующей же строчке переназначаешь.
#234 #1086077
>>1086076
О, круто, спасибо!
#235 #1086104
>>1085131
Бамп вопросу.
#236 #1086110
>>1086065
все верно расписал
#237 #1086135
Есть canvas, есть массив из семи слов. Есть цикл который выводи текст в канвас.
Когда вывожу текст, вместе с текстом выводятся запятые.
???
#238 #1086184
>>1086135
А если name[и] заменить на литерал строки, чтобы одно и то же 7 раз вывелось, будут ли "запятые"? Они больше на точки похожи, по-моему.
#239 #1086191
Тут уже яснее.
name[0] - H
name[1] - .
name[2] - L
name[3] - i
name[4] - .
Я неправильно массив заполнил?
надо чтобы name[0] = h ; name[1] = Li
#240 #1086196
Аноны, может кто знает какой инструментарий для сканирования qr кода? пишу для себя приложение на ангуляре 4. попробовал заюзать библиотеку angular2-qrscanner, но трабла в том что, если приложение открывать с мобилы, он запускае фронталку, а не основную камеру. может еще что есть подобное?
#241 #1086222
>>1086135
JS, сэр. Выбери другое имя переменной.

Сложно гуглить такое общее слово, к тому же это только в браузерах сделано, так что знающие, подкиньте ссылочек на эту хрень (в частности, нахуя оно нужно такое), и как она умудряется работать вообще, пожалуйста.

>name.toSource()


>// "(new String(""))"


Там какие-то проксификаторы, что ли?
#242 #1086230
>>1086222
Поменял имя, помогло, спс
#243 #1086252
>>1086222
А вообще, чего я туплю, просто атрибут window'а с геттером и сеттером.

https://developer.mozilla.org/en-US/docs/Web/API/Window/name

>Don't set the value to something unstring since its get method will call the toString method.


Интересно, конечно, что toString вызывает геттер, а не сеттер.
#244 #1086455
В общем, такой страный немного реквест.
Так вышло что устроился работать react макакой, всё пиздец легко, уже второй год работаю. И вдруг так почитал про xss атаки, про всю эту хуйню с глубинным устройством dom, js и всего такого и чёт пиздец интересно стало как всё это устроено на глубоком уровне.

Собственно вопрос, есть ли какие-нибудь хорошие источники по такой теме? Не всмысле xss а устройства всего. Может быть даже история развития.

Эх были бы учебники истории, только про веб.
#245 #1086473
>>1086455

>Эх были бы учебники истории, только про веб.



Обычно в книжках пишут, как что-то работало раньше, чтобы при встречи с старым кодом не обосраться
566 Кб, 640x960
#246 #1086520
Кто нибудь знает что-нить про эту поебень https://www.udacity.com/google-scholarships годно или хуета?
#247 #1086558
>>1085391
Анончик а может ты сможешь ее побороть? Пожалуйста.
#248 #1086578
>>1086558
кого ее
#249 #1086579
>>1086065
А почему будет бесить? По-моему весьма удобно, когда англоязычный юзер заходя на сайт сразу попадает на английскую версию. В чём лично для тебя проявляется неудобство?
#250 #1086580
>>1086558
а, зависимость. на хуй знает. сложно это очень. сложнее чем проходить собеседовании накуренным. собеседование то я прошел, а вот курить не могу перестать.
#251 #1086629
>>1086579
Американец и русский получают одинаковую ссылку. Американец говорит: "Хорошая статья". Русский говорит: "Устаревшая хуйня и половина не переведена", и выкидывает американца за борт.
Консистентненько всё должно быть, без сюрпризов.
другой анон
#252 #1086633
>>1086579
Одна ссылка должна вести на один и тот же документ (по крайней мере, в один и тот же момент времени).
Я в принципе не очень люблю когда, за меня слишком много решают, как мне будет лучше, ведь обычно наши мнение расходятся.

Развёрнуто дополню >>1086629:

>В чём лично для тебя проявляется неудобство?


В том, что я не могу быть уверен, что мне подсунули именно то, что я просил. Есть перевод? Замечательно, добавьте ссылочку.

>когда англоязычный юзер заходя на сайт сразу попадает на английскую версию.


А я вот русскоязычный юзер, но попадаю на китайскую версию, потому что из компьютерного клуба тут зашёл. Стим так делает, например. И вот нахуя оно мне надо такое?
Да и на русские сайты мне бы хотелось в оригинале заходить (система на английском), и при этом на английские — тоже.
Гугл вот когда-то в своих ветках обсуждений переводил все посты на русский мне зачем-то, заставляя иногда задумываться, что за дауны так коряво пишут.

Представь, что википедия показывала бы страницу только на твоём языке, откатываясь на ангилйский (или следующий другой по цепочке) лишь при отсутствии статьи на этом языке. Ужас же был бы.

Короче, если в двух словах: подобная "интернационализация" не даёт выбора и сбивает с толку, потому как обычно эти горедизайнеры забывают и о кнопке принудительной смены языка. Да и не знаешь, перевод это или вообще язык версию сайта отдельная команда ведёт и статьи примерно похожи, но написаны каждая с нуля, просто на ту же тему и примерно с теми же источниками.

Есть поддомен, есть топ-левел домен — пользуйтесь!
#253 #1086670
Ребят, есть вопрос по event лиснерам. Вот есть у меня попап, когда он открывается - на document вешается event listener на keydown, чтобы отлавливать нажатие ESC и закрывать попап, вот когда я внутри такого попапа открываю еще один и нажимаю ESC - закрываются оба. Есть возможность закрывать по-одному? e.stopPropagation() не помогает, есть еще какие-то варианты? Юзаю react.
#254 #1086672
>>1086670
И да, с event.stopImmediatePropagation() закрывается сначала первый, потом второй, а нужно сначала второй, потом первый.
#255 #1086729
>>1082836 (OP)
Sup, есть jquery скрипт:
$(document).ready(function() {
$('#data_v-gwert').change(function(){
if($(this).val() <= "5000"){
$("#block1_5000").css ("display", "block");
$("#block2_5000").css ("display", "block");
$("#block3_5000").css ("display", "block");
$("#block4_5000").css ("display", "block");

}
else {
$("#block1_5000").css ("display", "none");
$("#block2_5000").css ("display", "none");
$("#block3_5000").css ("display", "none");
$("#block4_5000").css ("display", "none");
}

});
});
и элементы таблицы, которые я хочу скрыть/открыть
<td id="block1_5000" style="display: none;">тест</td>
Это всё делается в зависимости от числа, которое ввёл в инпут с ид data_v-gwert

Но оно не работает:С
Ошибок валидатор не выдал.
ЧЯДНТ?
#255 #1086729
>>1082836 (OP)
Sup, есть jquery скрипт:
$(document).ready(function() {
$('#data_v-gwert').change(function(){
if($(this).val() <= "5000"){
$("#block1_5000").css ("display", "block");
$("#block2_5000").css ("display", "block");
$("#block3_5000").css ("display", "block");
$("#block4_5000").css ("display", "block");

}
else {
$("#block1_5000").css ("display", "none");
$("#block2_5000").css ("display", "none");
$("#block3_5000").css ("display", "none");
$("#block4_5000").css ("display", "none");
}

});
});
и элементы таблицы, которые я хочу скрыть/открыть
<td id="block1_5000" style="display: none;">тест</td>
Это всё делается в зависимости от числа, которое ввёл в инпут с ид data_v-gwert

Но оно не работает:С
Ошибок валидатор не выдал.
ЧЯДНТ?
#256 #1086741
>>1086729

это не javascript это html+css
#257 #1086743
>>1086741
что?
#258 #1086788
>>1086670
>>1086672
Идентификаторы открытых попапов храни в массиве стейтеа приложения.
По нажатию клавиши диспатч экшоны по обработке сего массива и соответственно, последовательно закрывай модалки. Это ж реакт, епта.
#259 #1086789
>>1086729
Касть содержимое инпута в число и сравнивай с числом.
#260 #1086794
>>1086788
Спасибо, но не пойдет, я либу компонентов пилю, они из коробки должны уже этот функционал уметь. Я распетлял через вешание лиснеров на сами попапы и фокус их во время willUpdate.
#261 #1086799
>>1086789
$(document).ready(function() {
$('#data_v-gwert').on('input',function(){
if($(this).val() <= 5000){
$("#block1_5000").css ("display", "block");
$("#block2_5000").css ("display", "block");
$("#block3_5000").css ("display", "block");
$("#block4_5000").css ("display", "block");
}
else {
$("#block1_5000").css ("display", "none");
$("#block2_5000").css ("display", "none");
$("#block3_5000").css ("display", "none");
$("#block4_5000").css ("display", "none");
}
});
});
да если интересно кому, частично задачу решил,
но проблема в том, что он работает только при вводе в инпут, а у меня значение этого инпута берется сложением двух других в динамической таблице :С
120 Кб, 736x736
#262 #1086852
ХУЙНЯНЕЙМ.JS
#263 #1086882
пошел нахуй джаваскрипт
#264 #1086890
>>1086852
Я правильно понимаю что в других языках вместо хуйнинейм.js надо пердолиться и самому писать все велики либо же хуйнянейм зашита в стандартную либу?
#265 #1086894
слушай бабангиду
116 Кб, 500x500
#266 #1087024
>>1086852
REACT-ХУЙНЯНЕЙМ
#267 #1087098
>>1082836 (OP)

дип лёрнинг в ЖС https://github.com/karpathy/convnetjs

рейт, у кого есть время
#268 #1087137
>>1085027
Ну, анон, ничего страшного, и не из таких тормозов кодеров выращивали при должном упорстве.
П.С.: Сам когда-то не понимал в упор как быстрая сортировка работает. Вертел ее туда-сюда неделю с разными массивами, пока не разобрался во всех мелочах.
137 Кб, 920x920
#269 #1087184
>>1087024
JQUERY.ХУЙНЯНЕЙМ.JS
@
WEBPACKХУЙНЯНЕЙМPLUGIN
@
BABEL-PRESET-ХУЙНЯНЕЙМ
#270 #1087212
Можно ли в JS жестко задать тип переменной, или все равно туда будут записываться любые типы? Задать тип аргумента функции тоже нельзя?
#271 #1087217
>>1082921
Пес с ним, оставил как есть.
Рейт посоны: https://habrahabr.ru/post/340964/
#272 #1087221
>>1087212
Можно использовать какой-нибудь tcomb. Ругаться будет рантайм.

Можно использовать typescript или jsdoc комменты с типами, ругаться будет IDE
#273 #1087225
>>1087212
Есть божественный The Flow с великолепными OCaml типами.
#274 #1087227
>>1087217

>Perfect shuffle



норм, а что это за алгоритм? в википедии конкретно об этом алгоритме ничего нет
#275 #1087228
>>1087212
В JS есть слабые типы, но это мало на что влияет.
#276 #1087233
>>1087212

можно сделать прототип переменной, и смотреть что туда пишут, примерно так https://stackoverflow.com/questions/15857682/javascript-what-are-some-guidelines-on-how-to-define-new-data-types
7,3 Мб, 500x281
#277 #1087237
>>1087227
Так в статье же подробно рассказывается, что за алгоритм. С картинками, графиками, гифками и исходниками на JS.
Алгоритм перемешивает элементы в массиве. Он тупо пиздец простой: делим массив на две части и в новом массиве чередуем элементы из первой части и из второй.
Элементы в массив: 1, 2, 3, 4, 5, 6, 7, 8
Разделили на две части: 1, 2, 3, 4 и 5, 6, 7, 8
Чередуем: 5, 1, 6, 2, 7, 3, 8, 4
#278 #1087238
>>1087237
Ну и там весь прикол в том, что если так "перемешивать" массив - через несколько итераций все элементы возвращаются в исходной положение:
1, 2, 3, 4, 5, 6, 7, 8
5, 1, 6, 2, 7, 3, 8, 4
7, 5, 3, 1, 8, 6, 4, 2
8, 7, 6, 5, 4, 3, 2, 1 <- в обратном порядке
4, 8, 3, 7, 2, 6, 1, 5
2, 4, 6, 8, 1, 3, 5, 7
1, 2, 3, 4, 5, 6, 7, 8 <- вернулись в исходное состояние
#279 #1087241
>>1087221
>>1087225
>>1087228
>>1087233
Всем спасибо. Инфы для раздумий теперь предостаточно.
#280 #1087246
>>1087238
>>1087237

>Perfect Shuffle известен в среде фокусников-картежников. Называют они его Faro Shuffle.



ок, не заметил, спсб
#281 #1087278
Двачик, выручай. Есть какой-то объект, который я прохожу в цикле for in. И есть строковое представление ключей элемента, к которому я хочу получить доступ. Как мне сложить объект и строку, чтобы обратиться к какому-то элементу? Подробнее - https://repl.it/Nkfp
#283 #1087309
>>1087302
Спасибо!
#284 #1087317
>>1087302

eval is Evil!
#285 #1087381
Как можно реализовать сортировку товаров по параметрам на клиенте?

Данные приходят на клиент и хранятся в переменной в виде JavaScript-объекта. Далее, слева у меня есть различные чекбоксы, слайдеры и пр., которое я могу крутить и регулировать параметры необходимых мне данных. Я создал новый JS-объект:

let filters = {};

Каждый раз, когда я кручу какой-то ползунок или нажимаю какой-то чекбокс, этот объект пополняется правилами. Если я отрегулировал ползунок ценника, то появятся два элемента с ключами "price_min": n и "price_max": n.

Теперь, как мне выбрать все элементы из JS-объекта, где значение ключа price => "price_min" && price <= "price_max"? Я бы мог, конечно, написать такое ручками и определить это через if else, но у меня таких ползунков дохуя. Писать по if else на каждый случай жизни - заебусь, да и мусорного кода дохуя получится.

Может, сталкивался кто с таким? Подскажите хотя бы, как эту тему правильно гуглить, пушо запрос how to filter object in json упорно тычет меня носом в Array.prototype.filter и парочку тупых вопросов на StackOverflow.
#286 #1087382
>>1086065

>Неопытные, но-таки разумные (типа >>1084980), всё же постят, но спустя короткое время сами решат, потому что они, сюрприз-сюрприз, не ждут сидят ответа на вопрос, в отличие от некоторых.


Уже решил.

>>1085848

>Скоро в /cc запощу исправленный brainwalletX.


>>1085875
Зацените: http://rgho.st/8hlwbSy98
1. Unzip в папку.
2. index.html -> на вкладку браузера.

Может чё ещё подправить надо? А?
#287 #1087403
>>1087317
evil не evil, но иногда удобно же.
#288 #1087422
>>1087381
Очевидный for in цикл по свойствам объекта с копированием в новый object.assign, который целиком отсылаешь
#289 #1087436
>>1087381

filter.price_min = данные => данные.filter(one => one > число)
filter.price_max = данные => данные.filter(one => one < число)

отфильтрованное = Object.values(filters).reduce((данные, фильтр)=>{
return фильтр(данные)
}, данные)

Как-то так примерно.
#290 #1087438
>>1087436

>filters.price_min...


>filters.price_max...


фикс
#291 #1087442
>>1087381
Рендер товаров организуй по правилам.
const filtered = data;
if (filters.checkbox) {
filtered = filtered.filter(item => item.rule);
}
render(filtered)
То есть если фильтры пустые - отрендерится дата, если нет, то отфильтрованные.
#292 #1087444
>>1087381
А почему бы не хранить "отображаемые" товары в виде массива, который и будешь фильтровать тем самым filter'ом? Вроде бы, так обычно это всё и делается, да и судя по описанию проблемы, JS-объект тебе только мешает.
#293 #1087470
Как возможно провернуть подобную штуку?
var obj = {
array: [1, 2, 3, 4, 5],
currentItem: obj.array[2]
}

Чтобы один ключ объекта ссылался на другой ключ объекта. Или никак и только
var obj = {
array: [1, 2, 3, 4, 5]
}
obj.currentItem = obj.array[2]

?
#294 #1087477
>>1087470
https://stackoverflow.com/questions/4616202/self-references-in-object-literal-declarations
Можно вот при первом вызове геттера/сеттера удалять их и оставлят обычное поле. https://repl.it/Nlav
Однако, не забудь, что obj.array[2] в данном случае у тебя не ссылка, а копия, потому что элемент примитивный.
#295 #1087485
>>1087477
Какие сложные слова, я до такого еще не дошёл. Надо разобраться, спасибо. Правильно ли я понимаю, что ты это

>Однако, не забудь, что obj.array[2] в данном случае у тебя не ссылка, а копия, потому что элемент примитивный.


к тому, что obj.currentItem = 100500; не изменит array[2] на 100500? Если да, то это я понимаю. Суть задачи вообще какая: есть объект, который содержит элемент, значение которого - массив имён файлов. И один элемент этого массива нужно вынести в отдельный ключ объекта. Писать каждый раз array[2], когда нужно обратиться к этому конкретному файлу не хочу, потому что вдруг добавится в начало массива еще один элемент и array[2] будет иметь не то значение, куда нужно. Поэтому решил вынести это в отдельный ключ объекта, чтобы если что - нужно было заменить всего одну строку. То есть менять я ничего не собираюсь, по хорошему там вообще не var, а const скорее.
#296 #1087543
Пацаны, ку!
Может ли жс в сокеты?
Че гуглить, а то нашел только сокет ио какой-то но там нода-хуеда.

Сабж вот в чем.
У меня есть приложуха на одном компе, а мне нужно чтоб !БРАУЗЕР! отослал запрос с помощью жса к этой приложухе.
Приложуха не постоянно в аптайме.

есть идеи/альтернативы?
#297 #1087544
>>1087543

>есть идеи/альтернативы?


есть
#298 #1087553
>>1087543

> Че гуглить, а то нашел только сокет ио какой-то но там нода-хуеда.


Лонг поллинг юзай и не выябывайся, чать тебе не реалтайм аппу писать.
#299 #1087557
Что скажете про мобильную разработку с React Native?
#300 #1087560
>>1087543
сокет ио и используй, что тебе не так?
#301 #1087569
>>1087560
У него, походу, на другой стороне не нода.
#302 #1087591
чому react така залупа, якусь хуйню html і js писати в одному файлі, купа node-пакетів (дохуя взагалі) ?
#303 #1087593
>>1087569
так там фреймворк состоит из двух частей, фронт и бек. И это просто обертка вокруг нативной реализации и там и там. По идее неважно как бек их у себя делает, в браузер оно все приходит более менее одинаково (заголовки разве что может будут другие).
#304 #1087711
Анон, а если Кантора сделал, но ничего еще руками не писал, и слегка местами каша в голове - че делать? Читать Фленегана? Ебануть курс на Хекслете? Че та написать попробовать? А может уже можно реакт читать? Хочу побыстрее вкатиться
#305 #1087772
Можна как-то создать переменную с большой строкой в которой полно кавычек, но при этом их все не экранировать?
#307 #1087780
>>1084118
опровергай, или иди в хуй.
#308 #1087790
>>1087543
Так ты куда сокеты впихнуть хочешь? Если в браузер, то тут только WebSocket есть. Соответственно, и бэк должен их поддерживать.
#309 #1087838
Анон, читаю Выразительный JavaScript сейчас, и дохуя чего кажется сложным. Задачи, начиная с глубокого сравнения вообще не понимаю, даже с решением.
Из бэкграунда - курс по Питону на Степик. Эта книга/язык и вправду такие сложные, или я безнадежен?
#310 #1087845
Сап, как запретить воспроизведение двух видео одновременно (embed с ютуба) на своем сайте? Если одно воспроизводится, второе возвращается к 00:00?
Встраивается видео через iframe.
#311 #1087989
redux vs vuex?
#312 #1088027
Реквестирую ресурсы и литературу по изучению NodeJS.
Сам фронтендщик, хочу вкатиться в бэк-енд, и чтобы дополнительно прокачать навыки асинхронной ебли выбрал Node.JS.
Беда в том,что одного чтения документации мне точно не хватит, так как я еле-еле представляю для чего нужны сессии и чем вообще вы бэкендеры занимаетесь. Так что, желательно, нужен прямо для чайников ман, где дядя все покажет и расскажет на живых примерах.
#313 #1088031
>>1082963
Это для тестов/опционально. Но я тоже первое время проигрывал. мимо не пишу тесты
#314 #1088033
>>1087591
Ты еще про styled компоненты не слышал.
Там возвращаемся к PHP истокам, ВСЕ включая стили в одном файле.
#315 #1088034
>>1087543
XHR к бекенду приложухи?
Сокеты вроде для того чтобы слушать события, не? А респонс/реквест это всегда были XHR/Fetch
#316 #1088043
>>1087989
Читай функциональное против императивного
#317 #1088044
>>1088033
Оказалось гораздо лучше иметь сортировку по фичам и компонентам, чем разбросанную по кучам папок логику controllers/views/... или javascripts/html/css
#318 #1088074
>>1088044
Как потом отлаживать в дев-консоли вашу парашу, с автогенерируемыми именами классов я вас спрашиваю?
103 Кб, 736x1766
#319 #1088078
>>1082836 (OP)

вангую это отличный маскот для ЖС, просто 10/10, рейт.
#320 #1088092
>>1088074
За счет декомпозиции никакой сложности
#321 #1088095
>>1087591
Ты бы еще на египетском написал
#322 #1088113
>>1087845
бамп.
65 Кб, 500x612
#323 #1088125
Братишки, я тут потихоньку, пилю имиджборду свою, уже создавал тред, но моча потер.
Вот вам исходники, можете проверить, усе анонимно.
Пишу в свободное время, хочу приблизить к функционала двоща.
#324 #1088127
>>1088125
забыл прикрепить, еблан, простите
https://github.com/yanislav-igonin/dumpach
#325 #1088129
>>1088125
>>1088127
На сервер залей что-ли, чтоб открывалась.
А то ну как её поставить-то?
#326 #1088130
>>1088129
на гитхабе в ридми ссылка есть, братишка
#327 #1088131
>>1088129
меня моча забанил в прошлый раз за то, что я отдельный тред создал и ссылку прямую, не хочу, чтобы опять побанили
#328 #1088137
>>1088130
там какая-то свалка на фоне и написано в коде "You need to enable JavaScript to run this app."
хотя JavaScript у меня включён для этой страницы и в браузере в общем.
#329 #1088138
>>1088137
Наверно поэтому и забанили. Лол.
#330 #1088141
>>1088125
А зачем папка целая router для одного роута? Зачем такие решил размазывать код роутинга по всему приложению? Или это особенность rr4?
#331 #1088177
>>1088141

>>Или это особенность rr4?


this

Раньше на 3 версии все роуты там были, сейчас, перед переносом его на семантик-юай, решил все депенденси обновить, включая реакт, роутинг и тд
#332 #1088186
>>1087838
Тебе нужны курсы не по языкам, а по основам программирования. Очень много зависит от практики. Теория без практики почти не усваивается. В голове просто каша образовывается. Нужно много практиковаться.

Вот есть 2 бесплатных курса с практикой в браузере, под ними есть еще дополнительная практика.
https://goo.gl/GLwHHL
https://goo.gl/LbfzdX

Если что-то не получается там же можно задавать вопросы. Полазь по сайту, посмотри, там есть всё что нужно.
#333 #1088187
>>1088027
Крутая программа обучения https://goo.gl/keMtwT стоит всего 24$ (~1500 руб.) в месяц, первые курсы бесплатные, практика прямо в браузере, помощь менторов, и много других плюшек. По ассинхронности там несколько курсов в программе.
#334 #1088214
>>1082946
document.getElementById('куда вставлять нах').innerHTML = search_by_author.render()

Не?
#335 #1088244
ты заебал со своими реферальными высерами
#336 #1088246
>>1088214
render не возвращает html. Он возвращает объектное представление дерева.
#337 #1088287
>>1087845
bump. Могу немного заплатить за решение.
#338 #1088294
Анон, подскажи, я не js прогер, накатал скрипт в Tampermonkey для одного сайта, он как-то вообще нагружает сайт(сервер)?
Не очень просто понимаю работает js и обращается ли он к серверу или к сайту как к уже загруженным данным.
Суть: сайт периодически рефрешится, скрипт быстро перекрашивает нужный текст. Ну а сайт банит за большое кол-во запросов.
Код - https://jsfiddle.net/r6xzrozd/
#339 #1088296
>>1088294
Нет, никаких сетевых запросов скрипт твой не делает.
#340 #1088301
>>1088296
Понял, спасибо.
#341 #1088646
Двач, а вот я сортирую массив, в котором есть названия и на латинице, и на кириллице. Так вот, .sort() возвращает мне массив значений, где сперва идут отсортированные значения на латинице, а потом только идёт список отсортированных значений на кириллице. Как это поменять? Хочу, чтобы сперва были отсортированные значения на кириллице, а затем только на латинице.
#342 #1088652
>>1088646
При сортировке текста в js используется https://ru.wikipedia.org/wiki/Лексикографический_порядок

Иными словами, ты хочешь отсортировать свой массив так, чтобы он имел порядок не [1, 2, 3, 150, 151, 152], а [150, 151, 152, 1, 2, 3]. Подумой, как бы ты смог получить такой массив с числами из перемешанного, а потом уже на строки это переложи.
#343 #1088687
Здравствуйте , меня зовут Алеша, такой вопрос.
С помощью этой штуки можно ли в браузере делать мышкой выделение текста в pdf документе и сделать проверку например выделил слово и автоматически произошла проверка, есть ли данное слово в базе?? Нужно для того, чтобы можно было отдавать перевод данного слова на другой язык и запускать audio file с произношением
#344 #1088688
#345 #1088709
>>1088687
Здравствуй, Алёша. Меня зовут Серёжа.
Как ты мог бы заметить, текст там рендерится в обычный хтмл с кучей div'ов. Проверять, выделен ли на странице текст, можно так: https://stackoverflow.com/questions/3731328/on-text-highlight-event
#346 #1088744
>>1088709

> Как ты мог бы заметить, текст там рендерится в обычный хтмл с кучей div'ов.


Не изучал эту технологию подробно, но разве там пдфка рендерится не в 2D canvas?
#347 #1088802
>>1088744
Блин, да открой ты пример по ссылке на онлайн демо из гитахаба и посмотри инспектором на html. Я вот именно это и сделал, например, перед ответом тебе/ему.
Текст в канвас это, по-моему, немного извращенство (но тут могу ошибаться).
#348 #1088815
А как можно пройтись по двумерному массиву не двойным циклом, а то выглядит он 2к17 уебищно. При этом мне еще и получить координаты ключи индексы нужных значений.

https://plnkr.co/edit/W3rvSiVTc9JlSXM0VEu8?p=preview
#350 #1088827
>>1088815
Хуй знает как не двойным циклом. Я использую методы массивов для перебора всех значений + стрелки вроде бы смотрится более менее.
https://plnkr.co/edit/clsEI1LjnzrihtbLr7rO?p=preview
#351 #1088855
>>1088815
Так же, как и по одномерному — map, forEach, find, reduce и т.д.
#352 #1088872
>>1088815
Зафлаттенить и далее классическим перебором в лямбде.
Что-нибудь из лодаш-фп подойдёт, наверное.
#353 #1089028
>>1088815
flatMap + map
#354 #1089068
Пасаны, устанавливаю на Ubuntu 16.04 node.js 6.0, а когда проверяю версию nodejs -V, то показывает 4.0 ???
#355 #1089070
>>1089068
Как устанавливаешь? Почему 6 версия, сейчас 8 LTS.
#356 #1089072
>>1089068
Ну так что, помощь нужна или как?
#357 #1089075
>>1089068
Ты просто через apt устанавливаешь? Там не догоняют наш стремительный фатигнутый мир.
Надо через скриптик накатывать:
https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions
curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -

>>1088815
https://repl.it/OABN
#358 #1089084
>>1089068
Поставил убунту месяц назад и сам недавно через это прошел, пришлось немного повозиться чтобы установить последний, хотя это довольно просто. Тем не менее, вот что я тебе скажут, добрый мой совет, ставь винду, в линуксе в реальности надо чаще ебаться со всякой хуйней, ни фига он не удобней для вебдева, все это сказки.
#359 #1089085
>>1089084
Быстро же ты сдался. Сдашься один раз, будешь сдаваться всегда. Пока ты встретил небольшую трудность и сдался, что будет когда трудность будет сложнее?!
#360 #1089092
>>1089084
Не винда это гавно для макак, и нода тоже гавно, раз не ставится на православную Убунты с пол пинка. Буду дальше заниматься Питоном, там такой херни нет
42 Кб, 497x600
#361 #1089093
>>1082836 (OP)
нихуя не понимаю этих замыканий и их смысл.
проще ебаного кормана почитать и порешать задачки на алгоритмы чем понять эту злоебучую, мудренную залупень.
5 источников прочел - не могу понять, господи какое же убожество, мудрено так нахуя делать, суки ебучие, ненавижу, ненавижу блядей, шизофреническая хуета эти ваши замыкания, господи нахуя так уебишно делать, сука просто убожество, фу нахуй, фу бльдь, блюю нахуй.
#362 #1089094
>>1089075
Я да пробовал ставить вот этим баш скриптон, все равно в итоге версия 4.0 устанавливается

https://gist.github.com/kolosek/b166b4ba2ddcc293d06bfc9f4cdd1689
#363 #1089106
>>1089094
Что за левый скрипт? Если ты не смог скопировать строку и вставить в терминал, то у тебя будут большие проблемы в будущем. Правильный скрипт здесь https://nodejs.org/en/download/package-manager/#debian-and-ubuntu-based-linux-distributions

https://github.com/nodesource/distributions#debinstall

Или скачай архивом, распакуй куда нужно, это простой рабочий способ. Инструкция https://github.com/nodejs/help/wiki/Installation

Еще можно поставить из PPA репозитория, это один из лучших способов, обновления будут автоматические, поменять версию будет не сложно. https://www.digitalocean.com/community/tutorials/node-js-ubuntu-14-04-ru

Может ты ставишь из стандартных репозиториев убунты, там всегда старые версии. Такую команду не прописывал? apt install nodejs или apt-get install nodejs
#364 #1089125
>>1089070
8 даже в федору еще не подъехала
#365 #1089136
>>1089093
Что мудреного в том, что в функции можно использовать не только аргументы, но и переменные вне ее тела? Как вообще без этого можно что-то на JS написать?
#366 #1089143
>>1089125
Никто из дистровых репов не ставит.
#367 #1089420
Бандиты, скиньте топовые онлайн игры на js
#369 #1089446
>>1089093
концепция scope не только в замыканиях js используется. если ты не можешь осилить их, значит ты в принципе плохой программист.

точнее, я хотел сказать, заткнись и учи молча, животное ебаное, либо иди подметай хуйло
#370 #1089452
>>1089136
можно, ты тоже животное ебаное не понимаешь функциональщину
#371 #1089456
>>1089093
У каждой функции есть объект scope, в который записываются локальные переменные. Если локальной переменной с таким именем нет в scope этой функции, то функция берет объект scope высшей функции из call stack'а и пытается найти перменную с таким именем там, и так далее до глобального scope'а.
реализация кстати ебанутая
#372 #1089478
>>1089452
И как, много ты на js написал чисто функциональных приложений без this?
#373 #1089503
>>1089456
что ты блять поришь, долбоеб?

объект scope для конкретной функции создается в момент вызова этой функции. будет 10 вызовов этой функции - будет создано 10 разный скоупов.

вложенность достигается стеком.

для каждого вызова какой либо функции, текущий стек копируется, в него добавляется scope текущего вызова функции. в теле этой функции текущим стеком будет являться копия предыдущего текущего стека + scope текущего вызова.
короче вот написал хуйню, если даже так будет непонятно, то ливайте из профессии https://pastebin.com/r8NPPyz3

>>1089478
а как блять вообще this относится к замыканиям? ты что ебанутый?

у this есть наследование прототипов, которое работает по принципу скоупов, но речь то идет про замыкания так что ты долбоеб.

так же, в контексте нет упоминания о чисто функциональных приложениях, речь о понимании функционального подхода, так что ты соснул в двойне. никто не говорит писать чисто так, или чисто вот так. но знать это надо, потому что некоторые вещи делаются так, а некоторые вот так.
но вообще я делал такую хуйню может тебе понравится http://jsbin.com/rebazi/8/edit?js,output
#374 #1089512
>>1089503
КЕК, мы вам перезвоним
#375 #1089516
>>1089478
Сколько хочешь. This же для разработчиков библиотек-структур данных. В своем коде this нужен только если ООП головного мозга накрыл полностью.
290 Кб, 1258x546
#376 #1089517
>>1089512
ты че, бездарность, ебальник открываешь? давай бля выкатывай свой бездарный говнокод

я третий год пишу под ios, до сих пор шарю в js лучшебольше чем обитатели этой сральни
#377 #1089518
>>1089517
Ты для цирка пишешь чтоле, посмешише?
#378 #1089520
>>1089518
обиженная чмоха, иди учи основы и не выебывайся, а не бомби на рандом господина
#379 #1089525
>>1089503
Знаешь, хотел сначала ответить даже пасту накатал, но потом решил что ну нахуй. Ты буйный какой-то.
#380 #1089526

>но вообще я делал такую хуйню может тебе понравится http://jsbin.com/rebazi/8/edit?js,output


>var


>push


>unshift


>pop


>миллионы мутаций


>еще что-то пиздит про функциональный подход

#381 #1089530
>>1089526
там нет this, дабумтссс

>>1089525
я называю вещи своими именами. вы ждете что я вас хвалить буду, за то что вы порете хуйню и в развитии стоите на месте?

когда я делал хуйню и мне говорили что я делаю хуйню, я был благодарен тем людям. а щас блять куда не плюнь везде дебилы, вам же даже объяснять часто бесполезно
#382 #1089531
>>1089517
Откуда в JS приватные методы и типы лопух.
Что за говно ты сюда принес. Очередное говно которое из JSа компилирует в JS?
#383 #1089533
>>1089531
1. приватные поля реализуются через переменные коструктора
2. дегенерат, это swift и я пишу под ios. ты читать научись.
#384 #1089534
>>1089530

>я называю вещи своими именами


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

>вы ждете что я вас хвалить буду


Я от тебя ничего не жду, я вообще тебя не знаю. Вряд тут кто-то ожидает похвалы от рандомного НЕБОЖИТЕЛЯ.

>когда я делал хуйню и мне говорили что я делаю хуйню, я был благодарен тем людям


Вот сейчас ты делаешь хуйню — скатываешь тред в токсичное говно. От таких людей для комьюнити больше вреда, чем пользы, даже если они хорошо программируют и дают советы по делы.
#385 #1089535
>>1089533
Так тредик о JS, похуй всем тут на твои айфоны. Уходи отсюда.
#386 #1089545
>>1089535
даже будучи ios-пидором, я шарю в жс лучше тебя

>>1089534
самоутверждаюсь ебана бля ага да.
я два года назад высрал это чудо вечер, просто у меня што то щелкнуло и я захотел эту поеботу сделать и сделал. http://jsbin.com/wakuru/2/edit?js
мне блять не нужно самоутверждение, я себя объективно оцениваю. я просто зашел напомнить долбоебам что ихнее место на параше
#387 #1089560
>>1089545

>ихнее


Правильно "иховое".
Ты такой агрессивный из-за своей подавляемой гомосексуальности, элитный маковод?
#388 #1089565
>>1089560
почему подавляемой?

мак у меня только на работе, а так мак это говно пуще венды
#389 #1089569
>>1089525
ладна давай высирай че ты там хотел высрать, обижать не буду чесна-причесна
#390 #1089572
>>1082836 (OP)
ЖСыны, что надо чтоб зашифровать и расшифровать алгоритмом AES файл в браузере -
при помощи другого ключевого файла, как в openssl?
Я вижу всякие библиотеки AES на JS, но они только с паролем работают.
#391 #1089573
>>1089572
ты любой файл можешь представить в виде строки. а любой пароль это строка. соответственно, используя библиотеку АЕС ты можешь использовать любой файл как пароль, если конечно там нет ограничения на количество символов
#392 #1089582
>>1089573
Ну вот в обычном openssl,
по команде openssl enc -help
видно следующее:
-kfile passphrase is the first line of the file argument

Это значит, что из ключевого файла берётся первая строка.
Что с ней дальше происходит - понятия не имею, может хеш какой-нибудь от неё берётся в качестве ключа,
или сама она в виде пароля представляется.

В общем, надо в форму вгрузить два файла - один файл открытый, например музыка, другой файл -
ключевой, и это бинарник, содержащий 32 байта (256 бит) - ну потому что 256 бит AES.
Шифровать хочу алгоритмом aes-256-cbc без -salt,
чтобы побитово сравнить с файлом закриптованным с помощью openssl,
но как я уже понял, если не указывать параметр -salt в коммандной строке openssl - всё-равно он его посолит.
Но мне интересна сама реализация.
Ведь если я буду читать файл в байтовый массив, и оперировать уже блоками по 256-бит,
то что я нагорожу в своём быдлокоде будет не очень быстрым, и может ещё и буфер переполнить,
и быть может заюзать какой-нибудь curl, и забросить сам openssl в виде exe-шников в папку с html, где форма эта?
#393 #1089588
>>1089582

>curl


CGI имел в виду.
#394 #1089598
>>1089582

>aes-256-cbc


>если не указывать параметр -salt в коммандной строке openssl - всё-равно он его посолит


Page 2 - Method #2, the UNIX Command Line
https://www.macobserver.com/tmo/article/how-to-strongly-encrypt-a-file-for-free-in-os-x
зашифрованный файл начинается с Salted_ и даже если не указать параметр -salt,
всё-равно два зашифрованных файла - отличаются.
Можно ли вообще закинуть exe-шник openssl в какую-нибудь папку,
и вызывать его из JS, ну чтобы зашировать с его помощью файл, и вернуть его в виде ссылки?
Можно ли представить файл как поток данных, а потом зашифровать поток через openssl,
и вернуть зашифрованный поток, ну чтобы вообще не сохранять файлы там, где хостится JS c этим openssl?
102 Кб, 786x601
#395 #1089609
Я не понимаю почему не срабатывает $location.path, если его просто определить в функции SetCount то работает.
#396 #1089620
>>1089598
Не нашёл способа подключить CryptoJS к HTML-файлу, даже вот это не работает:
http://crypto-js.googlecode.com/svn/tags/3.1.2/build/rollups/aes.js
Есть у кого AES на JS в ZIP'e?
#397 #1089622
>>1089609
Я решил проблему метод SetCount перенес в контролер и добавил в каждый метод on('click') $scope.$apply();.
#398 #1089658
>>1087845
buuuuuuuuuuuuuuump.
15 Кб, 543x310
#399 #1089693
>>1089093

замыкание это ссылка на контекст другого лексического окружения
#400 #1089733
>>1089534

>Вот сейчас ты делаешь хуйню — скатываешь тред в токсичное говно.



Подожди, то есть ты считаешь что лучше пусть в треде будем много няшных долбоёбов безруких чем токсичные, но неплохие специалисты?

Бля, тебе лечиться надо. У нас тут нет демократии, кто прав тот прав, а не кого больше тот прав.
#401 #1089740
>>1089658
Ну отлавливай там всякие события плеера, например. https://developer.mozilla.org/en-US/docs/Web/Guide/Events/Media_events
#402 #1089758
>>1089620
Не нашёл AES encryption и decryption файлов на JS. В ZIP-e - тем более.

Нашёл вот такое: http://aes.online-domain-tools.com/ но оно не сохраняется, блядь.

Перерыл пол рунета, но не нашёл ничего более годного чем это https://etherhack.co.uk/symmetric/aes/aes.html
Просто hex в hex шифрует и расшифровывает. Но цифертекст тут каждый раз разный, что говорит о смене вектора инициализации.
Но как вытащить оттуда JS - ума не приложу.

Попробовал зашифровать hex-строку через CryptoJS, в итоге получил шифртекст намного большей длины:

message: 59678556102144ae95741ca84617a920cff93ca9fd11c46979cc1944422aca5a
cipherData: 3Vrz6Mlpsp2KbackEjZFGhg0AH1ruMHBhteuKxFxoRUim49t31AkNkZn5Od3ho1onRAdTvsxovsbUtH+Rs3GcrUkbhm55RajcBfDxx/AxoQ=
cipherHex: dd5af3e8c969b29d8a6da7241236451a1834007d6bb8c1c186d7ae2b1171a115229b8f6ddf5024364667e4e777868d689d101d4efb31a2fb1b52d1fe46cdc672b5246e19b9e516a37017c3c71fc0c684
data: 59678556102144ae95741ca84617a920cff93ca9fd11c46979cc1944422aca5a

data1 59678556102144ae95741ca84617a920cff93ca9fd11c46979cc1944422aca5a === message 59678556102144ae95741ca84617a920cff93ca9fd11c46979cc1944422aca5a

Я знаю, что AES - алгоритм блочного шифрования, и он имеет свой размер блока.
Если я ввожу 256-бит в виде HEX'a, то наверняка я должен был бы получить 256-бит шифротекста.
Такая длиная строка цифертекста говорит об избыточных вычислениях, и большом енкрипт-файле в перспективе.

Там используется wordarray, и чтоб получить hex из base64 мне пришлось переводить его в строку.
hex = cipherData.toString();
hex = CryptoJS.enc.Base64.parse(hex);
document.write("cipherHex: "+hex+"<br>");

Ну и как читать файл в hex, а уж тем более в base64 - в душе не ебу.
#402 #1089758
>>1089620
Не нашёл AES encryption и decryption файлов на JS. В ZIP-e - тем более.

Нашёл вот такое: http://aes.online-domain-tools.com/ но оно не сохраняется, блядь.

Перерыл пол рунета, но не нашёл ничего более годного чем это https://etherhack.co.uk/symmetric/aes/aes.html
Просто hex в hex шифрует и расшифровывает. Но цифертекст тут каждый раз разный, что говорит о смене вектора инициализации.
Но как вытащить оттуда JS - ума не приложу.

Попробовал зашифровать hex-строку через CryptoJS, в итоге получил шифртекст намного большей длины:

message: 59678556102144ae95741ca84617a920cff93ca9fd11c46979cc1944422aca5a
cipherData: 3Vrz6Mlpsp2KbackEjZFGhg0AH1ruMHBhteuKxFxoRUim49t31AkNkZn5Od3ho1onRAdTvsxovsbUtH+Rs3GcrUkbhm55RajcBfDxx/AxoQ=
cipherHex: dd5af3e8c969b29d8a6da7241236451a1834007d6bb8c1c186d7ae2b1171a115229b8f6ddf5024364667e4e777868d689d101d4efb31a2fb1b52d1fe46cdc672b5246e19b9e516a37017c3c71fc0c684
data: 59678556102144ae95741ca84617a920cff93ca9fd11c46979cc1944422aca5a

data1 59678556102144ae95741ca84617a920cff93ca9fd11c46979cc1944422aca5a === message 59678556102144ae95741ca84617a920cff93ca9fd11c46979cc1944422aca5a

Я знаю, что AES - алгоритм блочного шифрования, и он имеет свой размер блока.
Если я ввожу 256-бит в виде HEX'a, то наверняка я должен был бы получить 256-бит шифротекста.
Такая длиная строка цифертекста говорит об избыточных вычислениях, и большом енкрипт-файле в перспективе.

Там используется wordarray, и чтоб получить hex из base64 мне пришлось переводить его в строку.
hex = cipherData.toString();
hex = CryptoJS.enc.Base64.parse(hex);
document.write("cipherHex: "+hex+"<br>");

Ну и как читать файл в hex, а уж тем более в base64 - в душе не ебу.
#403 #1089774
>>1089733
Зачем ты мне предлагаешь выбор из двух хуевых крайностей? Демократию еще приплел откуда-то.

Я считаю, что хорошему специалисту не обязательно быть полным мудаком и называть всех вокруг дебилами. Это приносит больше вреда, чем пользы. И действительно крутым ребятам (Абрамов, Ситник и т.д.) их скиллы почему-то не мешают вести себя нормально.
#404 #1089825
Как правильно написать строку вида
var name = array[5];
Если учесть, что array может оказаться пустым или вообще null? Тернарный оператор юзать? Типа (array != null && array[5]) ? name = array[5] : undefined; или что-то вроде?
#405 #1089827
>>1089825

Я бы так написал. Я джун, работаю второй месяц.

let name = array ? array[5]: null;
25 Кб, 501x332
#406 #1089830
>>1082836 (OP)
>>1089758
Шо ни у кого нет AES для файлов на JS что-ли, блядь?
Мне его что кривыми руками с отрозшими ногтями, тыкая пальцами в кнопки - самому быдлокодить?
#407 #1089833
>>1089830
Нашёл вот это: https://infotechinc.github.io/symmetric-encryption-in-browser/
но здесь надо какое-то непонятное WebCryptography API.
Его что в браузер надо ставить? Можно ли его в виде JS-файлов подключить?
#408 #1089842
>>1089825
const name = (array || [])[5];
#409 #1089846
>>1089827
Поведай мне, джун, сколько учил и что читал?
#410 #1089940
>>1089825
var array = [0, 1, 2, 3, 4, 5];
Array.isArray(array) && array.length > 5 && array[5] || undefined

все остальные животные и написали хуйню
#411 #1089946
>>1089940

Сам ты животное. И код твой говно.

По пунктам:
0) твой код плохо читается

1) undefined никто не присваивает, это вроде как канон. Присваивают null

2) Если array[5] не определен, то сработает второе условие, присвоится undefined. С-но, твой код избыточен. То же самое про проверку на длину. Она не нужна.

3) Самое главное. Он содержит баги. Если у тебя 0 в array 5, то сработает undefined. Руки отрывать за это.

Все тот же джун, работаю второй месяц
#412 #1089953
>>1089846

Читал Кантора. Читал про реакт Стоянова и еще по мелочи немного. Еще осилил курс Programming languages от Дэна Гроссмана, но там не совсем про js, а скорее общие принципы. Читал SICP, но страниц сто прочел и отложил пока. Позже вернусь.

Сейчас тимлид хвалит меня за дотошность и ругает за хуевые архитектурные решения. В большинстве случаев он оказывается прав, и аргументированно показывает, что я сделал хуйню. Что бы почитать такого, чтобы перестать быть макакой, а стать нормальным программистом-архитектором, способным спроектировать и реализовать сложную структуру?
#413 #1089962
А какой лвл и сколько ушло на все про все?
Долго работу искал? Вышка по специальности или просто вкатился?
#414 #1089969
>>1089946

> 1) undefined никто не присваивает, это вроде как канон. Присваивают null


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

> 2) Если array[5] не определен, то сработает второе условие, присвоится undefined. С-но, твой код избыточен. То же самое про проверку на длину. Она не нужна.



она нужна, потому что вместо undefined я должен вернуть дефолтное значение.

>3) Самое главное. Он содержит баги. Если у тебя 0 в array 5, то сработает undefined. Руки отрывать за это.


это не баг, а тест на дегенератов. с одной стороны ты заметил недостаток, с другой ты не понял, что этот недостаток легко фикситься.

>0) твой код плохо читается


че блять. перепиши мой код на if else, и подумай еще раз. a && b сложно для него ну пиздец.

вот блять специально для тебя правлю код
var array = [0, 1, 2, 3, 4, 5];
var defaultValue = 1;
[defaultValue, array[5]][Array.isArray(array) && array.length > 5 && isFinite(array[5]) | 0];
#415 #1089972
>>1089825
Тред не читал
let name = array[5] ? : array[5] : 'Anonymous'
Но вообще это какой-то хуевый код, когда приходится тащить именно пятый элемент и непонятно есть он нет.
Еще можно использовать деструктуризацию, типа
let [birthdate, first_name = 'Anon'] = array
Если у тебя идет имя вторым элементом, например. Анон - дефолтное если его нет. Так по хипстеркси.
#416 #1089977
>>1089969
вот написал вариант для школьников, которым СЛОЖНО, РУКИ ОБЛОМАТЬ, ну короче которые еще не созрели для нормального кода:
var unwrap = (optional, defaultValue) => optional !== undefined && optional !== null ? optional : defaultValue;
var array = [1, 2, 3, 4, 5];
unwrap(array[5], "пусто");
#417 #1089997
>>1089969

>это не баг, а тест на дегенератов.


Именно, вот мы тебя и выявили.

>>1089977
И снова ты свой тест провалил! Вся заварушка началась как раз из-за того, что array может быть не определён и попытка его индексировать вызвала бы ошибку, а ты вот прямо array[5] и хуяришь в функцию. Какой уже смысл там что-то проверять-то.
#418 #1090001
>>1089940
Ты, кстати, не из тайпскрипта или чего подобного вылез? Нахуя, блядь, проверять, что это Array и что у него есть длина и она больше 5? Ничего этого в условиях не было, можешь у него вообще там обычный объект с цифровым ключом, который он случайно array'ем назвал.
#419 #1090022
>>1089969
>>1089977
Ты троллишь что ли так? Одно решение охуительнее другого.
#420 #1090047
>>1089825
надо зделоть шоб пустой массив по дефолту ставился, а там уже по длине проверять
мастержс
#421 #1090054
Отвечаю на один самый важный вопрос по ЖС ИТТ
сеньор300кк
#422 #1090058
>>1090054
Что получится, если сложить массив с числом?
#423 #1090059
>>1090001
Внезпно кстати, у всех строк есть прототип String, у которого есть метод length, так что строка может быть с длиной и больше пяти. Парам па пам, вью!
#424 #1090063
>>1090058
Строка.
Под капотом интерпретатор попытается преобразовать массив к числу методом valueOf, но так как у массива он возвращает сам массив, а не примитив, то интерпретатор обратится к toString, соответственно произойдет конкатенация числа и строкового представления массива.
#425 #1090065
#426 #1090066
>>1090054
Товарищ синьер, а можно вкатится в 28 ?
#427 #1090067
>>1090063
а че я тогда тока што в консоле сложил, и строка сконкатенировалась с последним значением в массиве?
#428 #1090075
>>1090066
Примеры есть, и немало.
>>1090067
Что значит "с последним значением"? У тебя отдельно приводится к строке число, отдельно массив, затем они конкатенируются. Например, массив [1,2,3] сначала приведется к строке "1,2,3". Затем к этой строке приклеивается приведенное к строке число, например "5" и получается "1,2,3" + "5" // "1,2,35"
Все правильно.
#429 #1090142
>>1090066

Вопрос повторяется из треда в тред. Ребята, вот исчерпывающий алгоритм.

Желающим вкатиться джуном, имея нестандартные статы (седой олдфаг, синдром Аспергера, маргинальная биография, проживание в глубокой мухосрани и все прочее в таком же духе), нужно сделать так:

1) Два-три месяца вложиться по максимуму.

2) Нанять ментора, который поможет подтянуть пробелы в знаниях и найти работу. Сайтов, предлагающих подобные услуги, довольно много.

Принцип касается не только js, и даже не только программирования. Он универсален.
#430 #1090150
>>1090142
Хотите мнение? Вы задумали в принципе далеко не самую умную затею. На моих глазах около десятка парней в возрасте за 30, как и Вы, пытались начать все с нуля, освоить программирование, получить хорошую работу с хорошей ЗП и в перспективе уехать за рубеж. Знаете скольким это удалось? Никому! Основная причина - очень высокий порог вхождения при низкой усвояемости нового материала после 30-и, попросту говоря - не осилили. Даже если и осилите, дальше что? Все двери перед Вами распахнутся? Да не тут-то было! Сегодня типлиды кругом 25-30 лет, 30+ уже ПМ. Дядя, ты куда прешь?!(с) Даже многие программисты с хорошим бэкграундом, которые уехали за рубеж после 30-и в итоге там переучивались в водителей погрузчиков, т.к. по специальности устроиться не смогли.

Возможно Вы уникум и у Вас все получится, буду за Вас искренне рад, но статистика вещь упрямая.

В таком возрасте если и начинать все с нуля, то нужно выбирать не инструмент а направление деятельности в котором хотите развиваться, изучать предметную область, затем уже и об инструментах можно подумать, точнее они сами к Вам придут.

Но если у Вас идея фикс, то что могу посоветовать... да ничего не могу посоветовать, т.к. особых предпочтений Вы так и не высказали и с предметной областью как понимаю не определились. Из всех перечисленных технологий, можно только с уверенностью сказать что Java и через 10 и через 20 лет будет на плаву, т.к. это в первую очередь крупный ентерпрайз, там все относительно статично. Но не завоете ли Вы волком через полгода клепая в эклипсе очередной 100500-й класс?
#431 #1090157
>>1090150
Среди этих 30 летних были молодые и шутливые, слушающие яниксов, стригущиеся в барбершопах и вот это все. Или это все было прям совсем мужичье которому уже нихуя в жизни не интересно?
#432 #1090158
>>1090150

так и есть в 30 лет уже мозги высохли, я даже школьный выпускной экзамен с трудом сдам
353 Кб, 1600x900
#433 #1090165
>>1090157
Какая разница-то?.. Количество ключевых слов в том же JS давно вышло за все мыслимые пределы (а в вакансиях требуют ещё и серверные языки, при этом з/п часто как за один), и как огромный снежный ком — растёт и растёт.
#434 #1090173
>>1090165
Мне кажется у меня в 17 мозг​ был более закостенелый, чем в 27. Я тогда не мог даже понять как циклы работают, ни как мир устроен.
#435 #1090227
Блядь, как же у меня полыхало сегодня с вашего зоопарка. Возникла примитивнейшая задача - автоматизировать заполнение формочек на сайте. А сайт на реакте...
Полез в код страницы - там адский нечитаемый пиздец. Проебался хуй знает знает сколько времени, пытаясь найти где у этого говна начала, а где конец, пока не убедился что вся внутренная логика через хуй проссышь какую жопу завернута в замыкания, и до скоупа в котором она живет мне тупо не добраться. Хуй с ним, прокликаю по кнопочкам, да захуярю что нужно в value нужных инпутов... Да вот только этот реакт работает со своим виртуальным домом, на то что реально нарисовано на странице он хуй ложил. Ладно, захуюрю ему чейдж эвентов... на которые ему тоже совершенно похуй - эвенты в нём тоже свои. Пришлось дрочиться подбирая такой порядок эвентов и ввода данных при котором он воспринимал это как реальный ввод. Для textarea, например, вышло фокус\установка значения\инпут\блюр. Строго, блядь, в этом порядке. Шаг в сторону - и нихуя уже не сработает. Для других инпутов уже другой, блядь, порядок эвентов. И закончилось всё это тем что последнему особо злоебучему импуту пришлось даже кейкоды засылать. Что, к слову, нихуя не кросбраузерно, и рабочее решение нашлось далеко не сразу.
В итоге на юзерскрипт из какой-то сраной сотни срочек ушла вся ёбаная ночь, до сих пор еще задница не остыла.

И это при этом что я далеко не жс-хейтер, скорей наоборт - постоянно его использую, и считаю отличным языком. Но, блядь, не в вебе. Там ад израиль.
#436 #1090233
>>1090150

Это паста? Мы говорим немного о разном. С тем, что мозги после 30 работают хуже, никто не спорит. Пик интеллектуальной формы человека -- 22 года. Мнение основано на наблюдениях за взлетом топ-шахматистов.

Понятно, что если начал в 30, то Кармаком ты вряд ли станешь. Но не так уж и сложно стать середнякаом, зарабатывать пару тысяч грина в месяц и жить на каких-нибудь теплых островах Тихого океана. И эта жизнь будет гораздо счастливее жизни большинства людей.

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

> многие программисты с хорошим бэкграундом, которые уехали за рубеж после 30-и в итоге там переучивались в водителей погрузчиков



Что это вообще за хуйня? Программист с хорошим бэкграундом может работать удаленно.
#437 #1090247
>>1090066
Конечно можно. Все зависит от тебя. Почитай https://joisadler.me/posts/ чувак пока не устроился, но очень сильно прокачался. Другие уже устроились на работу, но блогов не ведут.

Занимаются по этим курсам https://goo.gl/keMtwT
#438 #1090260
>>1090247
Ага, да, хекслет, рефералом. Ты уже 5 раз пиал
#439 #1090262
>>1090233
Дибилы блядь! Нахуя уезжать? Работай удаленно, получай в баксах и плати свои 13%.
#440 #1090266
>>1090262

> плати свои 13%


Зачем? До пенсии все равно не доживешь. А если и доживешь выгоднее эти 13% положить на валютный депозит или в битки.
#441 #1090277
>>1090266
Иначе атата и здоровым точно не доживешь.
#442 #1090284
>>1090260
И что? Работает же. Люди успешно обучаются и устраиваются на работу.
#443 #1090285
>>1090262

>плати свои 13%


Это только на доходы 13%. А еще пенсионный взнос, страховой, и еще всякие другие. Выходит около 50%.
#444 #1090287
>>1090262

Нахуя уезжать -- давай не будем это здесь обсуждать, хорошо? Чтобы избежать оффтопика и потенциальных срачей на темы, не имеющие отношения к программированию.

Важно иметь достаточную профессиональную квалификацию, для того чтобы был выбор, уехать или оставаться. И очень плохо, когда такого выбора нет.
#445 #1090288
>>1090142
1) Кому нужно, мы все уже здесь.
2) Лучший путь обучения - самообразование + практика.
Ни одного раза какой-либо старый/молодой долбаеб мне не объяснил лучше, чем написано в книге или документации.

>>1090066
Вкатился в 27, уже год работаю JS/HTML/PHP/NGINX/APACHE/VMware макакой. Потихоньку жалею и учу Python, чтобы свалить из этого ада с легаси говном на PHP5.2, где все перемешанно, где переменные именуют одной буквой. Лучше бы я вагоны разгружал, чесслово. Но у меня бекграунд был математический, прошлая профа - исследователь в НИИ. Из программирования, в школе BASIC (GOTO пацан, дада). В универе решал всем неосиляторам лабы по дискретке на паскале, стеки/очереди/кучи там. всякие. Так что я тот еще мамкин умница. На все обучение HTML/CSS/JS/PHP ушло 2 месяца.
#446 #1090295
>>1090288
И сколько у тебя ушло на вкатывание времени?
#447 #1090296
>>1090295
он же написал, 2 месяца. Охуеть.
#448 #1090297
>>1090296
а если вместе с бекграундом?
#449 #1090298
>>1090296
Пиздит
#450 #1090299
>>1090295
Нужно не по времени ориентироваться, а по достигнутым результатам.
#451 #1090300
>>1082836 (OP)
Кто-нибудь может написать нечто подобное для файлов >>1089833
но без Web Cryptography API, или же подключить его в виде JS-файлов,
наверняка оно есть в JS.
Только я вижу там в исходном коде используется AES-128, а надо AES-256-CBC,
чтобы размер блока и длина ключа была 256 бит.
#452 #1090305
>>1090300
Нашёл PDF-ку какую-то там внизу листинг кода JS: https://www.theseus.fi/bitstream/handle/10024/92960/Web_Cryptography_API_Luoma-aho.pdf
Не пойму, это расширение к браузеру или его можно в JS-файл запхнуть и подключить как скрипт?
#453 #1090309
>>1090305
Ты листал pdf и не удосужился понять о чем он?

Это какой то модуль, для сервера, или хз. Код есть на гитхаб https://github.com/webcryptoapiex/secretnote
Скрипт из пдф https://github.com/webcryptoapiex/secretnote/blob/master/public/js/modules/utils.js
#454 #1090313
>>1090309

>Код на гитхаб



что за прикол?

> var app = parent.app = parent.app || {};

#455 #1090318
>>1090313
Это код
#456 #1090324
>>1090313
Это шифрование.
#457 #1090326
Ребзи, где нужно хранить jsonwebtoken на клиенте? Локалсторадж?
#458 #1090327
>>1090313
Обычный код. Краткая форма этого:
if(parent.app){
var app = parent.app
} else {
parent.app = {};
var app = parent.app;
}
#459 #1090342
>>1090309>>1090318>>1090313>>1090324>>1090327
Короче, после всего этого - в голову приходит то, что проще всего было бы как-то подключать обычный exe-шник:
запустив для шифрования его при помощи ссылки в html
например командой "openssl enc -aes-256-cbc -salt -in secret.txt -out secret.enc -k password",
и после выполнения шифрования на сервере - просто выдать ссылку на файл:
как вот тут вот, когда файл шифруется: >>1089833 (там ссылка появляется).
Но тогда, эта хрень не будет пахать в линупсах, маках, юнихах и андройдах всяких, если она вообще будет пахать.

Как это сделать - непонятно, там вроде-бы надо прописывать полные пути, а относительные не канают,
а хочется портабельную шифровалку файлов в браузере 256-битным ключём (32 байта),
ну чтоб носить её можно было от браузера к браузеру - в виде zip-архива с js-файлами и html-страницей,
подключающей их, ну и чтобы расшифровывать можно было этой шнягой.
Можно поставить ограничение на размер шифруемого-дешифруемого файла,
потому что я вижу там base64 юзается во многих всяких CryptoJS, где AES есть,
как тут например, когда в hex переводится файл: http://tomeko.net/online_tools/file_to_hex.php?lang=en
но лучше было бы представить читаемый файл в виде потока,
и шифровать уже поток неограниченной битности, просто зациклив шифрование последовательно-подающихся блоков инфы
а вот уже выходные данные - писать в файлы неограниченного размера,
не обязательно сохраняя в на сервере, а отдавая, например его - по мере закачки исходного файла.

Ну и конечно же не обязательно чтобы был сервер - ещё лучше чтобы можно было из папки открыть html,
вгрузить туда зашифрованный файл, ввести пароль, получить с него ключ,
и по мере загрузки, скачивать расшифрованный файл.

Не нашёл ничего подобного в Инете, поэтому я и тут.
#460 #1090346
>>1090342
Ты хочешь написать шифровальщик без сервера? Его взломают через секунду. Как ты собрался подключать экзэшник?
#461 #1090365
>>1090346

>Ты хочешь написать шифровальщик без сервера?


Взломать шифровальщик всё-равно что взломать алгоритм шифрования.
Более того, если нет сервера, то и передавать на сервер ничего не надо, а значит и перехватить нифига нельзя.
Как подключать? Ну я не знаю, вот так как-то что-ли:
https://stackoverflow.com/questions/4252913/open-an-exe-file-through-a-link-in-a-html-file
Хотя, конечно лучше было бы юзать какие-то JS-крипторы, представляя файл как поток данных.
Есть же видео-трансляции зашифрованные, в том же скайпе, например.
Там файлы не юзаются - там видеопотоки.
#462 #1090415
>>1090342
Я бы посмотрел в сторону меги, как там реализовано. У них же вроде шифрование идёт на стороне браузера.
#463 #1090417
>>1090415
Собсно да - уточнил в википедии.

>Mega шифрует весь контент прямо в браузере с помощью алгоритма AES


>шифрование происходит на стороне клиента при помощи javascript


Ну вот и сходи посмотри на их код.
#464 #1090423
>>1090417

>Ну вот и сходи посмотри на их код.


Так они тебе его и показали. Там скорее всего обфусцировано все до полной нечитабельности.
#465 #1090424
>>1090423

>Так они тебе его и показали.


Браузерный жабаскрипт. Берешь и читаешь, даже спрашивать не надо.

Я думаю что он и должен быть не сильно обфусцирован - это же их киллер фича, то что кто угодно омжет убедится в надёжности шифрования. А с обфусцированным кодом теряется весь смысл.
#466 #1090441
>>1090415

>Я бы посмотрел в сторону меги, как там реализовано.


>Ну вот и сходи посмотри на их код.


Там неведомое творится в коде. Во-первых нельзя глянуть - правый клик не работает.
Во-вторых регистрация надо, в третьих дофига скриптов всяких подключено.
>>1090417

>Mega шифрует весь контент прямо в браузере с помощью алгоритма A


AES'ы бывают разные. AES-128-CTR, например.
Мне же надо AES-256-CBC, как в openssl.
Единственное что нашёл, рабочее в браузере - так это вот: https://gist.github.com/rootsher/c0377faeb89cae491358
А вот проверка дешифрования - в посте (первый ответ):
http://www.itgo.me/a/6204436090760439940/decrypting-aes-256-cbc-salted-ciphertext-with-javascript
Только там надо содержимое зашифрованного файла преобразовать в base64-строку для дешифрования.

Как же юзать всё это добро?
1. С гитхаба (ссылка выше) - копируется код, сохраняется в СryptoJS.js
2. Создаётся некий файл index.html рядом, а внутри помещается код:
<script src="Crypto.JS"></script>
<script>
var dec = CryptoJS.AES.decrypt("U2FsdGVkX1/oA4O+uXXBXAjAenRJwpUV4UqQp4aYCpk=", "password");
var plaintext = CryptoJS.enc.Latin1.stringify(dec);
document.write(plaintext); //Message
</script>
3. Открыв его в браузере - можно видеть исходный Message.
4. Ну а дальше уже это всё портабельно, и можно это всё таскать на какой-нибудь флешке, например.

Можно ещё вот так делать:
var cipherData = CryptoJS.AES.encrypt(word_array, key, { iv: iv }); //где key и iv - 16-ти байтные значения ключа и вектора инициализации.
Но здесь уже размер блока я вижу 128 байт. Если длину ключа увеличить до 256 бит - размер блока всё-равно 128 бит.
К тому же шифровать можно только строки в base64, и текст.
Выше - дешифрование идёт паролем, и это - посоленный файл (Salted_).

Нахрена мне это всё вообще? А хочу использовать для шифрования и дешифрования ключевой файл с 256-битным ключём,
который можно указать в случае использования openssl параметром -kfile
Это уж точно не пароль, и не всегда его данные могут быть представлены в виде символов,
хотя если набрать в консоли "openssl enc -help" видно что первая строка ключевого файла используется - именно как пароль.
#466 #1090441
>>1090415

>Я бы посмотрел в сторону меги, как там реализовано.


>Ну вот и сходи посмотри на их код.


Там неведомое творится в коде. Во-первых нельзя глянуть - правый клик не работает.
Во-вторых регистрация надо, в третьих дофига скриптов всяких подключено.
>>1090417

>Mega шифрует весь контент прямо в браузере с помощью алгоритма A


AES'ы бывают разные. AES-128-CTR, например.
Мне же надо AES-256-CBC, как в openssl.
Единственное что нашёл, рабочее в браузере - так это вот: https://gist.github.com/rootsher/c0377faeb89cae491358
А вот проверка дешифрования - в посте (первый ответ):
http://www.itgo.me/a/6204436090760439940/decrypting-aes-256-cbc-salted-ciphertext-with-javascript
Только там надо содержимое зашифрованного файла преобразовать в base64-строку для дешифрования.

Как же юзать всё это добро?
1. С гитхаба (ссылка выше) - копируется код, сохраняется в СryptoJS.js
2. Создаётся некий файл index.html рядом, а внутри помещается код:
<script src="Crypto.JS"></script>
<script>
var dec = CryptoJS.AES.decrypt("U2FsdGVkX1/oA4O+uXXBXAjAenRJwpUV4UqQp4aYCpk=", "password");
var plaintext = CryptoJS.enc.Latin1.stringify(dec);
document.write(plaintext); //Message
</script>
3. Открыв его в браузере - можно видеть исходный Message.
4. Ну а дальше уже это всё портабельно, и можно это всё таскать на какой-нибудь флешке, например.

Можно ещё вот так делать:
var cipherData = CryptoJS.AES.encrypt(word_array, key, { iv: iv }); //где key и iv - 16-ти байтные значения ключа и вектора инициализации.
Но здесь уже размер блока я вижу 128 байт. Если длину ключа увеличить до 256 бит - размер блока всё-равно 128 бит.
К тому же шифровать можно только строки в base64, и текст.
Выше - дешифрование идёт паролем, и это - посоленный файл (Salted_).

Нахрена мне это всё вообще? А хочу использовать для шифрования и дешифрования ключевой файл с 256-битным ключём,
который можно указать в случае использования openssl параметром -kfile
Это уж точно не пароль, и не всегда его данные могут быть представлены в виде символов,
хотя если набрать в консоли "openssl enc -help" видно что первая строка ключевого файла используется - именно как пароль.
#467 #1090447
>>1090441

>Во-первых нельзя глянуть - правый клик не работает


Ясно всё с тобой.
Какой тебе нахуй шифрование? Винраром шифруй.
#468 #1090450
>>1090424

>Браузерный жабаскрипт. Берешь и читаешь, даже спрашивать не надо.


>>1090441

>Там неведомое творится в коде. Во-первых нельзя глянуть - правый клик не работает.


>Во-вторых регистрация надо, в третьих дофига скриптов всяких подключено.



Что и требовалось доказать. Хлеб свой они никому не отдадут без боя.
#469 #1090451
>>1090447
Если ты такой умный, то почему сам посмотреть не можешь.
#470 #1090453
>>1090450
Да не нужна там никакая регистрация. Файлы с меги и без регистрации скачиваются. И, разумеется, они при этом расшифровываются.
#471 #1090460
>>1090451
Я не могу? У вот тут отлично документированный сорец, даже, блядь, с комментариями.
В то время как у тебя правый клик не работает. Ни и о чем тут дальше говорить можно?
#472 #1090461
>>1090460

>у меня вот тут

#473 #1090473
>>1090447
Да блядь, что вы мне эти коды ебучие в браузерах тычите, я не спец нихуя их ещё инклюдить надо правильно.
Ещё дали бы мануал описания самого стандарта AES, чтобы самому исходник на его основе писать...
Я же хочу всё и сразу - а именно поточное шифрование на лету
четырёх-терабайтного бекапа жесткого диска, а не какие-то пиздюрки по 1 МБайт,
да ещё и на JS, и ещё и в браузере - ну чтобы вы все вообще охуели.

>>1090441
Кстати, это:

>1. С гитхаба (https://gist.github.com/rootsher/c0377faeb89cae491358) - копируется код, сохраняется в СryptoJS.js


>2. Создаётся некий файл index.html рядом, а внутри помещается код:


><script src="Crypto.JS"></script>


не работает, проверил. У меня немного другой Crypto.JS и он нормально инклюдится.
Вот, собственно и js и index.html http://rgho.st/8WvsljSjJ Но тут только строки в base64 енкрипт и декрипт.

>Винраром шифруй.


>WinRAR uses AES-256 in CTR


Дай командную строку что-ли, для aes-256-CBC у винрара,
да ещё и чтобы можно было ключ и вектор инициализации в виде бит пихнуть туда.
Ну и конечно же портабельность у винрара не ахти.

>>1090453
Говоришь так, как будто с меги мне качается encrypted file, а потом расшифровывается у меня же браузером.

>>1090460
Этот сорец и те функции что там - вообще ну ни прям ни о чём мне не говорят.
Непонятно что туда заходит, буфер или поток, или байты, или массив бля.
Вывести же нельзя это и пощупать, так сказать...
#473 #1090473
>>1090447
Да блядь, что вы мне эти коды ебучие в браузерах тычите, я не спец нихуя их ещё инклюдить надо правильно.
Ещё дали бы мануал описания самого стандарта AES, чтобы самому исходник на его основе писать...
Я же хочу всё и сразу - а именно поточное шифрование на лету
четырёх-терабайтного бекапа жесткого диска, а не какие-то пиздюрки по 1 МБайт,
да ещё и на JS, и ещё и в браузере - ну чтобы вы все вообще охуели.

>>1090441
Кстати, это:

>1. С гитхаба (https://gist.github.com/rootsher/c0377faeb89cae491358) - копируется код, сохраняется в СryptoJS.js


>2. Создаётся некий файл index.html рядом, а внутри помещается код:


><script src="Crypto.JS"></script>


не работает, проверил. У меня немного другой Crypto.JS и он нормально инклюдится.
Вот, собственно и js и index.html http://rgho.st/8WvsljSjJ Но тут только строки в base64 енкрипт и декрипт.

>Винраром шифруй.


>WinRAR uses AES-256 in CTR


Дай командную строку что-ли, для aes-256-CBC у винрара,
да ещё и чтобы можно было ключ и вектор инициализации в виде бит пихнуть туда.
Ну и конечно же портабельность у винрара не ахти.

>>1090453
Говоришь так, как будто с меги мне качается encrypted file, а потом расшифровывается у меня же браузером.

>>1090460
Этот сорец и те функции что там - вообще ну ни прям ни о чём мне не говорят.
Непонятно что туда заходит, буфер или поток, или байты, или массив бля.
Вывести же нельзя это и пощупать, так сказать...
#474 #1090477
>>1090473
Вчера всю ночь рыл интернет, наткнулся на очередной CryptoJS-master,
там внутри какой-то bower.json, батники, и ни одного index.html.
Ещё видел .coffee файлы - и ни один JS в папке lib не инклюдится.
Пишет require undefined.
#475 #1090479
>>1090473

>Говоришь так, как будто с меги мне качается encrypted file, а потом расшифровывается у меня же браузером.


Ты не поверишь...
#476 #1090482
>>1090460
Не я писал про правый клик. Мой посыл в том, что вместо болтовни взял бы и сделал.
#477 #1090486
>>1090482
Любой каприз за ваши деньги. Пиши чёткое ТЗ - получишь ценник. Или по твоему я должен подорваться, и из доброты душевной тебе что-то пилить начать?
#478 #1090487
>>1090479

>Ты не поверишь...


Там Web Cryptography API случайно не надо?
Потому что на компе у меня открывает ссылку вот это и шифрует нормально в браузере >>1089833
но оно ж не портабельное нифига, раз там надо Web Cryptography API.
На ноуте не открывается, и я так подозреваю, что если вытащить с меги скрипты эти с АЭС,
они тоже не будут работать на голом JS. Где-нибудь в коде, за может закрасться какое-нибудь:

// Check that web crypto is even available
if (!window.crypto || !window.crypto.subtle) {
alert("Your current browser does not support the Web Cryptography API! This page will not work.");
return;
}
6 Кб, 300x300
#479 #1090498
>>1090486
Если уж за деньги, то проще их направить куда-то в сторону "AES 256 Hardware Encryption".
Пикрелейтед. Но я ж вам хочу мозги поебать чуток, быдлокодингом.
Портабельность такой железяки - самое то, но эта железяка портабельная до поры до времени - т. е.
пока она не накроется медным тазом.
А вот исходник можно на торренты залить и сделать всеобщим достоянием, если не стандартом.
#480 #1090509
>>1090498
Лучше, конечно. В качестве бюджетного решния можно даже взять обычную флешку, и засунуть на неё gpg с парой батников.

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

Здесь тебе могут подсказать в какую сторону самому копать(например ткнуть в сорец меги). Но никто ничего для тебя делать не будет, уж точно не за сотни нихуя.
#481 #1090517
>>1090509

>взять обычную флешку, и засунуть на неё gpg с парой батников


И обычный openssl тоже бы сошёл.
Ладно, вали.
Тащем-та я хотел запхнуть aes-256 в этот brainwallet >>1087382
Ну, чтоб шифровать файлы всякие sha-256 хешем от приватного ключа - в качестве ключа шифрования,
и чтоб можно было, введя пароль - скачать ключевой файл с 32-мя байтами внутри,
имея в дальнейшем возможность использовать его для шифрования-дешифрования файлов,
с помощью openssl, указав его параметром -kfile
А то ну что ж это такое - криптовалюты есть, а криптования инфы нет, только цифровая подпись по ECDSA.
Я где-то ещё слышал есть ECC, но там инфу точками на эллиптической кривой представляют,
а они в два раза больше исходного сообщения, так как имеют две коррдинаты.
#482 #1090520
Аноны, поясните как из функции вернуть промис, если она сама вызывает функцию, которая возвращает промис? Можно пример?
#483 #1090522
#484 #1090596
>>1090298
Сейчас бы на дваче с анонами попиздеть. Себя посамовнушать. Классика.
>>1090295
Два месяца. Чисто основы PHP/HTML/CSS/JS. Без препроцессоров, фреймворков, серверов, гитов, ES6 и прочей хуйни которая пришла уже на работе. Из бекграунда была только дискретка в вузе лабы на паскале и сданые кандидатские минимумы по английскому.
#485 #1090653
>>1090173

>не мог даже понять как циклы работают, ни как мир устроен


Одинаково.
#486 #1090654
>>1089825
name = Array.isArray(array) && 5 in array ? array[5] : void null
#487 #1090660
>>1090486
Не умеешь ты себя продавать. Твое поведение отталкивает. Нанимать тебя никто не будет.
#488 #1090667
>>1090654

>void null


Ты уже определись.
#489 #1090670
>>1090667
С чем?
#490 #1090688
Минутка вкусовщины.

Для простоты понимания принято располагать функции по убыванию абстракции. Но как быть, если такие функции ветвятся?

const F = () => A() + B()
const A = () => a1() + a2()
const a1 = () => aa1() + aa2()
const aa1() = () => ()
const aa2() = () => ()
const a2 = () => ()
const B = () => b1() + b2()
const b1 = () => ()
const b2 = () => ()

Или лучше группировать по уровням абстракции?
F, A, B, a1, a2, b1, b2, aa1, aa2

Как понятней по мнению анона?
Очевидно, что если каждую ветку вынести в какой-нибудь модуль, то проблемы не будет.
#491 #1090689
>>1090688
Обосрался с const, там TDZ будет. Представьте как function declaration.
#492 #1090703
ALARM ПУЗЫРЬ ЛОПНУЛ ALARM
Зарплаты программистам резко подешевели. Выкатывайтесь быстрее, иначе хуй куда устроитесь, ща будет наплыв бывших программистов на всякие стройки и заводы.
АКЦИИ КРУПНЕЙШИХ IT КОМПАНИЙ СТРЕМИТЕЛЬНО ПАДАЮТ, НЕ ВЕРИТЕ ПОСМОТРИТЕ САМИ
#493 #1090723
>>1090703
В очередной раз набигает школотун, попутавший причину со следствием.
При чём здесь акции в Америке и занятость в роиссе?
#494 #1090728
>>1090703
Ахтунг алярма, ага. Дави конкурентов в зародыше.
#495 #1090732
УЧАСТВУЕШЬ В КОНТЕСТЕ НА HACKERRANK
@
5 часов решал задачу уровня HARD, вьебал там рекурсию
Первый кейс выполняется! Замечательно, отправляешь свой код
@
Abort Called, FAQ говорит что у тебя обучение по ресурсам.
@
...
Не больно то и хотелось.
?Пидоры*
#496 #1090733
Органичение по ресурсам. Да что же это сука за день такой
#497 #1090753
>>1090732
Что это такое и какое имеет отношение к JS?
#498 #1090764
>>1090753
Точно. Ошибся тредом, аноним.
Простите меня.
#499 #1090805
>>1090660
Так и было задумано. Мне, откровенно говоря, и самому не сильно хочется с этим ебаться.
#500 #1090816
>>1090805
Не надо нифига уже. Я сам нашёл вот это:
https://tutorialzine.com/2013/11/javascript-file-encrypter
Скачал, работает. Но там кнопок дофига и интерфейс меняется, надо делать пару телодвижений.
Работает без Web Cryptography API, правда там используется HTML5 FileReader API
Зашифрованный файл содержит в себе base64 начинается с "U2FsdGVkX1" и это "Salted__"
в обычном тексте, так что думаю не проблема будет записать в него исходный код без base64.
Ну и расшифровать его с помощью openssl тоже думаю можно будет,
ведь файл шифруется паролем. К тому же, поскольку 32 байта в первой строке ключевого файла,
openssl использует как пароль, я думаю его можно просто вот так взять, спарсить и указать в виде пароля.
Но дело в том, что код зашифрованных файлов отличается, поскольку они salted,
криптор его солит как-бы, каждый раз с новой солью, а хотелось бы указать ключ и вектор в виде байт,
и сформировать его из ключа, например ключ - сами байты, вектор инициализации - хеш их.

В общем, буду перепиливать, если конечно - не заебёт, и впадло не станет.
#501 #1090893
>>1090816
Вижу там тоже лимит на 1 мегабайт, и если попытаться вгрузить файл побольше - вылазит окно.
Там прямо так и пишется, что браузер может зависнуть, потому что шифрование идёт прямо в браузере.
С использованием FileReader API в виде объекта: var reader = new FileReader();
Там в статье, написано вот что:
The way around this would be to use the File System API and to write the actual binary data there, but it is supported only in Chrome for now.
Но у меня и в мазиле это работает.

В общем, зашифровал паролем password
файл sercret.txt с текстом "secret секрет"
- получил на выходе файл secret.txt.encrypted с текстом
U2FsdGVkX189UYsc7z4Ps2FPDSiOGW30MmD4afrLq9CI52QeQMbejwR/hh6PSFye4vxyLu2vsG1hyZy43OOvLQLxVMs0BZuNu5ka8mFJuOA=

Решил избавится от base64...
Прописал в файле script.js вместо этого:
a.attr('href', 'data:application/octet-stream,' + encrypted);
вот это:
a.attr('href', 'data:application/octet-stream;base64,' + encrypted);

После повторного шифрования того же sercret.txt
получил другой secret.txt.encrypted с тектом "Salted__ҐL-хwжЇ®дтnћ$U>Пr#1tЭnІїТhнИU‹f"
Затем решил декриптнуть его но уже с помощью openssl:

>openssl enc -d -aes-256-cbc -in secret.txt.encrypted > secret.txt -k password


В итоге, получил на выходе файл secret.txt
с текстом: "data:text/plain;base64,c2VjcmV0INGB0LXQutGA0LXRgg=="
Скопировал из него вот эту вот хуйню: "c2VjcmV0INGB0LXQutGA0LXRgg=="
и понёс её сюда: http://www.motobit.com/util/base64-decoder-encoder.asp
не забыв ткнуть radio там - в decode и вижу "secret секрет"...
Этот криптор два раза в base кодирует бинарную инфу, поэтоу и избыточность тут нехилая.
Такие дела...
#501 #1090893
>>1090816
Вижу там тоже лимит на 1 мегабайт, и если попытаться вгрузить файл побольше - вылазит окно.
Там прямо так и пишется, что браузер может зависнуть, потому что шифрование идёт прямо в браузере.
С использованием FileReader API в виде объекта: var reader = new FileReader();
Там в статье, написано вот что:
The way around this would be to use the File System API and to write the actual binary data there, but it is supported only in Chrome for now.
Но у меня и в мазиле это работает.

В общем, зашифровал паролем password
файл sercret.txt с текстом "secret секрет"
- получил на выходе файл secret.txt.encrypted с текстом
U2FsdGVkX189UYsc7z4Ps2FPDSiOGW30MmD4afrLq9CI52QeQMbejwR/hh6PSFye4vxyLu2vsG1hyZy43OOvLQLxVMs0BZuNu5ka8mFJuOA=

Решил избавится от base64...
Прописал в файле script.js вместо этого:
a.attr('href', 'data:application/octet-stream,' + encrypted);
вот это:
a.attr('href', 'data:application/octet-stream;base64,' + encrypted);

После повторного шифрования того же sercret.txt
получил другой secret.txt.encrypted с тектом "Salted__ҐL-хwжЇ®дтnћ$U>Пr#1tЭnІїТhнИU‹f"
Затем решил декриптнуть его но уже с помощью openssl:

>openssl enc -d -aes-256-cbc -in secret.txt.encrypted > secret.txt -k password


В итоге, получил на выходе файл secret.txt
с текстом: "data:text/plain;base64,c2VjcmV0INGB0LXQutGA0LXRgg=="
Скопировал из него вот эту вот хуйню: "c2VjcmV0INGB0LXQutGA0LXRgg=="
и понёс её сюда: http://www.motobit.com/util/base64-decoder-encoder.asp
не забыв ткнуть radio там - в decode и вижу "secret секрет"...
Этот криптор два раза в base кодирует бинарную инфу, поэтоу и избыточность тут нехилая.
Такие дела...
#502 #1090899
>>1090893

>Скопировал из него вот эту вот хуйню: "c2VjcmV0INGB0LXQutGA0LXRgg=="


>и понёс её сюда: http://www.motobit.com/util/base64-decoder-encoder.asp


>не забыв ткнуть radio там - в decode и вижу "secret секрет"...


Да, там секрет - вот тут видно кириллицу: http://secundomer.ru/index.php?r=base64/encode
#503 #1090994
Что же с нами будет, когда webassembly подъедет
#504 #1091032
>>1090994
будем учить C
на самом деле ничего, топовые конторы сделают на нем какую нибудь йобу, а макаки как писали на жквери так и будут дальше писать
#505 #1091040
>>1091032

вангую на аде, так как она ок для интернета вещей сегодня читал про этот язык в западных новостях
#506 #1091051
>>1090994

всё будет норм, расслабься. у жс будет API для работы с wasm http://webassembly.org/docs/js/
#507 #1091061
>>1090994
Будем использовать сверхпроизводительные Rust модули
#508 #1091080
>>1090899
Короче, просто скачал этот криптор, запхнул в папку с брайнваллетом, и подключил его фреймом.
Смотрите что получилось: http://rgho.st/7vlks4Rgh
#509 #1091091
>>1090994
Операции по работе с DOMом все равно через JS врапперы будут осуществляться.
#510 #1091092
>>1090994
С++ стоило бы знать уже сегодня, для понимания работы движков, модулей Ноды, ВебГЛ, ВебВР и прочего. И сколько процентов знают-могут?
Байтоёб лает, караван ПХП-ЖиКвери идёт.
#511 #1091121
Вот вроде бы довольно простая херня, но въехать не могу. Анон, что можно почитать на тему...хуй знает, как это назвать, жизненного цикла страницы? У меня на странице есть форма, мне нужно перехватить её событие submit. Вопрос: как это сделать? Нет, я понимаю, что form.addEventListener("submit", function () {}); но куда мне это писать? Просто в JS или это нужно обернуть в DOMContentLoaded?

Вот, например, один и тот же код.
==========
<div id="test">Hello</div>
<script>
console.log(document.getElementById("test"));
</script>
==========
и
==========
<script>
console.log(document.getElementById("test"));
</script>
<div id="test">Hello</div>
==========

Первый работает нормально, второй отдаёт null. В принципе это логично, потому что во втором случае скрипт срабатывает до "добавления в DOM узла #test" (не уверен, что правильно формулирую). Но при этом если второй обернуть в DOMContentLoaded, то всё будет ок, что, в принципе, тоже довольно логично.

Так что делать в этой ситуации? Если я обращаюсь к какому-либо элементу на странице, то мне обязательно нужно оборачивать это в DOMContentLoaded чтобы случайно не обратиться к тому узлу, которого в DOM еще нет? А с хера ли его не будет, если с другой стороны, зачем мне подключать скрипт НЕ в конце страницы, а в начале? Или всё равно стоит предусмотреть? Или не стоит? А еще какие-то async есть, с ними, по идее, без оборачивания в DOMContentLoaded всё будет совсем плохо?

Короче, билять, если я обращаюсь к элементу вёрстки, который в вёрстке, а не динамически скриптами генерируется, мне оборачивать обращение в DOMContentLoaded или нет?
#512 #1091141
>>1091121
Если ты делаешь какой-то утилитарный скрипт, которым будут пользоваться ширнармассы, то тебе стоит предусмотреть вообще всё. Даже точку с запятой в начале файла. Вряд ли это твой случай.
Если скрипт специфичный для твоей странички, тогда не трать времени на такие заморочки. Подключай всё в конце Боди.

Скоро это кончится и мы будем префетчить асинхронные модули по ХТТП2, вот тогда и заморочишься.
53 Кб, 509x604
#513 #1091148
Отцы, подскажите новичку, как заставить ангуляр (который 1.x.x) отображать на странице шаблоны по велению сервера на ноде?
(Да, ng способен и сам заниматься роутингом и отображать через ng-view шаблоны, но я хочу именно через ноду с его экспрессом.)
#514 #1091171
>>1091148

>по велению сервера на ноде?


AJAX, не?
66 Кб, 400x400
#515 #1091287
перекат >>1091285 (OP)
перекат >>1091285 (OP)
перекат >>1091285 (OP)
перекат >>1091285 (OP)
перекат >>1091285 (OP)
Тред утонул или удален.
Это копия, сохраненная 1 декабря 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски