Blogs
|
When we upgraded from ember v1.7.0 to v1.8.1 and from ember-data v1.0.0-beta.9 to v1.0.0-beta.12 we noticed that ember became very strict in the expected json. That's why not only we had to update the sideloading in our api, but also we had to adjust our test fixtures.
This became a problem since we had very long fixtures and it became hard to control the data. That's why we switch to FactoryGuy.
In our old situation the fixtures were used like this:
Here on the left side you see an example of the fixtures we use. The right side shows how we use Pretender to mock CRUD requests with these fixtures.
With FactoryGuy we only have to define the models that we use in the appliction as factories. Factory guy let us mock the store and gives functions to make objects from the defined factories and put them in the store.
On the left side you see the factory that corresponds with the fixture showed above, and on the right side is the implementation of the factory in the application.
For the create, update and delete requests made in the application, we also stop using our fixtures and MockResponses. FactoryGuy uses jquery-mockjax for this and implemented it in it's library. With this we can now do:
test('save chapter without confirm', function () {
expect(1);
var newName = 'a new name'
var learningSpace = make('learningSpace')
visit('/spaces/' + learningSpace.id + '/chapters/new');
fillIn('#entry-title input', newName);
fillIn('.editor-markdown .ember-text-area', 'markdown text');
testHelper.handleCreate('chapter', { name: newName });
click('#entry-options .button-save');
andThen(function () {
var actual = currentRouteName();
var expected = 'chapter.index';
equal(actual, expected, 'expected ' + expected + ' but got ' + actual);
});
});
Notice testHelper.handleCreate('chapter', { name: newName }); which mocks the create request for a chapter.
If you have any questions ask us on Twitter
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:07am</span>
|
|
Lost:
We can say whatever we want about the importance of being unique, but let’s admit it is always nice to belong. Belonging to some type of people allows us to reflect on ourselves and enables our development. One morning I’ve read an article about Generation Z (Gen Z), apparently I might be a part of it (mid 90's kid). After all of this time of thinking that I am a millennial, I got lost. So who are the kids of Gen Z, how do they learn and what is so different about them?
iGeneration:
Some call this generation "screen addicts". Others state that these kids have an attention span of a golden fish. But I would call us an online generation with limitless options and very limited time.
We are not screen addicts, we just feel the urge to sort and access enormous amounts of different information. E.g. I am not only working with LearningSpaces marketing, I am also striving to finish my International Relations bachelor. Believe me, staying on top of the game is difficult: you need to read, talk and listen about various topics constantly. Multitasking is the key!
Juggling:
Gen Z doesn’t have an attention span of a fish, we have a so called 8 second filter. Using tools and apps to filter trending content reduces the amount of information we need to access. It becomes easier to concentrate, stay committed and focused. Even if iGeneration seems a bit unbalanced, broad interests allows us to recharge and reposition, in this way inspiring see same things from the different perspective.
Enlightenment:
In order to provide iGeneration with the best learning experiences there is a need to implement filtering everywhere. An option to combine and mix different topics, and create learning paths would produce the best results.
Variety is Gen Z’s friend!
Found:
Mass production of information is exhausting but exciting at the same time. Surfing the web is not a hobby anymore, it’s a life style. Even though Gen Z is not the first one to enter the virtual reality, we are the first ones to exploit it to the fullest.
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:07am</span>
|
|
A bunch of likeminded people are uniting during The Uprise Festival. And guess what, our LearningSpaces team will be there!
We can’t wait to meet some great start-ups like:
WebinarGeek: Love webinars? Well this is a tool is for you! Created by a bunch of webinar enthusiasts, which means you will have a great experience while learning with them.
Learning Stone: If you are a trainer or a coach this is a must to check out! Learning Stone supports organisations in their blended training and coaching efforts.
Springest: This platform will help you to filter and compare training programmes and courses across suppliers. It also provides some articles and tests about training, career and personal development.
For all of the development and learning junkies these start-ups are a must visit.
LearningSpaces at the Uprise Festival:
We will be showing how easy it can be to share knowledge and learn from your peers. Stop by and have a chat with us about integration of blended learning in your working environment.
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:07am</span>
|
|
We recently changed the way header images are displayed in LearningSpaces. They used to be fixed height and were clipped at the sides depending on the screen resolution (a bit like the header of this blog). This would hide parts of the image which got really annoying, especially when using text in the image that is being clipped. So what we needed was a way for the images to maintain their aspect ratio.
The solution to our problem was intrinsic ratio, which is often used for creating responsive videos. This technique makes use of the unique way padding-top and padding-bottom deal with percentage values, which will be interpreted as a percentage of the width of the containing element.
Aspect Ratio
The recommended dimensions for header images in LearningSpaces are 1280 by 720 pixels. The aspect ratio for these dimensions is 16:9 (= 1280:720). To get the needed percentage we divide 9 by 16, which gives us 0.5625 or 56.25%.
Now we can apply the Intrinsic Ratio trick:
<div class="header-image">
<div class="ratio"></div>
</div>
.header-image {
width: 100%;
&.ratio {
padding-bottom: 56.25%;
}
}
demo
The problem with using this aspect ratio trick is that if the element has a max-height declared, it will not be respected. To get around this, we applied this hack to a pseudo-element instead:
<div class="header-image"></div>
.header-image {
min-height: 300px;
max-height: 500px;
&::before {
content: '';
display: block;
padding-bottom: 56.25%;
}
}
demo
Adding the image
This aspect ratio hack goes really well together with background images, especially in conjunction with background-size: cover;.
Scales the image as large as possible and maintains image aspect ratio (image doesn't get squished). The image "covers" the entire width or height of the container. When the image and container have different dimensions, the image is clipped either left/right or top/bottom.
source
So if we use a 1280x720px background image it will cover the whole available area without being clipped. This is because padding-bottom: 56.25%; makes sure it will maintain the correct aspect ratio (16:9).
.header-image {
background: url(header-image.png) center;
background-size: cover;
&::before {
content: '';
display: block;
padding-bottom: 56.25%;
}
}
In the demo below I've added a CSS animation to demonstrate the effect of intrinsic ratio while resizing.
See the Pen Responsive intrinsic ratio w/ background image by Matthijs Kuiper (@snap) on CodePen.
That's all there is to it. With just a little CSS you can scale elements on the fly while maintaining their aspect ratio. If you have questions or cool ideas on intrinsic ratio, please let us know on twitter!
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:06am</span>
|
|
Lost:
We can say whatever we want about the importance of being unique, but let’s admit it is always nice to belong. Belonging to some type of people allows us to reflect on ourselves and enables our development. One morning I’ve read an article about Generation Z (Gen Z), apparently I might be a part of it (mid 90's kid). After all of this time of thinking that I am a millennial, I got lost. So who are the kids of Gen Z, how do they learn and what is so different about them?
iGeneration:
Some call this generation "screen addicts". Others state that these kids have an attention span of a golden fish. But I would call us an online generation with limitless options and very limited time. We are not screen addicts, we just feel the urge to sort and access enormous amounts of different information. E.g. I am not only working with LearningSpaces marketing, I am also striving to finish my International Relations bachelor. Believe me, staying on top of the game is difficult: you need to read, talk and listen about various topics constantly. Multitasking is the key!
Juggling:
Gen Z doesn’t have an attention span of a fish, we have a so called 8 second filter. Using tools and apps to filter trending content reduces the amount of information we need to access. It becomes easier to concentrate, stay committed and focused. Even if iGeneration seems a bit unbalanced, broad interests allows us to recharge and reposition, in this way inspiring see same things from the different perspective.
Enlightenment:
In order to provide iGeneration with the best learning experiences there is a need to implement filtering everywhere. An option to combine and mix different topics, and create learning paths would produce the best results.
Variety is Gen Z’s friend!
Found:
Mass production of information is exhausting but exciting at the same time. Surfing the web is not a hobby anymore, it’s a life style. Even though Gen Z is not the first one to enter the virtual reality, we are the first ones to exploit it to the fullest.
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:06am</span>
|
|
I’m a working mom with a high energy toddler, a needy cat and a busy partner. Balancing your life as a business woman, a loving mom and partner while maintaining an active social life can be pretty difficult. Sometimes it might feel like everybody is pulling you in a different direction, while you are trying to keep calm and focus. On other days you find yourself having too much time and not knowing what to do. Just joking. That never happens.
But here are some tricks and apps that help me deal:
Work hard play hard
I never said it gonna be easy, but if you want to be a power mom/ worker/ human being, you need indeed energy and lots of it. So don’t give in to tiredness and laziness. Your little one is in bed and your partner doesn’t mind to stay at home, go for it. You can get a babysitter, go for it. You have awesome parents/parents-in-law, go for it. An hour of free time a day keeps insanity away! Its for the greater good of everybody around you ;)
But of course all of this means great organizational skills. Knowing what needs to be done and when. To organize my different lives I like to use Trello. The cool thing is its super easy to use and you can have different projects with a bunch of boards to get a perfect overview of your busy life (well sort of… haha). I have a project for each aspect of my life (whether its business, social or home stuff). So one project is e.g. LearningSpaces with a bunch of boards on e.g. development, sales and marketing. Each board has cards with a bunch of ToDos or stuff you are busy with (or whatever you want to organize). So you can keep everything perfectly organized in one place!
Just do it
Everybody always talks about planning and making time. I say ‘just do it’. Organize your To Dos, make a list (if you don’t already have one), and then DO them. Don’t think ‘I’ll finish that tomorrow’. Finish it today. Don’t set certain things aside. DO them now. Be your own drill master. And at the end of the day you can look at your list and think ‘Yes! I did it’ (even if it was just one thing).
For a quick and simple ToDo list, I recommend Wunderlist. Just write down what you have to do for the day or the week, set a deadline, and DO it. And in the end when you tick it off the ever so rewarding ‘ping’ is already enough for a good start in the evening. Done for the day ‘ping’ ‘Ping’ ‘PING’!!
Don’t worry be happy
Of course we all want to be perfect… It stinks if something goes wrong, but sometimes you just have to let go. The more you stress about things, the harder it gets to shut off and be in the moment you are suppose to be in. You didn’t finish writing a proposition at work, your little one was sick, your cat is not potty trained yet? There is nothing you can do about it with pure willpower. Try to leave work at work and personal stuff at home (not including chitchat with co-workers about how great your kid is doing and that she must be a genius ;)
My app recommendation: don’t use them. Don’t check your social apps at work and especially don’t use your work apps at home, including your work email! And yes, that is a hard one and I’m not particularly good at it myself, but at least try to reduce it to a bare minimum and be in the moment!
Location location location
This one is for all the dreamers among us. If you work in a sunny country at the beach while sipping gin tonics, great, but for those of us that work at an office day in day out staring at the rain outside: Break monotony! Take the bike to work, work standing up, take a walk during lunch, change office… anything to switch it up! Ideally you have an employer that encourages that with flexible work time or special lunches.
If everything else fails, at least get a new beautiful desktop wallpaper every day with Kuvva. Specially curated from some of the world’s leading photographers, designers & illustrators.
If you need any help with balancing the way you learn, don’t hesitate to contact us on Twitter or just head to LearningSpaces and get a free trial!
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:06am</span>
|
|
Lately I have been thinking a lot about learning in the age of the tutorial and how it compares to actually learning a craft.
When I look around me, it seems like most digital natives excel at the former and have at least some trouble with the latter.
I know I do.
Two years ago I found myself in a position where a profound technical understanding of modern web development was greatly beneficial, if not necessary.
My knowledge was extremely outdated.
So in a about half a year I learned to use CSS3 and HTML5, SCSS, Media Queries and designing for mobile, how to quickly create wireframes for prototyping, the power of Git and the command line, etc. Even some basic Ruby on Rails stuff.
In the year that followed, however, I hardly expanded on my new-found knowledge and skills. If anything, I lost my chops.
So how was I able to acquire these skills in a short time? And why did I have so much trouble pushing the envelope after that?
I think it's because we are becoming problem-driven learners.
It may have something to do with the fact that we have become so much better at asking the right questions to solve our problems. A trained human + google equals an extremely efficient problem solving machine. Sometimes it seems like for every little problem, there is an amazing free tutorial out there.
This is great - following a tutorial is an awesome way of learning something. For me personally, the fact that I can immediately apply what I learned speeds up the learning process and benefits retention.
The downside is - at least for me, that knowledge in the age of the tutorial is not even domain specific. It's problem specific.
I've regularly surprised colleagues with half-guessed solutions for complicated software issues that reveal both a general cluelessness about computer science and some weirdly specific knowledge on a fringe subject.
But what if you actually want to learn a craft?
What if I do want to learn about computer science? Or become an actual cook, instead of emulating Jaimie Oliver one recipe at a time?
Of course you could try to discipline yourself into learning a craft. Follow some courses online, sign up for late night classes...
Or you can just do what I did: Make it your problem.
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:05am</span>
|
|
Within LearningSpaces we think it’s really important for people to contact us. For a long time we’ve only used Helpful for this and we gave it a good place in our UI. Since we’ve released Helpful in our app there were a lot of messages from our customers with feature request, questions on how to use the product, and bug reports. It helped us to understand what issues were helpful for our audience and what not.
After that we continued to look at how we can improve our customer support and we found Intercom. Intercom offers to help with observing costumers, acquiring, engaging, learning, and with support. Of this list we use engaging with the basic plan, support with the pro plan and observe which is still free because it arrived in beta. We only let the admins and team owners in Intercom because of the pricing (for the support with the pro plan) all other users are still served by Helpful.
Why intercom next to helpful? We already had a product that helped us supporting customers, why a new one that costs money?
Helpful works mostly email based, customers send us a message through the app and we respond by email. With Intercom a user sends us a message and we reply in chat with that customer, this helps to respond faster, even with just a hello and the customer knows that we are on our way to help them. Our median response time is below 4 minutes and our customers praise us for that.
Intercom gives us the possibility to make announcements about what we think is important or good to know in our app. It doesn’t have to be all over the screen but there will be a little notification with our message to which the customer can respond directly.
There are stats in the Intercom app that gives us a good idea of how active the customers are. Based on these stats we send mails to them for coming back to the app, to add more spaces, chapters or paths. We use it also to send mails to notify users how far they are in there trial.
Auto in app messages and mails
We’re really happy with Intercom but when we started we had a hard time to get going. For us the interface of the app was hard to understand in the beginning. We didn’t know how to get to our settings or to the documentation we read minutes ago. The other thing we’re not really happy about is that not all of our users are in the app because of the extra costs, and thats left for consideration for now.
All in all we’re really happy with it and feel that we should have implemented it a lot sooner. It was always in the backlog to do it sometime in the future, but using it made us understand that we couldn’t have begon too early with it.
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:05am</span>
|
|
Finally, a bunch of likeminded people are uniting during The Uprise Festival. And guess what, LearningSpaces are joining!
We can’t wait to meet some great start-ups like:
WebinarGeek: love webinars? Well this is a tool is for you! Created by a bunch of webinar enthusiast, what means that you will have only the best experience while learning with them.
Learning Stone: if you are a trainer or a coach it is a must to check it out! Learning Stone is used in agencies, companies, and institutions by training or coaching professionals who need to support blended training or coaching.
Springest: the platform will help you to filter and compare training programmes and courses. But wait, it provides some articles and tests about training, career and personal development as well!
For all of the development and learning junkies these start-ups are a must visit!
LearningSpaces at the Uprise:
We will be showing how to have fun while learning and sharing knowledge between peers! Stop by and have a chat with us about integration of blended learning in your working environment
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:05am</span>
|
|
We had to wake up super early, but it was worth it. Our team wants to compliment everyone for their enthusiasm and support! After all, we were looking for some enthusiastic people who would like to start their learning community on LearningSpaces.
Thank you Team Uprise for a great and colourful stand and friendly neighbours.
Thanks to every one who came to have a chat with us. We got some great feedback and awesome discussions about learning for teams. Our favourite one: Does LearningSpaces work in China?
To sum up today:
Ripped trousers during pingpong matches: 1
Startups met: 50+
Compliments about our app's design and simplicity: more than enough to keep our design team happy
New learning communities created: (a lot)
# of LearningSpaces mints - too many
So stop by tomorrow at our stand (we're at D9), share your ideas and thoughts on startup or corporate life. Let's make an online world better place to learn!
More pictures from the Uprise:
Hugo's trousers after an intense pingpong match
Guys from the 5milesHQ
Fun talks with German startup Incubators
Learning Spaces Blog
.
Blog
.
<span class='date ' tip=''><i class='icon-time'></i> Dec 05, 2015 03:04am</span>
|



