|
I didn't know about the egghead.io videos for AngularJS at the time but I will say the following video by Dan Wahlin helped a lot when starting out: AngularJS Fundamentals in 60-ish Minutes I'm really bad at learning new things but this helped me out, hope it helps someone else too.
|
# ? Oct 2, 2013 02:01 |
|
|
# ? May 4, 2024 10:40 |
|
That Wahlin video is basically a perfect introduction to Angular, IMO. Highly recommended as well. Found this guy today too http://learnangularjs.net/
|
# ? Oct 2, 2013 03:13 |
|
So I'm going to start messing about with one of these MV* things for fun, and I've looked at sample code / tutorials for a few, and Ember makes a lot more intuitive sense to me, but all the chit-chat from all the skinny jeans kids on the internet seems to be about Angular. Is this just because of and it's just the flavor of the month, or is Angular on it's way to becoming the jQuery of client side app frameworks?
|
# ? Oct 2, 2013 15:00 |
|
Lumpy posted:So I'm going to start messing about with one of these MV* things for fun, and I've looked at sample code / tutorials for a few, and Ember makes a lot more intuitive sense to me, but all the chit-chat from all the skinny jeans kids on the internet seems to be about Angular. Is this just because of and it's just the flavor of the month, or is Angular on it's way to becoming the jQuery of client side app frameworks? A little bit of both? Angular is a super powerful framework, but it's not without its warts and issues. After taking a look at EmberJS over the past couple of days I'm intrigued enough that I'd like to know more. I have a set of issues with Angular that don't look like they're going away anytime soon, but look like they're somewhat solved in Ember.
|
# ? Oct 2, 2013 17:23 |
|
I'm using Backbone/Marionette to construct a time charging system front-end for my four-man consulting practice because emailing excel charts sucks. I want a SPA interface that:
I have the backend done, rest API clicking, CSRF protection, and all the HTTP verbs are working. My problem is how to make the collections/views for weeks in Marionette and get the charge entries to "go" to the right places. Here's what it looks like so far: (ignore the charge dates below the calendar, the interface will eventually just filter between days of month) edit: also LOL this was putting the 1st on the right day earlier but I guess I messed something up the moment I took my screenshot. I have some basic JS to make the calendar, and I'm calling the <tr>s with an id of week1 and such, so I could just have Backbone append another <tr> full of fields to that, and make blank entry fields where there's no corresponding value in the REST payload. I am trying to use the concept of a "composite view" here but I guess I'm at a loss for where the logic from a collection of entries from "October 1 2013" to "October 31 2013" gets broken back out into weeks, and how I can keep weeks as a unit in the UI for things like if I want to add row totals and things in a separate column in the future. Can anyone outline a better strategy because the one I was thinking of seems like it's going to devolve into an awful Javascripty mess. Hed fucked around with this message at 21:28 on Oct 5, 2013 |
# ? Oct 5, 2013 21:24 |
|
The Insect Court posted:Why's that? NoSQL is going to be easier to scale, and there are more performant options than mongo(which is still pretty good). You lose some ACID guarantees, but depending on the application domain that's not super important. Personally I would fire any programmer that told me ACID guarantees are not "super important". Playing chicken with your data is how companies get killed. But hey, at least its webscale!
|
# ? Oct 7, 2013 12:48 |
|
I'm still really struggling to pick a library/framework for some of the projects we've got currently at work. For example, I've got one site with a small control sitting across multiple pages that has a chain of ajax calls from multiple user inputs that then comes back with a results page. Our current implementation is a sea of jQuery in a single file that is near impossible to update/maintain/understand. This control is soon to be expanding into a much bigger deal so I'd like us to use something to structure our code a lot better (god bless MV*), but not route any URLs, as it's a control on a page, rather than a single page on it's own. Is this a capability of any of these libraries? Or are they all targeted at routing? I've previously used Backbone, but there's nothing holding me to anything in particular.
|
# ? Oct 7, 2013 15:12 |
|
duck monster posted:Personally I would fire any programmer that told me ACID guarantees are not "super important". Playing chicken with your data is how companies get killed. How is one playing chicken? As far as I know NoSQL compromises ACID by being more relaxed about Consistency, ie. IF you have multiple shards, updates won't instantly show up in all shards. I hope I'm not missing a crucial flaw. It's not like NoSQL databases randomly and unexplainedly lose data. That was just a silly myth.
|
# ? Oct 7, 2013 16:27 |
|
Mongodb has improved a lot recently, and probably will improve dramatically now that they have had another massive round of funding, but earlier versions definitely played fast and loose with data to make benchmarks look better. Remember that relational databases have 30 or so years of live fire testing to work out all the kinks and edge cases so standards are high. People also do really dumb stuff like using redis as a backing data store without getting into disk flushing.
|
# ? Oct 7, 2013 18:02 |
|
Can I just say, goddamn Ember is complicated. I'm working through the free Tuts+ tutorial, but I think some things changed between the tutorial date and the 1.0 release, so the code in the final example doesn't work properly. Unfortunately Ember is opinionated and I don't know its opinions, so I'll be damned if I can figure out what's going on. I'm trying to keep going, because I feel like I'm one or two breakthroughs away from a really powerful prototyping framework, but goddamn.
|
# ? Oct 7, 2013 18:06 |
|
I highly recommend RethinkDB over MongoDB. They take data loss really seriously.
|
# ? Oct 10, 2013 06:09 |
|
la la la
shrughes fucked around with this message at 08:22 on Jan 24, 2014 |
# ? Oct 10, 2013 07:57 |
|
WEBSCALE DATABASE DERAILSil posted:How is one playing chicken? As far as I know NoSQL compromises ACID by being more relaxed about Consistency, ie. IF you have multiple shards, updates won't instantly show up in all shards. Databases that don't use SQL give you flexibility to choose (from the CAP theorem) Consistency, Availability, or Partition tolerance by giving you choices, either at a configuration level (Riak 2.0 CP bucket types) or a software level (Riak for AP, Zookeeper for CP). Riak (with allow_mult enabled) relaxes consistency to accept and persist writes even when nodes are down1; Riak today is AP. Redis Sentinel provides Consistency and Availability, but loses writes when there's a network partition2. Mongo isn't CP or AP, it's kinda broken3. PostgreSQL is CP once you understand that unacknowledged writes may have succeeded4. duck monster posted:Personally I would fire any programmer that told me ACID guarantees are not "super important". If they conflict with business goals, they might not be important. You can frequently design a system that works correctly without them, that may be cheaper and more reliable than with them. Let's say debit card network acknowledges or rejects transactions from a buyer to a merchant, and then reorders transactions at the end of the day to maximize the number of potential NSF fees that can be charged. You could build the transaction ingesting part with an AP system like Riak, without consistency and isolation from ACID, because individual transactions are immutable and aren't dependent on consistency of other recent5 writes. With a high write quorum, it'll be plenty durable, especially if you have multi-site replication going on in the background too. With that said, your application probably doesn't need a NoSQL because it probably hasn't outgrown Postgres yet. Postgres is "production ready," you can get it hosted for not much money, it hits the ACID guarantees, and CP is pretty intuitive. FOOTNOTES
40 minute conference talk from Aphyr about these posts: https://www.youtube.com/watch?v=mxdpqr-loyA Cocoa Crispies fucked around with this message at 00:51 on Oct 11, 2013 |
# ? Oct 11, 2013 00:45 |
|
Say I hypothetically want to implement a page where I let a teacher edit a class roster. Add students, remove, edit names etc, very similar to your traditional ToDo list sample. I still want the rest of the website to be server-side templated, but I might want to make the actual editing part of the student list to fully MVCed to avoid obnoxious refreshes. I'm familiar with Backbone and could get that done in there pretty painlessly, but I keep hearing that with Angular you might get more structure that would implementing something like the above a less boilerplatey process. I'm a big fan of a thick API approach (and I have to support virtually the same functionality in mobile as well, meaning I need to push as much logic down as possible to avoid duplication), and am very happy with treating my MVC web UIs as a really dumb and simple wrapper, with no sophisticated logic. Is that something Angular would be a great fit for?
|
# ? Oct 17, 2013 18:57 |
|
DreadCthulhu posted:I'm familiar with Backbone and could get that done in there pretty painlessly, but I keep hearing that with Angular you might get more structure that would implementing something like the above a less boilerplatey process. I'm a big fan of a thick API approach (and I have to support virtually the same functionality in mobile as well, meaning I need to push as much logic down as possible to avoid duplication), and am very happy with treating my MVC web UIs as a really dumb and simple wrapper, with no sophisticated logic. Is that something Angular would be a great fit for? I don't know enough to answer your questions, but the Ember "getting started" tutorial is a client-side todo MVC app. Looking over it might help you decide.
|
# ? Oct 17, 2013 19:24 |
|
DreadCthulhu posted:Is that something Angular would be a great fit for? You'll learn more in fifteen minutes of doing the tutorial than a dozen posts in this thread.
|
# ? Oct 17, 2013 19:38 |
|
I'd just like to chime in and say that as much as I've come to love and rely on underscore in the past couple of years, once I found and evaluated Lo-dash, I'm never going back. Lodash offers:
The only thing that keeps its standard build from being a perfect drop-in replacement for underscore (without using an underscore compatibility build) is that a couple of the methods work differently from their underscore counterparts - for example, the _.extend method does not include inherited properties/methods from the extended object, rather only things that pass the "hasOwnProperty" test. It does, however, offer the _.merge method, which acts just like underscore's _.extend method. For this reason, I recommend using Lo-dash from the very beginning of any project, as trying to drop it in later without using the underscore compatibility build (which by default removes any methods not provided by underscore, the implicit chaining, and the extra options added to many methods) requires some major refactoring. However, if you want to replace underscore with lo-dash on an existing project, and you still want the extra methods that lo-dash provides, you can get the best of both worlds by using the lo-dash CLI and running the following command - this outputs an AMD version with the module name "underscore" - and should be all one line, the browser is just inserting a line break before the "plus" argument: lodash underscore exports=amd moduleId=underscore plus="at,bindKey,cloneDeep,createCallback,curry,findIndex,findKey,forIn,forOwn,isPlainObject,merge,parseInt,partialRight,pull,remove,runInContext,transform,findLast,findLastIndex,findLastKey,forEachRight,forInRight,forOwnRight" isochronous fucked around with this message at 17:58 on Oct 18, 2013 |
# ? Oct 18, 2013 15:31 |
|
isochronous posted:cool stuff
|
# ? Oct 18, 2013 16:06 |
|
This is more of a design question, but I'm using a themed version of Bootstrap for Hyperglot. Since it's a desktop app, I'd like to make it more native-feeling with platform-specific UI controls (metro for Win, cocoa for Mac). Anyone know of a framework that can help me out in that regard?
|
# ? Oct 18, 2013 17:22 |
|
Huragok posted:This is more of a design question, but I'm using a themed version of Bootstrap for Hyperglot. Since it's a desktop app, I'd like to make it more native-feeling with platform-specific UI controls (metro for Win, cocoa for Mac). Anyone know of a framework that can help me out in that regard? It's not free, but Kendo UI (http://www.kendoui.com/) supposedly offers this (well, at least for mobile devices, not sure about desktops). Chrome "Packaged Apps" also have Native control styles - http://developer.chrome.com/apps/about_apps.html Edit: Really, most modern browsers are supposed to style form components with "native" looking controls, as long as you use the proper type attribute. This MDN page has a list of native controls available in HTML, along with supported browsers. I'm not sure how these styles interact with extra styles applied to them via CSS, however. It's frequently considered a... well, not BAD, per se, but maybe undesirable? practice to try making web applications look and act like desktop applications. Each domain has its own strengths and weaknesses, as well as their own established interaction patterns, and blurring those lines can, in some cases, lead to greater confusion among users than devs probably intended. isochronous fucked around with this message at 18:14 on Oct 18, 2013 |
# ? Oct 18, 2013 18:08 |
|
What's the best way to share templates between Rails and JS? I see a few gems for using Mustache in rails but they look like they're for Rails 3.X
jony neuemonic fucked around with this message at 22:52 on Oct 18, 2013 |
# ? Oct 18, 2013 22:48 |
|
fidel sarcastro posted:What's the best way to share templates between Rails and JS? I see a few gems for using Mustache in rails but they look like they're for Rails 3.X Try them in Rails 4 anyway, it's not a huge jump from Rails 3.
|
# ? Oct 21, 2013 13:15 |
|
So I've gone through the knockout.js tutorial and it looks pretty minimalistic and very embeddable, from what I can tell. Not opinionated about how you sync the data, so you can just regular jquery ajax or whatever else you fancy. Anybody here have experience using it over a few months?
|
# ? Oct 22, 2013 01:21 |
|
I've been using it for the past few months on some extremely complex and dynamic forms. We love it since it makes things that would otherwise be a convoluted mess of jQuery very easy. Our front-end code organization is poo poo though so I've been wanting to look into Angular or some other framework that imposes some kind of structure. Knockout does data-binding and does it very well but at the end of the day it's just a library, not a framework.
|
# ? Oct 22, 2013 03:55 |
|
We've used knockout on a few projects. The main thing I don't like is lack of graceful degradation -- I learned old-school and built up from a basic HTML form. But I get that the world is rapidly moving past that. But overall it is a very solid product with some very good pedigree and a whole boatload of real-world usage so if the model works for you roll with it.
|
# ? Oct 22, 2013 14:49 |
|
Our client is having us make a web app look and feel just like an old desktop app of theirs, and knockout has let us actually pull that off without it being too much of a hassle at all. I'll add to what cryolite said - it doesn't really help you structure your data. It's best if you use flat view models so you don't have to mess with $parents[] which can be frustrating - if you're in the 'binding context' of an object and want to access something outside of it, you have to be pretty explicit. I found this out the hard way when I thought I'd organize all the stuff I'd need for a modal popup into its own little object inside of the parent page's view model. The easiest way to handle it all was to just have one big flat view model to get serialized back up in the end. wwb posted:We've used knockout on a few projects. The main thing I don't like is lack of graceful degradation -- I learned old-school and built up from a basic HTML form. But I get that the world is rapidly moving past that. But overall it is a very solid product with some very good pedigree and a whole boatload of real-world usage so if the model works for you roll with it. I come from desktop apps and backend-type stuff, and knockout viewmodels added to an ASP.NET MVC app is my first "full stack" experience. I've never even touched css or html before this job. I didn't expect to pick it up so quickly, but then again I'm not coming from the old school idiom of POSTing up data from your forms, so there's no old conventions to break. It's honestly pretty nice, but the only thing that makes me scratch my head is that apparently the JSON is, uh, plain text. It's compressed in transit, right?
|
# ? Oct 22, 2013 14:57 |
|
JSON is normally sent gziped.
|
# ? Oct 22, 2013 15:10 |
|
2banks1swap.avi posted:I come from desktop apps and backend-type stuff, and knockout viewmodels added to an ASP.NET MVC app is my first "full stack" experience. I've never even touched css or html before this job. I didn't expect to pick it up so quickly, but then again I'm not coming from the old school idiom of POSTing up data from your forms, so there's no old conventions to break. That makes quite a bit of sense -- knockout was concieved of as a way to bring the MVVM pattern common in WPF and/or Silverlight apps to the browser. JSON is plain text at heart, it comes down the pipe however you configure it which is typically gzipped because most servers will gzip everything, at least on the public internet.
|
# ? Oct 22, 2013 15:35 |
|
Does anybody here support mobile clients in addition to your thick web clients? I've recently been trying to move our backend from being just an API servicing web/mobile to actually doing server-side templating itself, but my struggle is with having to support multiple flows when one should really suffice. What I mean is that I pretty much cannot avoid using ajax on client-side for DELETE/PUT routes or I have now support the _method hack that Rails does, which now means I have to make sure I interpret my GETs and POSTSs correctly based on the additional param. That's not even the biggest pain point, but now the backend has to control redirections between pages on form submission, I have to expose the same API routes in the URL (rails-style, again) or duplicate them and many others. On one hand I'd like development to be faster without having to go through client MVC, on the other I get to re-use the same API routes and the same input validation facilities I already have in place. Tough call, but I'm probably going to err on the side of keeping the backend cleaner and purely JSON-based at this point.
|
# ? Oct 22, 2013 22:18 |
|
Cryolite posted:I've been using it for the past few months on some extremely complex and dynamic forms. We love it since it makes things that would otherwise be a convoluted mess of jQuery very easy. If you want knockout with structure geared towards a spa then check out Durandaljs.
|
# ? Oct 23, 2013 01:53 |
|
Adahn the nameless posted:If you want knockout with structure geared towards a spa then check out Durandaljs. I've heard of Durandal but it seems to be a for-profit venture by the people developing it which makes me a little uncomfortable. If they close up shop I think I'd be left with a dead framework especially since it seems to have little uptake so far. Angular's taken off enough that even if Google stopped official support I bet it would survive. Another group at my company actually looked into using Durandal but abandoned it in favor of Angular. The number of jobs referencing Angular vs. Durandal on indeed.com is also a factor...
|
# ? Oct 23, 2013 02:59 |
|
Cryolite posted:I've heard of Durandal but it seems to be a for-profit venture by the people developing it which makes me a little uncomfortable. If they close up shop I think I'd be left with a dead framework especially since it seems to have little uptake so far. Angular's taken off enough that even if Google stopped official support I bet it would survive. Another group at my company actually looked into using Durandal but abandoned it in favor of Angular. I work for a large company that is currently in the process of rewriting the presentation layer of a few apps and we selected Angular. I work in BI and we handle the display of HUGE data sets and displaying them in a web browser. At first I was skeptical about how well Angular would be able to handle the dirty checking and still be performant but was pleasantly surprised that rebuilding a UI with the same features it bench marked faster than our old jQuery based UI. Our general structure is a 3 tier approach, DB -> Midware Web Service (SOAP) -> Presentation (REST w/ Angular). Since we decided to take the deep dive into Angular after thoroughly looking at knockout, backbone and a few other front end frameworks when we are hiring new engineers knowledge in Angular is a huge plus on the resume. Also, on a personal note, after taking the time to learn Angular it is a go to framework for me, before using it I hated web applications, now that I have been working with it every day for the last 8 months I can say that it is a powerful framework that allows you to create front ends that are robust performant and easy to maintain. Only draw back is getting some jQuery plugins to integrate well without breaking the Angular paradigm, if any one here needs help with Angular feel free to ask.
|
# ? Oct 28, 2013 15:12 |
|
I feel like I'm about ready to drink some serious koolaid here. I've been looking at https://reactjs.org, stumbled upon it while looking up AngularJS optimization notes after hitting some peformance issues on a project with AngularJS. I absolutely love the ideas behind this framework. Functional programming, composable components, properly batched DOM updates rather than piecemeal binding, and a clear separation of immutable and mutable state. Its a really clever approach and I'm keen as to give it a try in the near future. It helps that its running on Facebook so while it may not be widely adopted, its certainly seeing a lot of production usage.
|
# ? Nov 19, 2013 12:53 |
|
I'm also really interested in React, but haven't tried it on a real project. The thing that scares me is writing HTML inside of JS. But I can understand the benefits, and with every JS MVC there's already a lot of blurring between HTML/JS anyway. NetTuts just posted a nice intro to React: http://net.tutsplus.com/tutorials/javascript-ajax/intro-to-the-react-framework/
|
# ? Nov 19, 2013 14:49 |
|
sim posted:I'm also really interested in React, but haven't tried it on a real project. The thing that scares me is writing HTML inside of JS. But I can understand the benefits, and with every JS MVC there's already a lot of blurring between HTML/JS anyway. NetTuts just posted a nice intro to React: http://net.tutsplus.com/tutorials/javascript-ajax/intro-to-the-react-framework/ Yeah, this is the thing, my experience with AngularJS is that you'll be hopping between template, controller and directive structure for a single change in behaviour anyway. Angular expressions and directives ensure that you've got templates hard coupled to underlying scripting On the other hand React encourages all of a components necessary pieces (aside from style) to be located in the one 'class', and that is going to be very powerful for creating reusable components that are well encapsulated. The fact that performance is considered of high priority pretty much seals the deal for me. I'll give a trip report once I've got some runs on the board for this new project I'm starting.
|
# ? Nov 19, 2013 21:34 |
|
Anyone here got experience with Marionette? I'm liking the idea of perhaps swapping the regular Backbone views with the "managed" ones to avoid some of the typical boilerplate, and the region swapping logic seems pretty reasonable too (even though layoutManager is supposed to be doing the same). I like the idea that you can pick and choose which pieces of it you want instead of buying into the entire ecosystem of classes, which seems to go a bit over the top with all the different options.
|
# ? Nov 19, 2013 21:52 |
|
DreadCthulhu posted:Anyone here got experience with Marionette? I'm liking the idea of perhaps swapping the regular Backbone views with the "managed" ones to avoid some of the typical boilerplate, and the region swapping logic seems pretty reasonable too (even though layoutManager is supposed to be doing the same). I like the idea that you can pick and choose which pieces of it you want instead of buying into the entire ecosystem of classes, which seems to go a bit over the top with all the different options. I used Marionette on a project and it was pretty great, I recommend it. We picked it for its great support of IE7 in addition to what you listed. We ran into some headaches keeping sorted collections in sync with the CollectionViews, but otherwise it's solid to work with. Works well with other things in the backbone ecosystem too.
|
# ? Nov 19, 2013 22:34 |
|
Has anyone used Backgrid.js? It seems pretty nice but I'm wondering if there are better alternatives as I'm pretty new to Javascript development. Also, any thoughts on D3.js? It seems like a really neat visualization library.
|
# ? Nov 19, 2013 22:42 |
|
DreadCthulhu posted:Anyone here got experience with Marionette? I'm liking the idea of perhaps swapping the regular Backbone views with the "managed" ones to avoid some of the typical boilerplate, and the region swapping logic seems pretty reasonable too Ochowie posted:any thoughts on D3.js? It seems like a really neat visualization library.
|
# ? Nov 20, 2013 14:47 |
|
|
# ? May 4, 2024 10:40 |
|
sim posted:If you're going to use Backbone to any extent, Marionette is pretty much required for view management. Like you said, you'll end up writing boilerplate code for everything Marionette does anyway, so you might as well just use it from the beginning. CollectionViews (and ItemViews) are super useful too. Ended up using LayoutManager for now, seems like it provides pretty much the same benefits of view lifecycle management.
|
# ? Nov 21, 2013 04:13 |