- Star/Snowflake Schema: Organizes data into fact and dimension tables for intuitive querying.
- Business-Oriented: Designed for ease of understanding by business users and analysts.
- Denormalized Structure: Optimized for performance in OLAP systems.
- Slowly Changing Dimensions (SCD): Handles historical changes in dimension data.
- Query Performance: Highly efficient for aggregations and slicing/dicing.
Why should programmers care about Monoids? Because Monoids are a common pattern that shows up over and over in programming. And when patterns show up, we can abstract them and leverage work we've done in the past. This allows us to quickly develop solutions on top of proven, stable code.
Add Commutative Property to a Monoid (Commutative Monoid) and you have something that can be executed in parallel. With the end of Moore's Law, parallelism is our only hope to increasing processing speeds.
What follows is what I've learned after studying Monoids. It is hardly complete, but hopefully will prove to be helpful as an introduction for others.
| echo-server-epoll | |
| echo-server-poll | |
| talk | |
| talk.dSYM |
| package spark.example | |
| import org.apache.spark.SparkContext | |
| import org.apache.spark.SparkContext._ | |
| import org.apache.spark.SparkConf | |
| object SparkGrep { | |
| def main(args: Array[String]) { | |
| if (args.length < 3) { | |
| System.err.println("Usage: SparkGrep <host> <input_file> <match_term>") |
Rich Hickey • 3 years ago
Sorry, I have to disagree with the entire premise here.
A wide variety of experiences might lead to well-roundedness, but not to greatness, nor even goodness. By constantly switching from one thing to another you are always reaching above your comfort zone, yes, but doing so by resetting your skill and knowledge level to zero.
Mastery comes from a combination of at least several of the following:
No longer needed! https://twitter.com/trello/status/893213868322902017
| // ==UserScript== | |
| // @name Launchpad Download Count | |
| // @namespace https://gist.github.com/stefansundin/ | |
| // @homepage https://gist.github.com/stefansundin/f9df6c5e0fd184c60709 | |
| // @downloadURL https://gist.github.com/stefansundin/f9df6c5e0fd184c60709/raw/launchpad-download-count.user.js | |
| // @version 0.3 | |
| // @author Stefan Sundin | |
| // @description Gets the download count of your Launchpad packages. | |
| // @icon https://launchpad.net/favicon.ico | |
| // @match https://launchpad.net/~*/+archive/ubuntu/* |
- Monokai theme
- OF Addon Plugin
- Prefs
- Text editing -> indentation -> prefer tabs
- Text editing -> show line numbers, trim whitespace from empty lines
(by @andrestaltz)
If you prefer to watch video tutorials with live-coding, then check out this series I recorded with the same contents as in this article: Egghead.io - Introduction to Reactive Programming.