summaryrefslogtreecommitdiff
path: root/ibb
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2019-02-23 19:46:09 -0800
committerBen Sima <ben@bsima.me>2019-02-23 19:54:41 -0800
commitf75eaf7fff963b88e412d315d0fdef8151943c20 (patch)
tree4e10e624ab6b93b640f2a93f648207a41cc90a25 /ibb
parent81313e15c70bf1c2fe2cd4720f19ae7a2e952fc7 (diff)
Reorganize directory
Diffstat (limited to 'ibb')
-rw-r--r--ibb/Influencers.hs393
-rw-r--r--ibb/LICENSE1
-rw-r--r--ibb/Main.hs117
-rw-r--r--ibb/default.nix23
-rw-r--r--ibb/ibb.cabal30
5 files changed, 0 insertions, 564 deletions
diff --git a/ibb/Influencers.hs b/ibb/Influencers.hs
deleted file mode 100644
index 7a7031f..0000000
--- a/ibb/Influencers.hs
+++ /dev/null
@@ -1,393 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE QuasiQuotes #-}
-
-module Influencers where
-
-import Data.Text.Lazy (Text)
-
-data Person = Person
- { _name :: Text
- , _pic :: Text
- , _twitter :: Text
- , _website :: Text
- , _books :: [Book]
- }
-
-data Book = Book
- { _title :: Text
- , _author :: Text
- , _amznref :: Text
- }
-
-allPeople :: [Person]
-allPeople =
- [ Person { _name = "Joe Rogan"
- , _pic = "https://pbs.twimg.com/profile_images/552307347851210752/vrXDcTFC_400x400.jpeg"
- , _twitter = "joerogan"
- , _website = "http://joerogan.com"
- , _books = [ Book {_title = "Food of the Gods"
- , _author = "Terence McKenna"
- , _amznref = "0553371304"
- }
- , Book { _title = "The War of Art"
- , _author ="Steven Pressfield"
- , _amznref ="B007A4SDCG"
- }
- ]
- }
- , Person { _name = "Beyoncé"
- , _pic = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTxT84sF19lxdnSiblIXAp-Y4wAigpQn8sZ2GtAerIR_ApiiEJfFQ"
- , _twitter = "Beyonce"
- , _website = "http://beyonce.com"
- , _books = [ Book { _title = "What Will It Take To Make A Woman President?"
- , _author = "Marianne Schnall"
- , _amznref = "B00E257Y7G"}
- ]
- }
- , Person { _name = "Barrack Obama"
- , _pic = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQeLzftR36p0hYI-EKNa5fm7CYDuN-vyz23_R48ocqa8X1nPr6C"
- , _twitter = "BarackObama"
- , _website = "http://barackobama.com"
- , _books = [ Book { _title = "An American Marriage"
- , _author = "Tayari Jones"
- , _amznref = "B01NCUXEFR"}
- , Book { _title = "Americanah"
- , _author = "Chimamanda Ngozi Adichie"
- , _amznref = "B00A9ET4MC"}
- ]
- }
- , Person { _name = "Warren Buffet"
- , _pic = "https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcQQbmnUykS6zqgzaf44tsq1RAsnHe6H7fapEoSqUwAoJGSFKbAPSw"
- , _twitter = "WarrenBuffett"
- , _website = "http://berkshirehathaway.com"
- , _books = [ Book { _title = "The Intelligent Investor"
- , _author = "Benjamin Graham"
- , _amznref = "B000FC12C8"}
- , Book { _title = "Security Analysis"
- , _author = "Benjamin Graham"
- , _amznref = "B0037JO5J8"}
- ]
- }
- , Person { _name = "Bill Gates"
- , _pic = "https://pbs.twimg.com/profile_images/988775660163252226/XpgonN0X_400x400.jpg"
- , _twitter = "BillGates"
- , _website = "https://www.gatesnotes.com"
- , _books = [ Book { _title = "Leonardo da Vinci"
- , _author = "Walter Isaacson"
- , _amznref = "1501139169"
- }
- , Book { _title = "Educated"
- , _author = "Tara Wetsover"
- , _amznref = "B072BLVM83"
- }
- ]
- }
- , Person { _name = "Stephen King"
- , _pic = "https://pbs.twimg.com/profile_images/378800000836981162/b683f7509ec792c3e481ead332940cdc_400x400.jpeg"
- , _twitter = "StephenKing"
- , _website = "https://stephenking.com/"
- , _books = [ Book { _title = "Red Moon"
- , _author = "Benjamin Percy"
- , _amznref = "B008TU2592"
- }
- , Book { _title = "The Marauders"
- , _author = "Tom Cooper"
- , _amznref = "B00MKZBVTM"
- }
- ]
- }
- , Person { _name = "Tobi Lütke"
- , _pic = "https://pbs.twimg.com/profile_images/551403375141457920/28EOlhnM_400x400.jpeg"
- , _twitter = "tobi"
- , _website = "https://www.shopify.com"
- , _books = [ Book { _title = "Influence"
- , _author ="Robert B. Cialdini"
- , _amznref = "006124189X"
- }
- , Book { _title = "High Output Management"
- , _author ="Andrew S. Grove"
- , _amznref = "B015VACHOK"
- }
- ]
- }
- , Person { _name = "Susan Cain"
- , _pic = "https://pbs.twimg.com/profile_images/1474290079/SusanCain5smaller-1_400x400.jpg"
- , _twitter = "susancain"
- , _website = "https://www.quietrev.com"
- , _books = [ Book { _title = "Bird by Bird"
- , _author ="Anne Lamott"
- , _amznref = "0385480016"
- }
- , Book { _title = "Waking Up"
- , _author ="Sam Harris"
- , _amznref = "1451636024"
- }
- ]
- }
- , Person { _name = "Oprah Winfrey"
- , _pic = "https://pbs.twimg.com/profile_images/1013835283698049025/q5ZN4yv3_400x400.jpg"
- , _twitter = "Oprah"
- , _website = "http://www.oprah.com/index.html"
- , _books = [ Book { _title = "A New Earth"
- , _author ="Eckhart Tolle"
- , _amznref = "B000PC0S5K"
- }
- , Book { _title = "The Poisonwood Bible"
- , _author ="Barbara Kingsolver"
- , _amznref = "B000QTE9WU"
- }
- ]
- }
- , Person { _name = "Patrick Collison"
- , _pic = "https://pbs.twimg.com/profile_images/825622525342199809/_iAaSUQf_400x400.jpg"
- , _twitter = "patrickc"
- , _website = "https://patrickcollison.com"
- , _books = [ Book { _title = "How Judges Think"
- , _author ="Richard A. Posner"
- , _amznref = "0674048067"
- }
- , Book { _title = "Programmers at Work"
- , _author ="Susan Lammers"
- , _amznref = "1556152116"
- }
- ]
- }
- , Person { _name = "Luis Von Ahn"
- , _pic = "https://pbs.twimg.com/profile_images/1020343581087678464/NIXD5MdC_400x400.jpg"
- , _twitter = "LuisvonAhn"
- , _website = "https://www.duolingo.com/"
- , _books = [ Book { _title = "Zero to One"
- , _author ="Peter Thiel"
- , _amznref = "B00J6YBOFQ"
- }
- , Book { _title = "The Hard Thing About Hard Things"
- , _author ="Ben Horowitz"
- , _amznref = "B00DQ845EA"
- }
- ]
- }
- , Person { _name = "Bryan Johnson"
- , _pic = "https://pbs.twimg.com/profile_images/1055165076372475904/vNp60sSl_400x400.jpg"
- , _twitter = "bryan_johnson"
- , _website = "https://bryanjohnson.co"
- , _books = [ Book { _title = "A Good Man"
- , _author ="Mark Shriver"
- , _amznref = "B007CLBH0M"
- }
- , Book { _title = "Shackleton"
- , _author ="Nick Bertozzi"
- , _amznref = "1596434511"
- }
- ]
- }
- , Person { _name = "Peter Thiel"
- , _pic = "https://pbs.twimg.com/profile_images/1121220551/Peter_Thiel_400x400.jpg"
- , _twitter = "peterthiel"
- , _website = "http://zerotoonebook.com"
- , _books = [ Book { _title = "Deceit, Desire, and the Novel"
- , _author ="René Girard"
- , _amznref = "0801818303"
- }
- , Book { _title = "Violence and the Sacred"
- , _author ="René Girard"
- , _amznref = "0801822181"
- }
- ]
- }
- , Person { _name = "Tim Ferris"
- , _pic = "https://pbs.twimg.com/profile_images/49918572/half-face-ice_400x400.jpg"
- , _twitter = "tferriss"
- , _website = "http://tim.blog"
- , _books = [ Book { _title = "10% Happier"
- , _author ="Dan Harris"
- , _amznref = "0062265431"
- }
- , Book { _title = "A Guide to the Good Life"
- , _author ="William Irvine"
- , _amznref = "B0040JHNQG"
- }
- ]
- }
- , Person { _name = "Allen Walton"
- , _pic = "https://pbs.twimg.com/profile_images/1038905908678545409/yUbF9Ruc_400x400.jpg"
- , _twitter = "allenthird"
- , _website = "https://www.allenwalton.com"
- , _books = [ Book { _title = "4 Hour Work Week"
- , _author ="Tim Ferris"
- , _amznref = "B002WE46UW"
- }
- , Book { _title = "Choose Yourself"
- , _author ="James Altucher"
- , _amznref = "B00CO8D3G4"
- }
- ]
- }
- , Person { _name = "Peter Mallouk"
- , _pic = "https://pbs.twimg.com/profile_images/713172266968715264/KsyDYghf_400x400.jpg"
- , _twitter = "PeterMallouk"
- , _website = "https://creativeplanning.com"
- , _books = [ Book { _title = "Awareness"
- , _author ="Anthony de Mello SJ"
- , _amznref = "B005GFBP6W"
- }
- , Book { _title = "The Prophet"
- , _author ="Kahlil Gibran"
- , _amznref = "B07NDJ3LMW"
- }
- ]
- }
- , Person { _name = "Adam Robinson"
- , _pic = "https://pbs.twimg.com/profile_images/822708907051077632/y5KyboMV_400x400.jpg"
- , _twitter = "IAmAdamRobinson"
- , _website = "http://robinsonglobalstrategies.com"
- , _books = [ Book { _title = "Wishcraft"
- , _author ="Barbara Sher"
- , _amznref = "0345465180"
- }
- , Book { _title = "You Can Be a Stock Market Genius"
- , _author ="Joel Greenblatt"
- , _amznref = "0684832135"
- }
- ]
- }
- , Person { _name = "Anrew Weil"
- , _pic = "https://pbs.twimg.com/profile_images/987461787422359553/mpoZAmPH_400x400.jpg"
- , _twitter = "DrWeil"
- , _website = "https://www.drweil.com"
- , _books = [ Book { _title = "The Way Of Life According To Lao Tzu"
- , _author = "Witter Byner"
- , _amznref = "0399512985"
- }
- , Book { _title = "The Psychology of Romantic Love"
- , _author ="Nathaniel Branden"
- , _amznref = "B0012RMVJI"
- }
- ]
- }
- , Person { _name = "Hubert Joly"
- , _pic = "https://scontent-ort2-2.xx.fbcdn.net/v/t1.0-1/c1.0.193.193a/38444401_2156120597936470_9028564067043770368_n.jpg?_nc_cat=104&_nc_ht=scontent-ort2-2.xx&oh=162142edb167f389a5b585a329e4993a&oe=5CE1D578"
- , _twitter = "BBYCEO"
- , _website = "https://www.bestbuy.com"
- , _books = [ Book { _title = "Who Says Elephants Can't Dance"
- , _author = "Louis. V. Gerstner"
- , _amznref = "0060523808"
- }
- , Book { _title = "Onward"
- , _author ="Howard Schultz"
- , _amznref = "1609613821"
- }
- ]
- }
- , Person { _name = "Esther Perel"
- , _pic = "https://pbs.twimg.com/profile_images/1091062675151319040/MzxCcgdU_400x400.jpg"
- , _twitter = "EstherPerel"
- , _website = "https://www.estherperel.com"
- , _books = [ Book { _title = "Crime And Punishment"
- , _author = "Fyodor Dostoyevsky"
- , _amznref = "B07NL94DFD"
- }
- , Book { _title = "If This Is a Man and The Truce"
- , _author ="Primo Levi"
- , _amznref = "0349100136"
- }
- ]
- }
- , Person { _name ="Neil deGrasse Tyson"
- , _pic = "https://pbs.twimg.com/profile_images/74188698/NeilTysonOriginsA-Crop_400x400.jpg"
- , _twitter = "neiltyson"
- , _website = "https://www.haydenplanetarium.org/tyson/"
- , _books = [ Book { _title = "The Prince"
- , _author = "Machiavelli"
- , _amznref = "B07ND3CM16"
- }
- , Book { _title = "The Art of War"
- , _author ="Sun Tzu"
- , _amznref = "1545211957"
- }
- ]
- }
- , Person { _name = "Mark Cuban"
- , _pic = "https://pbs.twimg.com/profile_images/1422637130/mccigartrophy_400x400.jpg"
- , _twitter = "mcuban"
- , _website = "http://markcubancompanies.com/"
- , _books = [ Book { _title = "The Fountainhead"
- , _author = "Ayn Rend"
- , _amznref = "0452273331"
- }
- , Book { _title = "The Gospel of Wealth "
- , _author ="Andrew Carnegie"
- , _amznref = "1409942171"
- }
- ]
- }
- , Person { _name = "Robert Herjavec"
- , _pic = "https://pbs.twimg.com/profile_images/608643660876423170/DgxUW3eZ_400x400.jpg"
- , _twitter = "robertherjavec"
- , _website = "https://www.robertherjavec.com/"
- , _books = [ Book { _title = "Why I Run"
- , _author = "Mark Sutcliffe"
- , _amznref = "B007OC9P3A"
- }
- , Book { _title = "Swim with the Sharks Without Being Eaten Alive"
- , _author ="Harvey B. Mackay"
- , _amznref = "006074281X"
- }
- ]
- }
- , Person { _name = "Caterina Fake"
- , _pic = "https://pbs.twimg.com/profile_images/378800000509318185/d968d62d1bc39f2c82d3fa44db478525_400x400.jpeg"
- , _twitter = "Caterina"
- , _website = "https://caterina.net"
- , _books = [ Book { _title = "Growth of the Soil"
- , _author = "Knut Hamsun"
- , _amznref = "0343181967"
- }
- , Book { _title = "The Thousand Autumns of Jacob de Zoet"
- , _author ="David Mitchell"
- , _amznref = "0812976363"
- }
- ]
- }
- , Person { _name = "Daymond John"
- , _pic = "https://pbs.twimg.com/profile_images/1048022980863954944/eZvGANn0_400x400.jpg"
- , _twitter = "TheSharkDaymond"
- , _website = "https://daymondjohn.com/"
- , _books = [ Book { _title = "Think and Grow Rich"
- , _author = "Napoleon Hill"
- , _amznref = "1585424331"
- }
- , Book { _title = "How to Win Friends & Influence People"
- , _author ="Dale Carnegie"
- , _amznref = "0671027034"
- }
- ]
- }
- , Person { _name = "Kevin O'Leary"
- , _pic = "https://pbs.twimg.com/profile_images/1067383195597889536/cP6tNEt0_400x400.jpg"
- , _twitter = "kevinolearytv"
- , _website = "http://askmrwonderful.eone.libsynpro.com/"
- , _books = [ Book { _title = "Competitive Advantage"
- , _author = "Michael Porter"
- , _amznref = "0684841460"
- }
- , Book { _title = "Secrets of Closing the Sale"
- , _author ="Zig Ziglar"
- , _amznref = "0425081028"
- }
- ]
- }
- , Person { _name = "Alex Rodriguez"
- , _pic = "https://pbs.twimg.com/profile_images/796405335388848128/LbvsjCA3_400x400.jpg"
- , _twitter = "AROD"
- , _website = "http://www.arodcorp.com/"
- , _books = [ Book { _title = "Blitzscaling"
- , _author = "Reid Hoffman"
- , _amznref = "1524761419"
- }
- , Book { _title = "Measure What Matters"
- , _author ="John Doerr"
- , _amznref = "0525536221"
- }
- ]
- }
- ]
diff --git a/ibb/LICENSE b/ibb/LICENSE
deleted file mode 100644
index 1d1026a..0000000
--- a/ibb/LICENSE
+++ /dev/null
@@ -1 +0,0 @@
-All rights reserved. \ No newline at end of file
diff --git a/ibb/Main.hs b/ibb/Main.hs
deleted file mode 100644
index 27506d8..0000000
--- a/ibb/Main.hs
+++ /dev/null
@@ -1,117 +0,0 @@
-{-# LANGUAGE OverloadedStrings #-}
-{-# LANGUAGE QuasiQuotes #-}
-
-module Main where
-
-import Control.Monad.IO.Class (liftIO)
-import Data.ByteString.Lazy (ByteString)
-import Data.Maybe (fromMaybe)
-import Data.Text.Lazy (Text)
-import Data.Text.Lazy.Encoding (encodeUtf8)
-import Influencers (Person(..), Book(..), allPeople)
-import System.Environment (lookupEnv)
-import System.Random (newStdGen)
-import System.Random.Shuffle (shuffle')
-import Text.Blaze (Markup)
-import Text.Blaze.Html (Html)
-import Text.Blaze.Html.Renderer.Text (renderHtml)
-import Text.Hamlet (shamlet)
-import Text.Lucius (lucius, renderCss)
-import Web.Scotty (ActionM, ScottyM, scotty, get, html, raw, setHeader)
-
-render :: Html -> ActionM ()
-render = html . renderHtml
-
-css :: ByteString -> ActionM ()
-css src = setHeader "content-type" "text/css" >> raw src
-
-main :: IO ()
-main = do
- port <- read <$> fromMaybe "3000" <$> lookupEnv "PORT" :: IO Int
- scotty port routes
-
-routes :: ScottyM ()
-routes = do
- get "/" $ do
- r <- liftIO newStdGen
- let peopleList = shuffle' allPeople (length allPeople) r
- render (homepage peopleList)
- get "/custom.css" $ css stylesheet
-
-displayPerson :: Person -> Markup
-displayPerson person = [shamlet|
-<div .card>
- <img .card-img .img-fluid src=#{_pic person}>
- <div .card-body>
- <h4 .card-title>
- #{_name person}
- <h6>
- <a target=_blank href="https://twitter.com/#{_twitter person}" class="fab fa-twitter">
- <a target=_blank href=#{_website person} class="fas fa-globe">
- <p .card-text>
- <ul>
- $forall book <- (_books person)
- <li>
- <a target=_blank .text-dark href="https://www.amazon.com/dp/#{_amznref book}">
- #{_title book}
-|]
-
-title, subtitle :: Text
-title = "Influenced By Books"
-subtitle = "Influential people and the books that made them."
-
-homepage :: [Person] -> Markup
-homepage peopleList = [shamlet|
-<!doctype html>
-<head>
- <meta charset="utf-8">
- <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
- <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"
- rel="stylesheet"
- integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS"
- crossorigin="anonymous">
- <link rel="stylesheet"
- href="https://use.fontawesome.com/releases/v5.7.1/css/all.css"
- integrity="sha384-fnmOCqbTlWIlj8LyTjo7mOUStjsKC4pOpQbqyi7RrhN7udi9RwhKkMHpvLbHG9Sr"
- crossorigin="anonymous">
- <link href="/custom.css" rel="stylesheet">
- <title>#{title} | #{subtitle}
- <script>
- (function(f, a, t, h, o, m){
- a[h]=a[h]||function(){
- (a[h].q=a[h].q||[]).push(arguments)
- };
- o=f.createElement('script'),
- m=f.getElementsByTagName('script')[0];
- o.async=1; o.src=t; o.id='fathom-script';
- m.parentNode.insertBefore(o,m)
- })(document, window, '//stats.simatime.com/tracker.js', 'fathom');
- fathom('set', 'siteId', 'IJATN');
- fathom('trackPageview');
-<body>
- <div .container.mt-5>
- <div .jumbotron>
- <h1 .display-4>
- #{title}
- <p .lead>
- #{subtitle}
-
- <p .lead>
- <a href="http://eepurl.com/ghBFjv">
- Get new book recommendations from the world's influencers in your email.
-
- <div .card-columns>
- $forall person <- peopleList
- #{displayPerson person}
-|]
-
-stylesheet :: ByteString
-stylesheet = encodeUtf8 . renderCss $ [lucius|
-.jumbotron
-{ background: #fff
-; text-align: center
-}
-h1.display-4
-{ font-family: 'Times New Roman', times, serif
-}
-|] undefined
diff --git a/ibb/default.nix b/ibb/default.nix
deleted file mode 100644
index 8525d99..0000000
--- a/ibb/default.nix
+++ /dev/null
@@ -1,23 +0,0 @@
-{ compiler ? "ghc843"
-, doHaddock ? false
-, doBenchmark ? false
-, doCheck ? true
-, withHoogle ? false
-, nixpkgs ? builtins.fetchTarball (import ../pack/nixpkgs.nix)
-}:
-
-with import "${nixpkgs}" {};
-
-haskell.packages.${compiler}.developPackage {
- root = ./.;
- overrides = with haskell.lib; self: super: {
- ghc =
- if withHoogle
- then super.ghc // {withPackages = super.ghc.withHoogle;}
- else super.ghc;
- ghcWithPackages =
- if withHoogle
- then self.ghc.withPackages
- else super.ghcWithPackages;
- };
-}
diff --git a/ibb/ibb.cabal b/ibb/ibb.cabal
deleted file mode 100644
index 4d8ebc7..0000000
--- a/ibb/ibb.cabal
+++ /dev/null
@@ -1,30 +0,0 @@
-name: ibb
-version: 3
-category: Web
-homepage: https://ibb.simatime.com
-author: Nick Sima
-maintainer: nicksima@gmail.com
-copyright: 2018 Nick Sima
-license: GPL-3
-license-file: LICENSE
-build-type: Simple
-cabal-version: >= 1.10
-
-executable ibb
- main-is: Main.hs
- hs-source-dirs: .
- default-extensions: OverloadedStrings
- ghc-options: -Wall -threaded -rtsopts -with-rtsopts=-N
- other-modules:
- Influencers
- build-depends:
- base >= 4.6 && < 5
- , blaze-html
- , blaze-markup
- , bytestring
- , random
- , random-shuffle
- , scotty
- , shakespeare
- , text
- default-language: Haskell2010