Meteor Mentoring Group aka Meteor University

We had our first meeting and it was great! Thanks all :smile:

Works very well we are a small group 5 to 1 Mentor. I think thats a perfect size for a class what you think?
But 6-7 are also ok I think :smile:

Maybe we can find another Mentor for another Group of 5 ? I feel there is a need for that!

3 Likes

This has been a thrill! I really enjoyed it and also had an opportunity check out and learn something new for myself as well. Iā€™m looking forward to our next session and hope devs of all skill and experience levels can form their own ā€œstudy goupsā€. It is so refreshing!

3 Likes

lets try to connect people and share our environment for other groups and help them to start in the future :smile:

1 Like

Darn, itā€™s too bad I didnā€™t see this sooner. I think this idea is great, would love to join in if there is room or other study groups form.

@kaashin @henryc now that the number is growing, perhaps @dinos or @faceyspacey would like to start a new group?

@faceyspacey I am up for this. I can create the slack group already :sweat_smile:

1 Like

I was looking to help someone with meteor, because I am planning to make a web tutorial on YouTube and would like some feedback on teaching, actually. Also, I speak German (poorly)

I work professionally in developing with meteor

1 Like

Why canā€™t the group chats/material be out in the open for the whole community to benefit from instead of just a few, if the classes must be closed to participation (if being closed helps the class somehow)?

Iā€™ve been working with Meteor for a little over a year now, but by no means even close to an expert in any area. I would gain insights and knowledge just by viewing the class materials (without participation), if I for some reason the class is full or restricted to some arbitrary size.

@serkandurusoy @faceyspacey are you guys getting quid pro quo from @christbkk and the like for your time or is this pro bono?

just a idea:
If itā€™s pro bono, why canā€™t we place some structure around this, maybe you and others could get compensated somehow for your time, classes could be scheduled and expanded, a curriculum maybe?

chathuraa, how does one join? I would love to join. Not a total noob, but looking to improve my skills.

@aadams it is strictly pro bono and actually is out in the open. We had a glitch today where we were not able to record our video session but it was mostly introduction and getting a few burning questions out of the way. But we are going to make sure it wonā€™t happen again. (Skip ahead for a summary of what youā€™ve missed)

The idea is:

  • hold the meetings on hangouts on air. try to limit the interaction within the class group itself but allow for everyone else to watch the recording
  • try to get our chat logs public on slack
  • work on a real life project - coding a platform to manage such open classes :smile:
  • revolve the whole project around multiple aspects of the meteor learning/development experience out in the open on github
  • hope to inspire more people to get together in classes
  • hope to get the ā€œgraduatesā€ mentor their own classes

Since we are all new at this, we are experimenting and improvising along the way. If this can actually gain traction and become a thing, it would be great.

Quick summary of todays session; after introductions, we lightly touched these topics

  • How do we manage uploads
  • Watch the eventedmind.com video on uploads for a barebones solution
  • Use slingshot if S3 is fine
  • Use collectionfs as a powerful solution that supports filesystem, s3 and gridfs
  • use the vsivsi solution for a simpler gridfs solution that can scale horizontally, which cfs has problems with
  • How to create a chat application
  • Chat is different in the sense that persisting messages on the db and using collections to get the messages across can be intensive on the server
  • use the streams approach thatā€™s discussed by arunoda and implemented by rocket chat
  • How to start a new meteor app, what to use?
  • Donā€™t get caught up in the distractions, there will be a tech of the day every coming year
  • Follow the official meteor guide, the topics and patterns are relevant to all those stacks
  • Choose the right tools for the right job. Atmosphere has great forms and tables packages, so a line of business app can benefit from blaze more than it can benefit from react where a game-like interface packed full of ā€œcomponentsā€ may do better off with react
  • mongodb is not a bad database. database programming existed 50 years ago where there was no such thing as acid and developers had to implement those paradigms within the app itself, use those ideas on top of mongodb
  • What are transactions and how to manage them
  • Transactions are not always needed, remember, right tools for the right job
  • A transaction is basically a series of database operations that need to happen all together or not at all
  • The problem is, if the server crashes in the middle, we need to ā€œroll backā€
  • Mongodb has a fairly sufficient ā€œtwo phase commitā€ tutorial on its docs. It can be implemented as a strategy
  • A not-so-strictly-transactional approach where opt in rollbacks can be achieved would be to use the babrahams:transactions package
  • Yes, transactions are somewhat similar to how redux operates
  • How to manage mobile connections where an app consists of a backend and a mobile ui, how to ddp.connect?
  • Meteor docs is your friend, read the raw docs
  • Packages that wrap ddp for better mobile experiences are good but you should first understand how the raw api works and then opt in to use a package when you do actually know what problem it solves and that it is relevant in your use case
  • Meteor 1.3 is on its way packed full of new mobile features like the new wkwebview and better hot code push
  • ddp is not only choice, you can rely on mongodb to communicate over from your backend to your mobile ui
  • Use packages and the upcoming imports to structure out common pieces like database access and server side methods so that you can use them in separate apps
  • ddp is not only relevant to mobile, think about microservices
  • You can always separate out aand independently scale parts of your app depending on their specific resource requirements
  • How to structure and query data that involves embedded array of objects
  • Avoid if you can
  • Read the mongodb official docs, it has great examples
  • Read through the array and positional operators
  • Updating a nested object in an array by its index may unfortunately require reading the whole object and replacing the whole array
  • How to scale and automate (digital ocean) deployments, autoscale jenkins deployments with mup? Is it possible? What are alternatives?
  • Galaxy is by far the best alternative, it not only autoscales, but makes sure it rolls over connections when instances get killed
  • phusion passenger is a strong contender
  • mupx and cluster can be used, but thereā€™s not much literature around for ā€œautoscalingā€, perhaps the digital ocean api can be used to help
  • What about scaling to 50 million users
  • That means your business has picked up and you have a lot of money and dedicated devops engineers as well as a vast array of tech stacks at your disposal
  • What to do if we have a static landing page and we get exposure on hn? Every hit on that landing page means an open websockets connection, what to do? Kill the connection manually?
  • It is not a good idea to do such hacks since the user will require that connection to proceed anyway
  • Use a static web server to serve that landing page, place the app on a sub directory and configure url rewriting on the web server. It may look daunting, but it is the right way

And then we moved on to start a discussion thatā€™s going to last during this next week until our next session. Before our 2nd session commences, weā€™ll try to decide (generally) on

  • How to proceed
  • What to work on (an open classroom/mentoring management app)
  • More q/a and specific coding questions if anyone wants to share
  • We make sure we record the videos @chathuraa @sakulstra
  • And edit them for best viewing experience @kaiyes - btw this guy is an actual rocket scientist, a rocket scientist working on meteor, how about that LOL :smile:
  • We write a blog post after each session about the highlights @christbkk
  • We get the word out and ecourage others to start their own ā€œstudy groupsā€ like ours
  • The mentors donā€™t have to be gurus, it is a group event and a holistic learning experience so hopefully everyone will soon find themselves their own groups to mentor
12 Likes

@juliakoe read through the other posts on this thread, there are other people looking to form a group, perhaps you can ping them?

WoW! Ok I will try to make me that notes for next session to write it hereā€¦ that summary is just awesome.

Thanks @serkandurusoy. Is the size of 5 or so arbitrary? What is the criteria for joining a class? What youā€™re doing is worth a lot to some.

Would you hold another class (since this class seems to be full for some reason)? Iā€™d gladly pay for a class covering the topics you listed above.

If youā€™re not interested in some amount, how else could one join some class with you as the instructor?

Sounds like an amazing amount of ground you covered in one class @serkandurusoy and what a great write-up. Congrats on getting this initiative started in such fine style!

1 Like

you can join the https://meteor-mentor.slack.com slack team

Hey everyone, so Iā€™ve been thinking about this. And hereā€™s what I got:

  • a project on github where everyone contributes to it (me, but not limited to me, playing the role of product manager + code reviewer)
  • but first: we need a collaborative live coding environment

Now, hereā€™s the one thing I havenā€™t shared: for some time Iā€™ve been thinking about solving the problem of the latter, i.e. a true collaborative live coding environment. Iā€™m about to undertake a new take on it: React + Redux-powered live coding. The thing about live coding thatā€™s always been missing is that both developers have different application state, despite having the same editor state. But with Redux, and the Time Travelable log of actions, we can easily replicate the entire application state between all connected clientsā€“just by making sure actions are propagated to all clients. I think this would be big for the collaborative coding movement which never really took off, which may be even bigger for the remote learning/teaching of programming. So my plan is to sync app state between all connected users, and of course provide a collaborative character by character editor + file browser. Thatā€™s the core. WebRTC for video can easily be added after, as well as a lot of other stuff ;). I think having this would make for a learning experience several orders of magnitude better, which is why Iā€™m going to focus on this first.

Itā€™s gonna take 2-4 weeks to get this done. The work will be open source, so we can create some sort of lessons out of that if anyone would like that. I personally love thinking about coding, talking about coding, especially stuff regarding pushing our productivity forward. If you canā€™t wait, I suggest you email me. The slack class or whatever isnā€™t really the take iā€™m interested in, not when the tools I just described are just within reach. Initially I was more interested in a traditional ninja+master approach. There is still something to more private one on one experiences. Specifically what it is is a sense of trust. A bond emerges, which leads to succinct communication void of endless prefacing that larger audience classrooms require. I find that fun with highly motivated students. My email address is above. Ball is in your court. I can answer any questions you have and can become as motivated to expedite your growth as you can. I can get you up and running building real things so quickly it will likely blow your mind. As I said initially, Iā€™ve done it before. Iā€™ve been the mentor of exactly 3 developers in the past, and took them from near zero skills to building full applications. Itā€™s a long time ago at this point, but in 2010 I wrote a book on how to become a programmer:

http://www.faceyspacey.com/resources?section=book

I basically delineate the path I took as a non-technical product/project manager who was constantly frustrated with developers I hired to a lone do-it-yourself programmer. The book is outdated now (based on a PHP stack, culminating in the Yii MVC framework), but letā€™s just put it this way: Iā€™ve put a lot of time and energy in thinking about not just programming, but how to learn programming and even more generally, how to learn. I come with a deep understanding of the mental roadblocks you are likely to have, questions you likely will have about Meteor idiosyncrasies, and can easily steer you toward common sense solutions for seemingly very technical problems. I view the world as if Iā€™m a digital construction worker, not as a pretentious computer scientistā€“everything you wanna do is easily within reach.

Ideal developers will wanna continue on building open source things with me. Iā€™ve been an application developer for most of my career (building client projects and my own startups). A year ago, however, I shifted my interests completely into building open source developer tools. Rather than me teach you, letā€™s discover this together, and along the way share whatever it is we excel in or have to offer. At this very moment am going through a learning phase myself just like you. Iā€™m learning Haskell, which I chose to learn to make sure I had a firm grasp of the important aspects of functional programming coming into the Javascript world. I should be finished next week and will start the above aforementioned project. If you can code some basic React stuff, youā€™ll have the skills to contribute, while of course getting better rapidly.

3 Likes

To start using Slack, youā€™ll need to be invited by your team administrator. :frowning:

okay, can you send me your email. iā€™ll send the invite

@chathuraa, you giving out invites?

Yeah, any one who wants to join, pm the emails.