Monday, May 2, 2016

April 2016 1HaskellADay Problem and Solutions

April 2016

Thursday, April 7, 2016

March 2016 1HaskellADay 1Liners

One-liners
  • March 29th, 2016: You have a list, Show a => [a], of known-length n, n > 100 Show the first three and the last three elements of that list
  • March 28th, 2016: You have f :: c -> d and g :: a -> b -> c
    define (<<-) such that f <<- g is f (g a b)
    Does it exist already (in the Prelude, maybe)?
  • March 26th, 2016: insert1 :: Ord k => k -> a -> Map k [a] -> Map k [a] define, points-free, efficiently. (hint: it's not insertWith)
  • March 26th, 2016: sqDist :: Fractional ä => [ä] -> [ä] -> ä sqDist v1 v2 = sum (zipWith (\a b -> (a - b) ^2) v1 v2) Point-free-itize sqDist (and λ)
  • March 17th, 2016: for f :: (a -> b) -> (a, a) -> (b, b) define f
    • obadz @obadzz f = join bimap
  • March 17th, 2016: removeAll :: Eq a => a -> [a] -> [a]; define
    e.g.: removeAll '"' "(\"S312\", \"S204\")" ~> "(S312, S204)"
    • obadz @obadzz removeAll = filter . (/=)
    • Gautier DI FOLCO @gautier_difolco ... same
  • March 17th, 2016:
    f, g :: (String, String) -> String
    let ab = ("a", "b")
    f ab ~> "(\"a\", b)"
    g ab ~> "(a, \"b\")"
    define h that generalizes f and g
    • Gautier DI FOLCO @gautier_difolco
      cp x y (a,b) = concat ["(", x a, ",", y b, ")"]
      f,g :: (String, String) -> String
      g = cp id show
      f = cp show id

Thursday, March 31, 2016

March 2016 1HaskellADay Problems and Solutions


  • March 31st, 2016: Today's #haskell problem is ♫ alone again, naturally 🎶 http://lpaste.net/7837739029373124608 ... but it likes it that way #introverproblems 
    And the #haskell relinker-app is now integrated into the Top5s security scraper! http://lpaste.net/4419083329639284736 TA-DAH! 

  • March 30th, 2016: Today's #haskell problem we look at what ... well: 'today' means in a #graph DaaS http://lpaste.net/2053260260323360768 
    The #haskell solution gets you 'today' as a complete packagehttp://lpaste.net/5049502168399216640
  • March 29th, 2016: For today's #haskell problem we look to reify prior-trading-day knowledge as relations http://lpaste.net/677389378498068480 Enhanced inter-day #trading analytics in #haskell on a #graph DaaS http://lpaste.net/1926020591458975744 (... in 6 lines of code.) 
  • March 25th, 2016: For today's #haskell problem we take the score cards we've created from the #graph DaaS endpoint and cluster them http://lpaste.net/5690415111206862848 The #solution gives us K-means clustering of score cards! YAY! http://lpaste.net/3576182129349885952
  • March 24th, 2016: For today's #haskell problem we load our gap analyses into ScoreCards http://lpaste.net/6485373940918124544 eventually for clustering using K-means. And today's #haskell solution we get ScoreCards from CSV file and from the #graph DaaS endpoint http://lpaste.net/1163865820011429888
  • March 23rd, 2016: Sing with me: ♫ Fall into the Gap 🎶 ... report http://lpaste.net/3030808839961182208 for today's #haskell problem It took a 'little bit' of work but today's #haskell solution gives us a 'little bit' of meta-datahttp://lpaste.net/7280141726189092864
  • March 22nd, 2016: For today's #haskell problem we convert the JSON graph result into haskell structures http://lpaste.net/4829558181661245440 LOLNEAT! Today's #haskell solution gives us a working dataset from a #graph DaaS endpoint http://lpaste.net/7874827506493161472 Now, let's git bizzy!
  • March 21st, 2016: For this week's set of #haskell problems we're going to go against a #graph #database running on AWS! YIPPEE! http://lpaste.net/7339795115373756416 Okay, String returned from AWS DaaS #graph as today's #haskell solution http://lpaste.net/6813513488191717376 Tomorrow we'll look at parsing the JSON.
  • March 16th, 2016: So, you've heard of this thing called a 'compiler,' right? For today's #haskell problem we're building a REcompiler! http://lpaste.net/8413387732209893376 Three #1Liner and an output file 1/3 the size later we have today's #haskell solution to the recompiler http://lpaste.net/4638823060617560064
  • March 15th, 2016: For today's #Haskell problem we're warned to Beware the Ides of SymbolTables http://lpaste.net/6108657252669849600 ... but do we listen? Nooo! *stab-stab! So today's #haskell solution gives us a new static symbol-tablehttp://lpaste.net/4932809508989698048 That's great. The Show and Read definitions, though?
  • March 14th, 2016: Today, we transform the superabundantly quoted mess@neo4j gives us as a CSV export into ... well: CSV http://lpaste.net/7793465205110865920 Okay, today's #haskell solution... did that, but we're missing some stock symbols http://lpaste.net/4928100283508064256 ... we'll look at that 'tomorrow.'
  • March 11th, 2016: I hate the stodgy internet at work. Today's #haskell problem is to improve ScoreCard data type to use Ix-constrained values http://lpaste.net/4278240752024158208 And today's #haskell solution gives us indices for the Array-god http://lpaste.net/7322735479504240640
  • March 9th, 2016: Today's #Haskell problem we're going to take it easy: just write a compiler, is all http://lpaste.net/5530458314216833024 😎 Today's #haskell solution: Compiler: get http://lpaste.net/7970896540401139712 I didn't ask for this in the problem statement, but I also gave a Read-instance for types extracted via SymbolTable.
  • March 8th, 2016: For today's #haskell problem we are looking for securities with similar max-gaps in Markets top5s appearances http://lpaste.net/4656681160972173312 Today's #haskell solution was a stop-gap measure for $NFLX http://lpaste.net/233537231812296704 ... eheh. 
  • March 7th, 2016: Today's #Haskell problem we look for scatterings of Afr- I MEANT $NFLX! in a sparse data set http://lpaste.net/5892060591643688960 
    Today's #haskell solution shows stocks with like-appearances to $NFLX on the Markets top 5s http://lpaste.net/5252814791931592704 
  • March 4th, 2016: 'Wuz gunna' do SPARQL query dump analysis but what is the SPARQL query? URL-UN-encoding http://lpaste.net/268889253654560768 for today's #haskell problem Today's #haskell solution shows 'punkin' is 'bettah' than RDF. http://lpaste.net/5388171163006402560 Funny, that: the universal quantifier works, too.
  • March 3rd, 2016: Now, for something completely different for today's #haskell problem, parsing XML document of the US States with HXThttp://lpaste.net/6918752874277109760 "Parsing XML is Easy!" says @geophf for today's #haskell solution http://lpaste.net/4360598558106189824 Yeah, but is parsing CSV easier? @geophf Yeah, but ...
  • March 2nd, 2016: UN-JSON-ifying that JSON, baybee! is on the menu for today's #haskell problem http://lpaste.net/2940797818769506304 ('UN-JSON-ifying' is a word now) How many FromJSON instances was that? Dat iz one hella hint! in today's #haskell solution http://lpaste.net/7363580708683513856
  • March 1st, 2016: Okay, it's not all tea and crumpets coding in #haskell. But I wish it were. Today's #haskell problem: http://lpaste.net/6471988009620209664 avoiding RDF. Today's #haskell solution showed me a fundamental truth: 1 HTTPS call is faster than 50 of them. http://lpaste.net/7390063266577252352

Thursday, March 17, 2016

February 2016: Haskell 1Liners

One-liners
  • February 11th, 2015: rewrite
    \n -> mapM f (replicate 10 n)
    using replicateM instead
    where f :: Monad m => Int -> m a
    • Gautier DI FOLCO @gautier_difolco replicateM 10 . f

Monday, February 29, 2016

February 2016 1HaskellADay Problems and Solutions

February 2016

  • February 29th, 2016: For today's #LeapDay #haskell problem, @geophf asks for your (π) deets! courtesy of @OnThisDayinMath http://lpaste.net/8336236749340540928 Today's #haskell solution *Main> last10idx (take 1000000 π) ~> 999699 http://lpaste.net/6200187768866340864 @OnThisDayinMath 
  • February 26th, 2016: Doing some geo-plotting with #Wikidata for today's (coming up) #haskell problem http://lpaste.net/7869134501572509696 ... and we extracted State capitol lat/longs from #wikidata with this #haskell solution http://lpaste.net/2256342570529456128 
  • February 25th, 2016: A little bit of parsing wikidata from a US State/Capitol SPARQL query for today's #haskell problem http://lpaste.net/7506043738804715520 Got SPARQL-y, and today's #haskell solution gets you State capitol data ... in #haskell! (Did I mention #haskell?) http://lpaste.net/1147233748136230912
  • February 24th, 2016: Yesterday we sliced, sliced, baby! For today's #haskell problem, we get all dicy wid it! http://lpaste.net/4683779741730209792 converting triples to acids You get a protein, and YOU get a protein, and EVERYBODY GETS A PROTEIN in today's #haskell solution http://lpaste.net/4088917949371383808
  • February 23rd, 2016: Today's #Haskell problem has us singing "Splice, Splice, baby!" http://lpaste.net/4813324790125297664  
    And the #haskell solution uses Comonads to chunk the input gene sequence to nucleotide triples http://lpaste.net/306850901920841728
  • February 22nd, 2016: This week we'll look at gene sequencing. Today's #haskell problem we'll create a bi-directionally mapped CODON tablehttp://lpaste.net/5133590580013563904 And the #haskell solution tabled that CODONs! http://lpaste.net/6015179222207692800 improving the original along the way.
  • February 19th, 2016: For today's #haskell problem, we deliver our customer the product: codes and, well: codes for their reports. YAY! http://lpaste.net/6281519086354563072 Annnnnnnnnddddd the file of TWENTY-ONE THOUSAND NINE HUNDRED CODES! http://lpaste.net/8746184321112473600 
  • February 17th, 2016: Today's #haskell problem gives ONE MILLION codes to the reports-god ... *ahem* I MEANT reports-GENERATOR! http://lpaste.net/4707338728270462976 ... And the solution:
    Dr. Evil: ONE MILLION CODES!
    Mr. NumberTwo: Sorry, sir, it's only 21900 codes.
    http://lpaste.net/5798834052991549440
    Dr. Evil: ... 
  • February 16th, 2016: Today's #haskell problem has us parsing MORE! This time regional offices and business units http://lpaste.net/7840815037705879552 And we have our Regional offices and business unitshttp://lpaste.net/6948226477460553728 as a #graph and as a #haskell module 
  • February 15th, 2016: This week we'll be looking at accounting and generating reports! Because YAY! Today's #haskell problem: parsing foodhttp://lpaste.net/5434234717320773632 Foods: Parsed (but hopefully not eaten. YUCK!), Snark: captured, Chart: pie-d ... HUH?!?http://lpaste.net/2151340485682135040 
  • February 12th, 2016: Today's #Haskell problem generalizes random strings to sequences of enumerated values http://lpaste.net/2086566589242540032, specifically Gene sequences Today's #haskell solution surely gives us a lot of nucleotides to consider! http://lpaste.net/2201413576650915840
  • February 11th, 2016: Writing random strings for today's #haskell problem http://lpaste.net/3636386820536664064 because that's every coder's dream-project. Today's #haskell solution does some stats on the generated random strings http://lpaste.net/652044497311498240
  • February 10th, 2016: You generate a set of 'random' numbers. The next set is very similar ... let's fix that for today's #haskell problem http://lpaste.net/4512472853710372864 Today's #haskell solution made rnd more rnd, because reasons http://lpaste.net/6036010844385443840
  • February 9th, 2016: We learn the past tense of the verb 'to see' is 'See(d),' 'saw(ed),' or 'sowed' http://lpaste.net/4776920810533158912 and we generate some random numbers. ICYMI that was the announcement for today's #haskell problem: it's a Big Generator. Yes. It is. (*groan Okay, I'll stop) (NEVER!)
    The #haskell solution has us
    shiftR to the Right ...
    movin' to the Left ...
    we are the voices of the
    Big Generator! http://lpaste.net/879893392832593920
  • February 8th, 2016: Creating a random seed from POSIX time for today's #haskell problem http://lpaste.net/2781359140864262144 En-split-ified POSIX time http://lpaste.net/8844075898622705664
  • February 5th, 2016: We tackle an Amino Acid CODON table for today's #haskell problem http://lpaste.net/6606149825735950336 suggested by a GATTACA-tweet by @randal_olson The Amino Acid table as a #graph #haskell-solution http://lpaste.net/9122099753146908672

  • February 4th, 2016: Today's #haskell problem has us create the cal (not Ripken) app http://lpaste.net/846188289084882944 Today's #haskell solution has us Rikpenin' dat Cal! http://lpaste.net/8386114973348134912
  • February 3rd, 2016: The Days of Our Lives (or at least of the year) for today's #haskell problem http://lpaste.net/6997792822417948672 These were the best days of our lives! / Back in the Summer of '69! http://lpaste.net/6823202028173393920
  • February 2nd, 2016: Dates and Days for today's #haskell problem http://lpaste.net/1501657254015795200 Date nuts and Grape nuts! ... no ... wait. http://lpaste.net/3546538887843151872
  • February 1st, 2016: Happy February, everyone! Today's #haskell problem: arrows, monads, comonads! http://lpaste.net/3387588436050313216

Thursday, February 11, 2016

January 2016 Haskell One-liners

  • January 26th, 2016: define line2Bio so that
    *Main> line2Bio "Birches by Robert Frost" ~> ("Birches","Robert Frost")
    (in 1 line)
    • Gautier DI FOLCO @gautier_difolco
      import Data.Bifunctor
      line2Bio = bimap unwords (unwords . tail) . break (== "by") . words
    • matthieu bulté @matthieubulte
      line2Bio = on bimap (unwords .) id tail . break (== "by") . words
  • January 26th, 2016: define swap points-free:
    swap :: (a,b) -> (b, a)
    • matthieu bulté @matthieubulte
      swap = uncurry (flip (,))
    • Noah Luck Easterly @walkstherain
      uncurry $ flip (,)
    • Андреев Кирилл @nonaem00
      import Control.Arrow
      swap = snd &&& fst

Thursday, February 4, 2016

Graphing with Goats

Slides, presented comme ça! Links at the end. Presentation posted on youtube of the meetup.



1


2


3 (I am known for teh kittehs)


4 (graphs-я-borin' is another talk I gave at SanFran GraphConnect 2015)


5. The Beach (not Plastic)


6


7


8. ACID means something very important to DBMSes(eses)(eses)


9. neo4j Graph of Amino Acids (data table, Haskell code)


(geddit? links to linkurio.us? geddit?)


11. "sed-butt, sed-butt, sed-butt" my daughters chant around the house all day

Now: Graph-applications:


12. Social Media


13. The Markets


14. The Markets (again) / Managing Complexity


15. Search / (Fraud) Detection


16. Scoping / (Requirements) Analysis


17. Clustering


18. Errybody say: "YAAAAAAYYYYYY!"


19. Links, en-text-ified:

20. Buh-bay!