nodenica / nodenica-website Goto Github PK
View Code? Open in Web Editor NEWSitio web de la Comunidad de Desarrolladores node.js en Nicaragua
Home Page: http://www.nodenica.com/
License: Apache License 2.0
Sitio web de la Comunidad de Desarrolladores node.js en Nicaragua
Home Page: http://www.nodenica.com/
License: Apache License 2.0
Increíble que NodeNica ya tiene 2 anios de existir y aun no hay un sistema de backup de la base de datos.
@jarbitlira no queres hacer lo mismo que hiciste para @Informante? pero para NodeNica? :) Por favorcito. 💯
Copy/Paste a lo que envie por correo a @nodenica/owners
creo que deberiamos de cambiar el nombre a 'JavaScript Nicaragua' se preguntaran el ¿por que? Basicamente por que tenemos mas alcance de tecnologias como angular, ember, react, Johnny Five y un largo etcetera del mismo modo poder organizar diferentes meetup como beer.js, pie.js, coffee.js, nodebots, ¿Nacatamal.js? y por que no un js conf (ya hablaba con paulo sobre esto).
Creo que deberiamos de tomar como ejemplo otras comunidades como Guatemala, El Salvador o Colombia que en ves de tener comunidades puntuales, optan por algo generico para optimizar recursos y esfuerzos. Pero bueno esto es solo una pequeña sugerencia.
No digo que nodenica muera, pero si tener una comunidad que englobe las demás, hasta el momento solo somos nosotros ¿no?, no veo por algún lado Angular, Ember, React, entre otras.
exports.passwordHash = function( password ){
var passwordHash = crypto.createHash('md5').update( password + '_' + config.salt ).digest('hex');
return passwordHash;}
Estan usando una mala implementacion de salt, ya que se esta ejecuntando el mismo salt para multiples hash. Por ejemplo si se usa la mismas salt sobre cada hash y dos usuarios poseen las mismas passwords entonces ellos tienen las mismas hash, tomando esto en cuenta un ataque de diccionario sobre las hash sera fácil de romper y obtener
siguiendo el principio de Kerckhoffs's un atacante no atacara a la hash pero si usualmente tiene acceso al código fuente, entonces puede obtener el password-hash y no seria difícil aplicar algo de ingeniería inversa a el algoritmo
la forma correcta de como hacer la hash es que cada password sea generada mediante CSPRNG ( Cryptographically Secure Pseudo-Random Number Generator ) básicamente el salt debería ser UNICO para password de usuario, cada ves que un usuario cambie la contraseña deberá de ser hashed usando una función random.
NUNCA PERO NUNCA REHÚSES UNA SALT
Creo que para poder lanzar NodeNica 2.0 seria bueno crear una lista de cosas por hacer con sus respectivas issues, asi se hace mas facil el trabajo de la comunidad y no todo recae en una sola persona 😄
Quizás la lista negra no sea la mejor opción pero por ahora esto solucionaría el bug de gente que desee meter spam.
Esto se podría solucionar mas fácilmente en la rama develop del api, pero creo que seria bueno un commit para mientras sale esa versión a producción.
Revisando el sitio hacia tiempo me he encontrado con una dirección rota
http://www.nodenica.com/user/your_user_name/settings
Entrando a este enlace esperaba alguna configuración (valga la redundancia) donde pudiera cambiar mi usrname, mi password, mi mail, etc. Si bien no es la gran cosa esta direccion, es de vital importancia que si estas secciones no estan por el momento desarrolladas o disponibles para los usuarios comunes lo mejor es que esten desabilitadas o redireccionen a otro punto del sitio para asi evitar los errores y darle una mejor presentacion al sitio 😄 por que si no ¿que sentido tiene que esten ahi si no las voy a ocupar?
El dyno actual se está deteniendo con frecuencia, supongo que es un dyno viejo en heroku.
TypeError: Cannot read property 'password' of null
at Promise. (/app/models/users.js:91:21)
at Promise. (/app/node_modules/mongoose/node_modules/mpromise/lib/promise.js:171:8)
at emitOne (events.js:77:13)
at Promise.emit (events.js:169:7)
at Promise.emit (/app/node_modules/mongoose/node_modules/mpromise/lib/promise.js:88:38)
at Promise.fulfill (/app/node_modules/mongoose/node_modules/mpromise/lib/promise.js:101:20)
at Immediate.cb (/app/node_modules/mongoose/lib/query.js:1138:30)
at Immediate._onImmediate (/app/node_modules/mongoose/node_modules/mquery/lib/utils.js:126:16)
at processImmediate as _immediateCallback
Chicos, actualmente nodenica correo en una base de datos sandbox de https://www.compose.com/mongodb.
Me enviaron correo que pronto se las vuelan, así que tocara empezar a pagar.
#fyi
Saludos
Agregar id's a los títulos y subtítulos en los artículos para poder enlazar directamente a partes específicas al estilo http://www.nodenica.com/training/bla-bla#ejemplos
Mayor información en: https://devcenter.heroku.com/articles/cedar-14-migration
No he podido arrancar exitosamente la aplicación. Luego de clonarla, he definido las variables que creo son necesarias. Hice:
# Definir las variables de entorno utilizadas por nodenica
export MONGODB_HOST="172.17.0.1"
export MONGODB_DATABASE="nodenica"
export SECRET="FSSSvgdgdfg"
export KEY="FSSfsfsdfS"
export SALT="FSSfsfsdfS"
# ejecutar nodenica
nodejs web.js
Me ejecuta la aplicación dándome algunas advertencias que creo podría hacer caso amiso:
{ [Error: Cannot find module '../build/Release/bson'] code: 'MODULE_NOT_FOUND' }
js-bson: Failed to load c++ bson extension, using pure JS version
info - socket.io started
express-session deprecated undefined resave option; provide resave option web.js:56:9
express-session deprecated undefined saveUninitialized option; provide saveUninitialized option web.js:56:
Luego, cuando intento navegar a localhost:5000
el explorador se queda colgado esperando por una respuesta de la aplicación. Quisiera que me dieran una guía de cómo qué debo hacer para ejecutar esta aplicación.
Saludos chicos!
La propuesta es publicar automáticamente en redes sociales cuando se publique un articulo en blogs y en entrenamientos.
Mínimo:
Es requerido obtener un accessToken para cada red social.
@neydroid quizas podes crear las apps en ambas redes sociales para obtener un accessToken de aplicación y no tener que estar solicitando un accessToken como usuario que usa la app si no como owner.
El enlace http://www.nodenica.com/user/neydroid no carga lo mismo que http://www.nodenica.com/user/neyDroid.
Chicos les propongo que usemos algún medio de comunicación para cuestiones instantáneas.
No me hace click slack, al ser un repo y no un team laboral creo que gitter nos puede servir, igual hablemoslo por aca para llegar a una conclusión.
Poder eliminar de forma fácil a usuarios, comentarios y post de spam.
Permitir que el usuario cree una cuenta luego de una hora basado en el IP de creación.
Esto seria el segundo paso luego de este issue.
A. Aca estamos usando el correo y la información que hay en el config.
B. Aca usamos lo que se guardó en la base de datos cuando se instala el NC (node-community).
Lo importante de esto es decidir cuál de las dos maneras vamos a usar para otros tipos de información, A,B o un híbrido C.
Si decidimos usar el correo que se guarda en MongoDB, entonces por qué no dejar en MongoDB también otras cosas que estan en config como el lang o los api keys.
Yo prefiero que todo venga del config. Y si realmente queremos que algo venda de la base de datos, podemos crear el objeto en el cofig para que no cambie el código en otros lugares, al estilo:
models.settings.findOne({key: 'site' }, 'value', function(err, obj){
email:{
alert: {
sender: obj.value.title + ' <info@' + obj.value.domain + '>'
}
}
});
Como nota final, algunos detalles pequeños van a cambiar para usar el API de Mandrill en vez de Mailgun.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.