This page is not created by, affiliated with, or supported by Slack Technologies, Inc.
Any Windows users? I fixed the most obvious problems with Perun and Windows
@juhoteperi: :thumbsup::thumbsup::thumbsup::thumbsup:
@micha: Fileset doesn't keep metadata from previous watch runs?
https://github.com/hashobject/perun/pull/29/files Pods for reloading the clj code for each run.
I'll probably add a check to only use new pod when clj or cljc files have been changed, should make it lot faster when only changing css or posts.
Does anyone know Java syntax highlighters?
I found Jygments but looks like it is not published on mvn
Not sure. I think it would be easiest to transform the hiccup using postwalk on :code blocks.
But that might be hard with pods
I guess I could create hiccup in one task and transform it using another and write to file in third
For now I'll just use highlight.js, I might get back to this later, probably highlightjs doesn't work in RSS anyway
https://github.com/tailrecursion/boot-hoplon/blob/master/src/tailrecursion/boot_hoplon/pygments.clj
the cljs macro is here btw: https://github.com/tailrecursion/boot-hoplon/blob/master/src/tailrecursion/hoplon/markdown.clj#L56-L60
Hyphenation would also very cool to have on blog.
Pff, no need for JS
It can be done as build step
Some task should just insert ­ in the text and then browser can show the necessary hyphens.
It is a "soft-hyphen" it is not normally displayed
Then start looking what Java lib could be used to hyphenate the text
I guess some apache lib will do it
It doesn't indeed to be a pure hyphenation lib 😄
"Apacheâ„¢ FOP (Formatting Objects Processor) is a print formatter driven by XSL formatting objects (XSL-FO)" I have no idea what it is supposed to do
i was imagining a function in a pod that you can call, pass in a string and you get a string back with ­ in there
Where are the FOP Api docs
It is a shame that (afaik) cló code is not available: https://www.youtube.com/watch?v=824yVKUPFjU
Yeah that looks simple enough to implement in Clj
Just make clj-hyphenate
Do you want to convert the hyphenate.py to clj or should I do it?
Okay. I visited toilet so I have a great idea about the API 😄
I'm writing Clj/Cljs/JS/Bash/Python/C++/C/Php nowdays (this order)
Luckily I don't have to touch php maybe more often that once a year
In my experience quite lot of existing php stuff uses OOP heavily
It is possible to write functional code is python too
I wonder if it would be better to convert Hypnator.js algorithm, it would support multiple languages
90% of the 3000 lines code there would be unnecessary
reading the liang paper i'm wondering if a dictionary approach might be feasible with modern computing power
Wouldn't work in e.g. finnish
because there are around 1000 inflections for each word so dictionary would be very large
i mean if i look up a word in a finnish dictionary it doesn't have the syllables separated out?
Yeah but the dictionary would be impractically large
Voikko, the Finnish hyphenator and grammar checker implements the inflection rules etc.
I doubt it is perfect
For Finnish it uses Voikko
it uses that to generate some configuration for a more general purpose hyphenation engine, right?
I'm not sure. OO options lists multiple different hyphenators.
Probably simple rules work quite well for Finnish but e.g. compound words require that the algorithm understands loads of rules.
Sauna ->
@micha: Nouns have 15 inflections. But you can also make a verb: "saunoa" (go to sauna), and verbs have some hundreds of forms ( http://wiki.verbix.com/Verbs/AllFormsOfFinnishVerb#toc5) http://www.verbix.com/webverbix/Finnish/saunoa.html
anyone using boot on heroku? is this buildpack https://github.com/pandeiro/heroku-buildpack-boot/ way to go?
podviaznikov: another one i know of is here https://github.com/upworthy/heroku-buildpack-boot
Thanks @micha. Trying the one from upworthy now. Seems to work so far. The first one I posted doesn’t work and has few unmerged PRs.
perun + http://prismic.io
thanks @micha! perun has very small codebase because of boot which gives composition of tasks and filesystem model
looking into http://prismic.io demo
but it has a good admin interface with support for a professional style publication workflow
(i.e. you discover the current HEAD via a special URI, but everything from there on out is URIs pointing to immutable resources)
perun's decoupling of composable modules makes it easy for us to implement such a thing i bet
so it’s seems that http://prismic.io is similar to https://www.contentful.com/. There is metalsmisth plugin for contentful (https://github.com/contentful-labs/contentful-metalsmith) which pulls json data from API and passes to other tasks. Seems like totally doable with perun model
when you write you do it via a workflow that is completely decoupled from the api you use to retrieve resources
workflow, versioning and also pricing for prismic sounds really god. Going to investigate it more. It’s sounds like super useful tool. Also reading about CQRS now (http://martinfowler.com/bliki/CQRS.html)
the idea that the "shape" of writes can be completely decoupled from the shape of the data you read
Martin Fowlers’ blog is interesting (need to read more about topic). So you are saying that hoplon implementation can be described as CQRS? I see that separate blocks (blue) are responsible for storing data and also separate(red) for querying?
yes, I noticed that
the one part that is both is simply managing an async command that is really two separate things
the castra clientside library lets you define a rpc stub function, (castra/mkremote 'my.ns/foo {...})
that function might write to the database or do whatever it does, for side effects only
that query is over the database, it returns the state of the database after the command compeltes
the query-cell
, error-cell
and loading-cell
parameters we passed to mkremote
are javelin cells
if, however, the new value of the query-cell is different then updates will propagate to all formulas that reference that cell
with mvc you have controllers that push changes to different parts of the application as messages basically
so when the login rpc function is called by the widget, if login succeeds the user-data
cell will contain a map like {:login "micha" :name "Micha Niskin" :admin? false ...}
so i could have the login widget inside another widget, which removes itself when user-data
isn't nil
what's cool about this is that the different parts of the UI are synchronizing around cells that are completely separate from each other
the "stem cells" are basically formula cells whose values come from queries over the backend db
I think now I understand how hoplon works:) which is good because it means it’s approachable and model is not complex. I’d like to try it in some project. looking into demos now: http://tailrecursion.github.io/hoplon-demos/
the goal of hoplon is to make it possible to create libraries of custom elements that compose, and the designer assembles these into an application
compare to cursors in om or the way react apps need state to flow down through a tree from the root
behind the application itself are libraries of custom elements which can involve some pretty complex programming
a demo of the power of custom elements: http://tailrecursion.github.io/hoplon-demos/google-maps/
(google-map
:css {:height "600px"
:width "100%"
:margin "0 auto"
:border "1px solid red"}
::m/center san-francisco
::m/markers pins
::m/polygons polyline
::m/marker-click #(bounce-marker %2)
::m/marker-rightclick #(.log js/console %1 %2 %3 %4 %5)
::m/map-click #(.log js/console %1)
::m/map-rightclick #(do (.log js/console %2) false)
::m/fit-pins auto?
::m/opts opts
::m/layer-bicycling true)
going to try hoplon in the next side project for sure. Thanks for the intro and explanation of benefits