Ivan
Руби хороший язык, но экосистема у него совершенно мёртвая
С учётом того что совсем недавно появился натив для всех современных платформ, включая арму, не сказал бы что мертва
Sunlive
Я тебе могу скинуть свой конфиг, выкинешь ненужное
давай, у меня уже есть настроенный свой рабочий, просто хочу посмотреть что можно докрутить
Sunlive
и что я упускаю
Default
Больше возможностей, статическая типизации, производительность.
И кстати, каких таких возможностей больше в крестах? 🤔
J. A. R. Kotlien
Статическая и слабая при этом. Дубовое легаси, которое хз зачем юзать в 2к19
Да там пол программы можно на этапе компиляции выполнить и статически безопасно.
Ivan
Это да, но именно как язык программирования лучше JavaScript.
Этот выбор не уместен, ты на жс мк будешь прогать?
Default
Да там пол программы можно на этапе компиляции выполнить и статически безопасно.
А остальные пол программы упадут в рантайме из-за ошибки типов, да
Sunlive
спс
Ivan
Выбор яп из-за задачи определяется
J. A. R. Kotlien
Этот выбор не уместен, ты на жс мк будешь прогать?
Просто там сказали, что нужно возненавидеть языки типа плюсов и это задело. Формочки проще делать на жс.
Default
Есть std lib
И собсна что дальше? Ещё буст есть и qt
Default
Это никакого отношения к тому, что кресты по прежнему ужасны не имеет
Ivan
Просто там сказали, что нужно возненавидеть языки типа плюсов и это задело. Формочки проще делать на жс.
Насчёт возненавидеть - сказал я. Я отношусь к крестам хорошо, но, бля, в нем столько ньюансов, что прям бесит
Default
И я вот хоть убей не понимаю, что за инерция мышления заставляет писать на них сейчас при живом-то расте
Андрей Чайковский
Это никакого отношения к тому, что кресты по прежнему ужасны не имеет
В любом случае, кресты это мощно. Один CRTP сознание уводит в рекурсию
Nikolai
Человек спросил гайды по реакт у и фронтенду - ему посоветовали поучить кресты. Люблю этот чат
Китикет
Человек спросил гайды по реакт у и фронтенду - ему посоветовали поучить кресты. Люблю этот чат
Ему посоветовали посмотреть на другие варианты, и вернуться к фронтенду с осознанием того, зачем ему это нужно) Скорее так)
Default
В любом случае, кресты это мощно. Один CRTP сознание уводит в рекурсию
Лисп в таком случае отправляет сознание в нирвану
Default
И вообще любой язык с развитым метапрограммированием
Yury
и снова столкнулся с проблемой редакса)) как заставить обновляться компонент при обновлении хранилища?
O Father O Satan
Ну так ты же через connect() редакса мапишь стейт в пропсы?
Andrey
Раст ещё сырой, но он хорош
раст вроде не сырой, а экосистема слабовата, да
Yury
const mapStateToProps = state => { return { pingout: state.websocket.messages }; }; export default connect(mapStateToProps) (Ping);
Yury
маплю
Андрей Чайковский
маплю
Мутируешь стейт?
O Father O Satan
Тогда должно всё хорошо быть. А компонент у тебя случайно не Pure?
Yury
render() { const pingitems = this.props.pingout.ping.map((pingitem, i) => { return( <PrintText key={i} textitem={pingitem}/> ); }); return ( <div> <div> {pingitems} </div> </div> ) }
Yury
ytn
O Father O Satan
А ты dispatch как делаешь?
Yury
А ты dispatch как делаешь?
а его делает либа вебсокета
Андрей Чайковский
class Ping extends Component {
Покажи, как ты в стор пишешь данные
🅅aleriy
А если делать так, как здесь советуют, без токена, только куки. Получается на фронт нужно либо 200 отдать, либо 403?
надо понимать одну простую вещь, куки конечно это прикольно, но не все пользователи твоего сайта их разрешают... поэтому надежнее передавать при логине токен в веб, сохранять его в локалсторадже, например и потом помещать в заголовке Authorization: Bearer <token>, либо Authorization: Token <token> в зависимости от требований бакенда
Yury
Покажи, как ты в стор пишешь данные
https://github.com/giantmachines/redux-websocket пишет вот она
Yury
редьюсер я определил, но вызов делает либа, через мидлвар
Yury
export const store = createStore(rootReducer, initialState, composeWithDevTools(applyMiddleware(reduxWebsocketMiddleware)));
Yury
и еще: const initialState = { default: [], websocket: { connected: false, messages: { ping: [], snmp: [], other: [], }, url: null, } }; если в mapStateToProps пишу: const mapStateToProps = state => { return { pingout: state.websocket.messages.ping }; }; то ping пустой array, а если const mapStateToProps = state => { return { pingout: state.websocket.messages }; }; то pingout.ping уже с данными
Yury
redux devtool видит все события
Yury
если компонент обновить потом самому, то все отображается
Yury
а вот автоапдлейт болт
🦜
в смысле? что имеется в виду?
Расширение хрома может считывать запросы исходящие на страницах
🅅aleriy
мы же не говорим о сайтах с повышенными требованиями к безопасности
🦜
допустим и?
И я могу угнав твой токен зайти в приложение_имя
🅅aleriy
для таких сайтов есть 2 фактор и всякое такое
Dmitriy
в смысле? что имеется в виду?
Расширение имеет доступ к локалстореджу, сам факт в утечки токена есть не гуд. А используя куки можно избежать напряжение пользователя 2fa. По хорошему счету нужно давать на выбор метод auth
🅅aleriy
можно рпимер кода посмотреть как до localstorage достучаться из расширения в другое приложение с внешнего домена?
🅅aleriy
https://developer.chrome.com/extensions/storage
и? так это доступ в чей локал сторадж?
🅅aleriy
наверное самого расширения?
🅅aleriy
оно может за последние 4 года сильно изменилось, ровно столько прошло с моего последнего экстеншина под хром
Dmitriy
наверное самого расширения?
Из расширения можно получить доступ к локалстореджу открытой страницы
Default
и? так это доступ в чей локал сторадж?
https://chrome.google.com/webstore/detail/localstorage-manager/fkhoimdhngkiicbjobkinobjkoefhkap
Default
Ну вот так, например
Default
Расширение имеет доступ к стораджу активной страницы
🅅aleriy
https://chrome.google.com/webstore/detail/localstorage-manager/fkhoimdhngkiicbjobkinobjkoefhkap
а ну да, у меня же у самого установлено это расширение :))
Default
Короче, единственный вменяемый вариант – httpOnly куки
🅅aleriy
Короче, единственный вменяемый вариант – httpOnly куки
ну да, только предупреждать юзера разрешить куки для сайта
Default
Эм
Default
Вообще-то пользователя надо предупреждать о хранении его данных как таковом
Default
А не о том, что сайт куки использует
Default
Есть даже разъяснение уже, что если ты юзаешь localStorage, то это не значит, что ты не должен пользователя предупредить
🅅aleriy
а так конечно 100% варианта защиты нет
🅅aleriy
даже httpOnly cookie ломают при желании
🅅aleriy
и SSL не спасет
Default
Алсо, с точки зрения GDPR не просто предупредить, а получить явный акцепт типа нажатия на кнопочку «Согласен»
Default
А до того, как акцепт получен – ни в коем случае ничего, относящегося к пользователю в стораджи не складывать