daily log - daiyi/dev-diary GitHub Wiki

rgsoc daily log

week 8

2017/08/23 Wednesday

  • re-frame-trace
    • update PR for adding filters by selecting
      • refactor CSS hover state
    • open PR for showing event params in trace details
  • re-frame example application
    • add routing for filters
    • make style changes
    • learn about routing (bidi)

week 7

2017/08/14 Monday

  • focus on drawing lifecycle diagram for re-frame
    • read github issue about :async feature
    • read about Tasks, microtasks, queues and schedules
    • go through documentation: Dominoes 2 and 3 - Event Handlers and Domino 4 - Subscriptions
    • draw detailed overview of lifecycle to prepare for call with Daniel tomorrow

2017/08/16 Tuesday

  • two hour call with our mentor
    • going through the whole life cycle from dispatching events to rendering components
    • following through code internals of re-frame and reagent to understand how traces can be grouped by epochs
  • coaching with Dave
  • put up pull request for fixing rendering of correct operation names in traces
  • put up pull request for always keeping filter input to top of panel

2017/08/16 Wednesday

  • coaching with Jack
    • talk about general direction of rest of the project
    • shows us example PR that was small and well thought through, yet it took some time to understand its implications
      • lesson: keep PR small and break down big tasks to make incremental progress
    • work on re-frame example project
  • re-frame-trace
    • enable show/hide for trace details
    • open PR
  • organize notes from conversation with Daniel Compton yesterday

week 6

2017/08/07 Monday

  • send weekly review
  • goal for this week: contact people who have used re-frame more extensively and ask for meeting for lunch
    • show them the tracing tool and figure out what the needs of the developers are
  • read three re-frame guides on purely functional TV
    • The Re-frame Building Blocks Guide
    • A guide to the React Lifecycle Methods for Re-frame
    • Re-frame, a Visual Explanation

week 5

2017/07/31 Monday

  • work on re-frame trace's filter functionality
    • filter logic: refactor code from last week
    • UI: enable showing multiple filter items
      • fix issue of multiple item additions by removing saving on-blur
      • get it working to add and delete items
    • coaching with Martin:
      • add drop-down with filter types for each filter item
      • save correct query structure with all required attributes (id, query, filter-type)
  • read documentation
    • effectful handlers
  • work on blog post
  • format GitBook for documentation

2017/08/01 Tuesday

  • re-playground
    • work on issue#2: replace instruction link with info icon
  • coaching with Dave
    • big refactoring!
    • CSS, traces rendering, filter function
    • exchanging ideas about function naming and general approaches for refactoring code

2017/08/02 Wednesday

  • coaching with Jack
    • pairing on filter function: finishing steps!
    • discuss general approaches and patterns in functional languages
  • clean up notes from last week
  • last polishing touches for filter branch
    • parse input for duration correctly and show error when string as input
    • make buttons accessible
  • work on re-frame sample projects and read resources

2017/08/03 Thursday

  • figure out how to include npm modules into clojurescript projects
  • pull request to cljsjs documentation
  • practice with JS interop
  • add documentation to blog
  • reading about new features of ClojureScript (adding foreign dependencies)
  • rewrite reagent sample app to use re-frame instead
  • watch screencasts about re-frame to get deeper understanding of subscriptions and coeffects!
  • write blog post about goals for this summer

2017/08/04 Friday

  • coaching with Matt
    • going through the theory behind re-frame
    • understanding which parts influence what
    • discussing how re-frame-trace can be used -> what should the filter functionality provide?
      • do we want to be able to allow filtering for events that include one search term OR another?
    • debugging re-frame sample project: second pair of eyes was very much needed!
    • philosophical conversation about coding in general
  • continue working on sample re-frame project
    • getting to apply learned knowledge about subscriptions from yesterday
    • tricky because of nesting!
    • finish switch from reagent to re-frame
    • implement basic functionality of adding, removing, changing skill level and indicating upcoming and current pieces
  • adapting Gitbook for re-frame's documentation
  • schedule week ahead
  • work on example for re-frame playground

review

LAST WEEK

  • re-frame trace tool
    • finish working on rewriting filter functionality
    • change UI to single input fields
    • refactor filtering logic
  • continue learning about reagent and re-frame
    • go through concepts, read documentation and work through screencasts
  • re-frame sample projects
    • rewrite project from using reagent to re-frame
    • understand more about subscriptions
    • practice JS interop
  • wrote personal blog post about project and goals

THIS WEEK

  • talk to people who use re-frame and show them re-frame trace to get feedback for which functionality is most needed and understand what the problems are during development

week 4

2017/07/24 Monday

  • worked on the re-frame code demo page:
    • separated out pages for demos and instructions
    • cleaned up the landing page to show a blank editor and list of examples
  • started looking into re-frame-trace issues!
    • most urgently, try to get the trace panel to not pick up the styles of its host page, which can render it completely unreadable.
  • investigated options for css preprocessing in clojurescript

2017/07/25 Tuesday

  • weekly meeting with Daniel Compton
    • go through questions about re-playground and re-frame trace
  • organize notes from manual to digital form
  • re-playground
    • move the project to its final resting place within the Day8 org
    • add instruction modal
    • write re-frame template gist
    • add reagent color sorting to demos
    • general polishing
  • worked on issues for re-frame-trace!
    • make the panel only render once
    • worked on improving documentation about installation and setting up the project for dev
    • research making the CSS not inline
  • read one page of re-frame's documentation
  • send weekly review

2017/07/26 Wednesday

  • had an awesome coaching session with Jack this morning!
    • went through re-frame-trace's logic for filtering
    • learned about clojure compose, partials, and transducers!!
    • made some design decisions for handling multiple filters
    • went over how to implement better logic for filtering
  • cleaned up the styles for the trace panel, it's so readable now! <3
  • added logic to inject styles
  • researched how to make CSS note inline by injecting a string

2017/07/25 Thursday

review

THIS WEEK

  • apply for Clojure/conj grant

NEXT WEEK

PROBLEMS

QUESTIONS

week 3

2017/07/17 Monday

  • Saskia pair programmed with Dave
  • Chris looked at boot with Martin. Well it appears dirac works with boot (':
  • installed and played around with re-frisk and re-frame-trace

2017/07/18 Tuesday

  • weekly update with project Mentor
    • figure out exact requirements in order to finish editor project
    • talk about dirac and re-frame trace
  • coaching with Ezequiel
  • task of the day: work on live editor to fulfill missing requirements
    • implement loading code from gists
    • do styling and instructions
    • create example gist from re-frame simple example to link from documentation
    • start making a template gist
  • starting to look into re-frame trace to prepare for conversation with Daniel on Thursday

2017/07/19 Wednesday

  • coaching with Jack
    • start looking into re-frame-trace
    • trying to set it up for development -> not clear how to do it
    • pair-programming on sample reagent project
  • lunch with three of our coaches and people from Nextjournal
    • many interesting conversations about ClojureScript and pre-compiled dependencies (cljs-live!)
  • look more into re-frame-trace
  • start writing blog post

2017/07/20 Thursday

  • first day of EuroClojure Berlin
  • talks about
    • data science in Clojure
    • experience story about moving from Go to Clojure
    • collaborative web apps with ClojureScript
    • Clojure dependencies
    • artificial intelligence talks
  • taking notes to prepare blog post

2017/07/21 Friday

  • second day of EuroClojure Berlin
  • talks about
    • probabilistic programming in Clojure
    • distributed systems
    • using react native to launch iOS/android app
    • repl-driven development with unravel
    • generative programming
  • overall: so many great conversations and tons of inspiration!

week 2

2017/07/10 Monday

  • organizational things
    • schedule coaching times for the week
    • send out weekly review
    • make a learning schedule
  • set up basic project for an online CLJS editor
    • checkout similar projects
    • get to evaluate an expression that the user types in
  • watch final reagent screencast
  • coaching with Dave
    • conversation about good documentation
      • looking at different examples
      • understanding how re-frame's documentation can be improved specifically
    • dev environment
      • set up emacs configuration and run Clojure repl within emacs

2017/07/11 Tuesday

  • watch video by Maria Geller about the CLJS compiler
  • coaching with Martin
    • checkout klipse plugin
    • adjust it for our purpose
  • continue reading re-frame documentation
  • set up example re-frame project for experimentation

2017/07/12 Wednesday

  • coaching with Jack
    • discuss questions about workflow, REPLs and goal of our project
    • set up dirac for example project
    • code walkthrough of example re-frame project
  • pairing on reagent sample project
    • first achievements!

2017/07/13 Thursday

  • catching up on reagent screencasts
  • played around with reagent component libraries
  • super super super close to becoming one of the first humans we know to be successful dirac-devtools users. maybe tomorrow will be the day!
  • gained clarity on our project for the next couple weeks
  • set up re-frame playground project to demo re-frame projects on the internets, will work on this throughout the next week
  • drew a profile photo for saskia!

2017/07/14 Friday

  • met with our coach Matt in the morning! We went further in the discussion of the clojurescript compiler, getting more details on namespaces and classpath and macros and dependency bundling, and did some demos
  • ate vegan curry for lunch because we cooked too much the night before :D
  • pair programming on a re-frame app
  • writing up notes about clojurescript compiler into a blog post (:

Review

LAST WEEK

  • finish watching screencasts about reagent
  • pair program on sample reagent programs
  • get dirac to work in example project (except for REPL integration)
  • read re-frame documentation (application state, initial code walkthrough, mental model omnibus)
  • cljs editor
    • learn about CLJS compiler
    • set up example editor using Klipse
    • figure out benefits and drawbacks of using Klipse or cljs-live
THIS WEEK
  • work on steps to finish re-frame editor project
  • pair programm on sample projects
    • learn how to debug CLJS
  • go to EuroClojure!!

PROBLEMS

QUESTIONS

  • how do we set up dirac in leningen?
    • we got it working in boot (....but we don't understand how boot works)
    • how important is dirac? do we NEED to develop with dirac on the tracer?
  • after that, how do we set up the tracing tool with dirac? (the keybinding problem)
  • why is there a re-frame-trace and re-frame-tracer?
  • re-frame-trace:
    • what is the intended end-goal?
  • editor:
    • what is the intended end-goal
  • revisit timeline
    • what is our roadmap for the summer?

week 1

2017/07/03 Monday

chris:

  • researched clojure and clojurescript dev tools, began to install them
  • set up atom editor for clj(s) development (proto-repl, linting, ..)
  • learn about and write some reagent

Saskia:

  • set up or got familiar with CLJS and Dirac DevTools, re-frame-trace
  • Organize coaching times (doodle, email…)
  • Organize kick-off team call (doodle)
  • Having lunch with our supervisor
  • Learn about how reagent works and experiment with sample project

2017/07/04 Tuesday

Chris:

  • call with project mentor in the early morning
  • meet our second hosting company, Bitcrowd! their office is so excellent.
  • learned so much clojure! (yay atoms)
  • pair-programmed with saskia!
  • learned more reagent! wrote reagent working along with a sample project from [Lambda Island] screencasts (:
  • learned about using javascript within clojurescript
  • got proto-repl mostly workly on atom :’D took some time to learn some sweet shortcuts
  • ate a burger for America’s bday

Saskia:

  • First Weekly call with project mentor
  • getting to know our second hosting company
  • Putting together workflow for daily and weekly schedules
  • Fill in coaches profiles in Trello:
  • overview of availability and individual preferences
  • document most important things from call with our mentor
  • Install react browser extension
  • Watch react in CLJS screencasts
  • Work on calculator in react
  • create Wiki on Github
  • Organize Trello board for easier understanding

2017/07/05 Wednesday

chris:

  • try this solution for getting proto-repl working https://clojurescript.org/tools/atom
  • lots of emails and chasing down people to schedule weekly coaching meetings
  • first all-hands with all the coaches and supervisor!
  • learning about using javascript in clojurescript, try out in sample project
  • untangle my learning notebook!
  • struggled with figwheel........

saskia:

  • kick-off call with supervisor and coaches
  • write emails for coaching times
    • individual contact to all six coaches to figure out schedules
    • figured out meetings and preferences for everyone, yay!
  • start introduction blog post for official RGSoC blog
    • deadline tomorrow!
    • start collecting ideas and writing
  • organize knowledge base
    • create file structure that allows easy arrangement of knowledge
    • goal: collect everything we learn in our own Clojure Wiki!
  • watch Reagent screencast
    • understand basics of Reagent
    • play around with kanban example
    • understand what cursors are and how they work

2017/07/06 Thursday

chris:

  • finally figured out using figwheel from proto-repl from within atom. ;-;
  • and also set up dirac! after juggling around all my chrome installations
  • wrote rgsoc intro blog post, which took way longer than expected but it's done!
  • learning about component systems

saskia:

  • write introductory blog post for official RGSoC site -> open PR
  • finish setting up dev tools
    • get dirac to work, yay!
    • document tooling process
  • solve 4clojure #143 dot product
  • continue watching Reagent screencasts
  • research self-hosted CLJS

Review

GOALS

  • set up work environment
  • organize workflow and coaching schedules
  • get familiar with reagent and re-frame
  • start self-hosted CLJS project

THIS WEEK

  • setup of dev environment
  • organize workflow and coaching schedules
  • kick-off team call
  • write first official blog post
  • create Wiki on Github for gathering important information
  • learn how to use JS functionalities in CLJS
  • work through reagent videos and examples -> experiment!

NEXT WEEK

  • work on re-frame examples
    • checkout other projects
    • write small sample applications
  • re-frame online editor
    • start working on self-hosted CLJS project
    • goal until end of week: user can edit code and see a running example

PROBLEMS

QUESTIONS

OTHER INFOS

COACHING REQUESTS

Review

GOALS

THIS WEEK

NEXT WEEK

PROBLEMS

QUESTIONS

OTHER INFOS

COACHING REQUESTS