How to write modular Ember.js apps - ember.js

Is there any guidance on how to write modular Ember.js apps? I have seen Tom Dale's position on AMD here so I am not going to force fit AMD on to the framework (as some have attempted here). It appears that Ember internally uses bpm/spade. Is that a reasonable approach to modularize Ember apps too? Any samples using this approach?
P.S. The getbpm.org site seems to be down which makes it difficult to learn about it. There is a github page but it refers to the site for install instructions.

BPM in it's current form is no longer supported by the core team, but is community supported. The only build tools they are officially providing support for is rake-pipeline. However, BPM does still work and it works well (I still use it with my projects). For info on how to use it see this: https://github.com/ud3323/bpm/wiki/Using-BPM-with-Ember. You may want to use my fork of bpm too. I've merged in Joe West's support for a proxy middleware.
There is also community build tools for node.js called ember-runner which looks promising as well.
As for using rake-pipeline. Look at the AssetFile on the emberjs projects to see how must be configured using rake-pipeline and rake-pipeline-web-filters. Also, take a look at the answers to this question on StackOverflow (especially Yehuda's). You may also find this gist helpful as well.

Try Ember App Kit - maybe it would help you.

I have played a bit with Rails, so for me, creating a rails 3.2 app was the easiest way to achieve this. So if you don't mind using rails as a back-end, I this might suit you.

Perhaps ember-tools could help:
https://github.com/rpflorence/ember-tools

I am novice still I found yeoman and ember-generator useful. In future you might need to add tests , mock rest calls you can easily npm install sinonjs and npm install ic-ajax

Related

Intellisense for Ember injected services

I am a bit frustrated that there doesn't seem any decent "Ember intellisense" available in any common IDE (like VS Code, Webstorm, Atom). By "intellisense" I mean that, as long as my Ember project is a standard Ember CLI project with all the common Service, Helper folders etc., and I inject e.g. a service using myService: service(), this would be recognized by Intellisense and, after typing this.myService, I would see all functions in the service. Also, if I Ctrl+Click on the function in this.myService.myFunction(), I would expect to navigate to the definition of myFunction.
For other frameworks, such as Angular, there are plugins which support all this.
Is it really the case that I have to use "Find in Files" to find the definition of a service function?
Does anyone know of a way or tool which I might have missed, and which would support this scenario? Note that I don't speak of bare-bones features such as switching between router/controller/template, but of real intellisense for custom objects.
The situation is indeed not yet great. There are a couple things that do help quite a bit:
Using TypeScript via the ember-cli-typescript project will unlock a lot of these benefits for you. (Full disclosure: I'm a maintainer.)
There's a community-driven IntelliJ plugin which is pretty good, intellij-emberj; it has a fair number of those features and it's kept up to date by a member of the Ember CLI team.
There's a suite of VS Code plugins, including a language server, which gives a fair bit of it.
(There's certainly a lot more to be done here, and unfortunately none of the IDE developers seem interested in providing native support themselves, so it has fallen to the community to build it all.)
You can have a look at various code editors and plugins that ember community suggests,
dev tools
I wonder the same way as you, realising that there is no IDE have particularly good support for Ember.
I'm using Webstorm community version for the past 6 months, but I don’t think it’s the ideal EmberJS IDE. I wonder if there is an IDE which provides some kind of intellisense/code completion/helper suggestions.
Ember has always seemed to be a very IDE-like framework, so it surprises me that no-one here (ember community, IDE developers) is building any clever plugins for IDEA or Atom or VS Code.
VS Code plugins:
emberjs.vscode-ember - Langserver for VSCode.
lifeart.vscode-ember-unstable - Unofficial Canary Version.

Django A/B Split Testing Packages (None I've found are well-documented and up-to-date.)

There are two main schools of thought for doing A/B (Split) Testing:
Javascript-based solutions such as Optimizely, Google Analytics Content Experiments.
Server-side solutions such as Django-AB, Splango, and django-lean. (Also, writing your own.)
My understanding is that Javascript-based solutions are spectacular for "which color button converts better," but not so great for switching out entire page layouts, and completely unworkable for trying out large functional changes such as the sequence of pages in a funnel.
That leads me towards a server-side solution. I'm not crazy about coding my own, and will do so only if there is no other option. I'm trying to add value by improving the core functionality of my site, not by creating a better split-testing framework.
The Django apps I've found for split testing are various mixtures of unmaintained, undocumented, documented incorrectly, and incompatible with Django 1.5. This surprises me, because the Django and Python communities seem to have a strong focus on good documentation. I'm also very surprised that none of the testing frameworks I've tried has been compatible with Django 1.5 -- is testing not as core a part of the philosophy in the Django/Python world as it is in Rails?
Here's what I've found:
Splango https://github.com/shimon/Splango -- Not compatible with Django 1.5 (although most compatibility bugs I found were trivial to fix). Largely un-touched since October 2010, except for a fix August 2012 which claims to make sure templates get included in the install. Since templates don't get included in the install when Splango is installed via PyPI, either the fix didn't work or didn't get submitted to PyPI. Documentation is largely accurate, but doesn't completely cover how to set up tests and get reports. It tells you how to configure the template to gather the data, but there appears to be additional steps required in the admin interface which are completely undocumented, and I'm not sure I've done them properly.
Django-lean. Original at https://bitbucket.org/akoha/django-lean has not been updated since July 2010. There is an apparently "blessed" fork at https://github.com/anandhenry2002/django-lean which has not been changed since May 2012, when it was copied over from the original. The original's documentation is incorrect in ways that make following the examples impossible. (Though you can probably muddle your way through, as I did.) The new version's documentation has formatting problems that make it difficult to read on github. (This appears to be because it's the unchanged documentation from the old project, and BitBucket syntax doesn't work on Github.) The django-lean Google Group has not had a message since July 2012.
django-mini-lean https://github.com/DanAncona/django-mini-lean -- Updated as recently as February 2013, but undocumented.
Leaner - https://bitbucket.org/brianjinwright/leaner -- Last updated July 2012, and no docs.
Django-AB -- Last updated May 2009. Is not a package, and can't be installed via PIP or PyPI. After placing the checkout in my django app folder (and renaming the folder to ab) and following the installation instructions, I get an error loading the template loader that I have not tracked down further.
So far Splango appears to be the winner, as I've actually been able to get it more-or-less working (by manually installing the templates, and then editing them to fix Django 1.5 incompatibilities).
Can anyone point me to anything I've missed?
You have missed this app : https://github.com/mixcloud/django-experiments + https://github.com/disqus/gargoyle/
And then there's waffle: http://waffle.readthedocs.org/
It's simple, updated, maintained, but not very feature rich, it doesn't have any analytics/reporting stuff integrated. But then again, google analytics or mixpanel type of service is better for this.
I first looked at Django-AB and that is almost what I wanted, but I couldn't get it to work either. After looking at django-experiments and deciding I didn't want to mess around with redis yet, I decided to roll my own. I've tried to package it up nicely and make it easy to use for the beginner. It's super basic.
https://github.com/crobertsbmw/RobertsAB
You can swap out entirely different page layouts with Google Analytics Experiments (their default experiment setup will redirect users to a different URL for each variation you have), although in general its much easier to interpret why something is more successful if you test smaller things against each other.
You are right that testing different funnels and user flows against each other using Google Analytics would require a lot of manual setup; although theoretically you could do it by swapping out different links and tracking your users with UTM campaigns.
For smaller A/B tests within the same page, I ended up using Google Analytics Experiments and writing a custom Django CMS plugin for adding a few variant options to a template, which queries the Google Analytics API and displays the correct variant using Javascript.

Could someone point me to an ember.js project that uses the latest routing system? Bonus points if it uses ember-data as well

I'm making my first project with ember.js, and so far haven't been able to find any example projects that use the new routing system. All the examples from the ember docs use the old routing.
Also, I'd love to see an example of a project that uses Ember Data if anyone knows of one.
Thanks!
You can find an example project using ember 1.0.0 pre.4 here:
https://github.com/trek/ember-todos-with-build-tools-tests-and-other-modern-conveniences
There are plans to provide an ember-data version as well. Check here for details:
https://github.com/trek/ember-todos-with-build-tools-tests-and-other-modern-conveniences/pull/9
Another great example can be found here:
https://github.com/dgeb/ember_data_example
Although not free Peepcode just released their "Fire Up Ember.js" which covers the most recent updates to Ember and is probably your best bet for a good introduction.
https://peepcode.com/products/emberjs
I have an ember, ember-data with a rails backend app that I have been working on https://github.com/kiwiupover/cookier updated to use ember 1.0.0 pre.4.
Have a look and let me know what you think.
Cheers
Also, you can check this series of tutorials: http://reefpoints.dockyard.com/ember/2013/01/07/building-an-ember-app-with-rails-api-part-1.html. Among other things, it covers new routing system and basics of ember-data.
Additionally, you can take a look at this video introduction to new router from Yehuda Katz: https://www.youtube.com/watch?v=4Ed_o3_59ME

Which UI toolkit are you using with your Ember.js apps?

I just started using Ember.js recently and I love the functionality. I'm wondering which UI toolkit you might be using to tie into design side of your applications.
For Bootstrap integration with Ember, take a look at this project I started two days ago:
https://github.com/ember-addons/bootstrap-for-ember
It really fun and easy to use and lightly integrate bootstrap and ember components altogether.
Personaly, I am using Twitter's bootstrap library, which is quite low level, but pretty clean.
Twitter Bootstrap is my preffered choice when it comes to UI especially when prototyping something quickly, recently i have started to use EmberJS and have looked into this as well. So far i have found https://github.com/emberjs-addons/ember-bootstrap
I will update this as my search continues.
Hope this helps with your project!
Twitter bootstrap is a great UI frameworks no doubts but I feel it is too mainstream these days. Hence my personal preference is Metro UI CSS, it's sleek and great for developing mobile applications using HTML5
I am just starting with emberjs also. Actually I use JQMobile. But I have some issues with it. As I want have a Mobile look and feel, I will try more.
But even if have not use bootstrap with EmberJs I think it will be easier to use as it's only css.
With a UI toolkit that use JavaScript and is owns attributs(exemple : data-role="List"... with JQuery Mobile) you can have rendering issues. I think this is because that Metamorphose/Handlebars and JQuery Mobile both modify the DOM on the fly and it can be tricky to get all work right.
But I am not a EmberJs or JQ Mobile Guru :-)
Sorry for my english, it isn't my mother tongue.
Just one Question .. what is a OSS framework and do you have the links on GitUb
This maybe old but I've used this addon on over 5 projects so far with great success. The project is well maintained and flexible. The maintainer is active and takes pull requests efficiently.
http://kaliber5.github.io/ember-bootstrap/
Disclaimer: I am not officiated with this project beyond that of an end consumer.
You could have a look at Ember Paper if you like Google Material:
http://miguelcobain.github.io/ember-paper/

Has CodeIgniter 2.0 / PHPUnit happened yet?

So i've just had a pretty disappointing morning/weekend. It came in the form of setting up PHPUnit, Integrating Eclipse etc
Now i've just discovered that there's no straightforward way to test CodeIgniter 2.0 applications directly from PHPUnit.
I've spent a lot of time researching libraries (FooStack and CIUnit) but the development of these has ceased and aren't compatible with CI 2.0
Before I jump in the inlcuded 2.0 Unit Testing class I need to ask, have I missed out on any major developments around CI 2.0 and PHPUnit.
Any guidance greatly appreciated.
Thanks,
Conor
A quick note to anybody interested in this. Ellis Labs are currently baking support for PHPUnit in CodeIgniter Reactor. The next release should have it.. Ref: ellislab.com/forums/viewthread/187601
I found a few resources you may find useful.
A class written to integrate PHPunit and Codeigniter. Not a very interesting forum post, but it lead me to the next link.
http://codeigniter.com/forums/viewthread/70934/P60
However, the repository found in the link above doesn't look very active. This fork of it seems to be a little more active:
https://bitbucket.org/kenjis/my-ciunit