Paul on 13 Mar 2012 10:51:14 -0700


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: Many Thanks


Wow, thanks SO much Trevor, that's an awesome list!

On the topic of blogs, mine is focused more on architecture and is at
http://www.pauldee.org/blog

My viewpoint on software engineering (and problem solving in general)
is:
http://www.pauldee.org/blog/2011/the-heart-of-all-engineering/

Which I think we discussed a lot last night ("How I solve problems")

Paul

On Mar 13, 11:40 am, Dustin Getz <dustin.g...@gmail.com> wrote:
> bam! thanks for this trevor you just saved me some work.
>
> Joy of Clojure ("the book" to learn idiomatic clojure) is written by Fogus
> and Houser. Fogus's expertise is in big enterprise systems. David Nolen is
> the hipster research dude with an awesome 'fro who is the main guy behind
> clojure/core.logic. Both of their blogs survived The Great Google Reader
> Culling of 2012, they have consistently good and regular content.
>
> i have detailed notes on Paul's slides, but they need processing and won't
> be up until late tonight at earliest.
>
> [1] Fogus:http://blog.fogus.me/-
> [2] Nolen:http://dosync.posterous.com/
>
> On Tue, Mar 13, 2012 at 10:52 AM, Lalish-Menagh, Trevor <t...@trevmex.com>wrote:
>
>
>
>
>
>
>
> > Hi all,
>
> > Here is a list of links I compiled throughout the talk. There was a
> > lot I didn't know, and I thought a list of links could help other grok
> > Paul's talk as well. I how they help:
>
> > Here are some links to tools that he talked about:
>
> > Clojure and Scala: A mailing list post by the main developer on World
> > Singles and why they chose Clojure over Scala
> > (
> >http://groups.google.com/group/clojure/browse_thread/thread/b18f9006c...
> > )
> > Hiccup: HTML Rendering in Clojure (https://github.com/weavejester/hiccup)
> > Chris Granger: Inventor of fetch, noir, and jayq. Tools to manipulate
> > the DOM in Clojure
> > (http://www.chris-granger.com/2012/02/20/overtone-and-clojurescript/)
> > Bootstrap: Twitters HTML/CSS/JS templates (
> >http://twitter.github.com/bootstrap/)
> > David Nolen: Writer of "The Joy of Clojure"
> > (http://blog.fogus.me/2010/07/19/take-7-david-nolen/)
> > Uniplate: A Haskell framework for general traversals
> > (http://community.haskell.org/~ndm/uniplate/)
> > Scrap your boilerplate: A series of MS Research papers on generic
> > programming that Uniplate is based off of
> > (http://research.microsoft.com/en-us/um/people/simonpj/papers/hmap/)
> > core.logic: A logic programming library for Clojure
> > (https://github.com/clojure/core.logic)
> > RabbitMQ: Everyones favorite message queue (http://www.rabbitmq.com/)
> > (unless you are a 0MQ guy (http://www.zeromq.org/))
> > Uniti Testing in Clojure: 'nuff said
> > (http://nakkaya.com/2009/11/18/unit-testing-in-clojure/)
> > ClojureScript: Clojure for the browser (compiled to JavaScript
> >https://github.com/clojure/clojurescript)
> > enlive: CSS templating and transformations in Clojure
> > (https://github.com/cgrand/enlive)
> > enfocus: DOM manipulation in ClojureScript (enlive in ClojureScript
> >https://github.com/ckirkendall/enfocus)
> > How To Solve It: A great book on systematic problem solving
> > (http://en.wikipedia.org/wiki/How_to_Solve_It)
> > Try Haskell: in the browser! (http://tryhaskell.org/)
> > Scala levels: The levels of a Scala programmer
> > (http://www.scala-lang.org/node/8610)
> > The Art of the Metaobject Protocol: A book explaining metaobject
> > protocols used in lisps
> > (http://en.wikipedia.org/wiki/The_Art_of_the_Metaobject_Protocol)
> > Software Transitional Memory: What makes Clojure's (and Haskell's)
> > concurrency model work so well
> > (http://en.wikipedia.org/wiki/Software_transactional_memory)
> > Learn Clojure: Tutorails and videos for learning clojure
> > (http://learn-clojure.com/)
>
> > Yours,
> > Trevor
>
> > On Tue, Mar 13, 2012 at 8:08 AM, Paul <paul.degran...@gmail.com> wrote:
> > > Many thanks to all that came out last night.  Thank you so much for
> > > the attention, the feedback, and the great discussion.  You all
> > > provided me with some insight on how to really hone in the focus of my
> > > talk.
>
> > > If anyone has questions specific to the slides, the discussion, or the
> > > Tutorspree technology pieces, follow up in this thread.
>
> > > I'm digging up the paper on user perceived system errors based on
> > > response time.
>
> > > I also wanted to fill in some details about baking that might help
> > > better fill-out the business case:
>
> > > One of my greatest risks is managing lots of physical computing
> > > resources with a limited number of engineers.  Our time is better
> > > spent serving our internal engineering needs, or the needs of
> > > customers, not the inherent complexities of scaling and maintaining
> > > web machines.
>
> > > We have a risk that the pipeline from design concept to production
> > > push is just too long.  We'd really like to use the objective data
> > > from A/B tests in a tight loop, to push UI and Interaction changes a
> > > lot faster.
>
> > > Another risk is that our mobile traffic is growing faster than any
> > > other segment.  The old architecture choice was mobile-dispatching,
> > > but it means that we have to double up on some of the control logic
> > > and also the designs.  Given the second risk, this becomes a small
> > > hangup.
>
> > > Our best source of traffic comes from organic search (a lot of long
> > > tail stuff that we scoop up).  So we optimize a lot for that sort of
> > > thing.
> > > =====
>
> > > The idea is simple:
> > > A designer builds us static HTML.  They use a chopped up version of
> > > Bootstrap2 and HTML5boilerplate that has all the responsive/fluid
> > > stuff turned on (we've removed the mobile rendering concern to some
> > > degree.  We also got semantic markup via microdata for free - great
> > > for SEO).  We then put the page through a baking process where we're
> > > doing div transforms with real data from our DB.
> > > The pages that come out are RICH for SEO.  Our static content that we
> > > place on the CDN is the bare-minimum for humans, and the best case
> > > scenario for machines.
>
> > > We additionally push snippets of JavaScript (some actual JS, but
> > > mostly compiled ClojureScript) to the CDN.
>
> > > This JS fulfills all the dynamic needs of Tutorspree, by doing simple
> > > div transformations and swapping out the HTML when needed.
>
> > > 90% of all traffic and interaction is now being handled between the
> > > CDN and the client.  So the scaling and system maintenance/
> > > administration risks are greatly reduced.
>
> > > What we gained is now engineers don't have to worry about taking a
> > > design and turning it into a template, UI/UX changes can happen in a
> > > tight loop, engineers get the benefit of interactive development at
> > > all points of the application, we don't need to worry as much about
> > > scaling our DB for connections, just for data and processing.
>
> > > Hope this helps clear some confusion for some people,
> > > Paul
>
> > --
> > Trevor Lalish-Menagh
> > t...@trevmex.com
> > 484.868.6150 (mobile)
> > trevmex (AIM)