ddfreyne changed the topic of #nanoc to: 3.6.3 (apr 24th) | web http://nanoc.ws/ | repo http://bit.ly/XE6e3G | issues http://bit.ly/VfXaSV | forum http://ho.io/n-discuss | irclog http://irclog.whitequark.org/nanoc
pavelkunc has quit [Quit: Leaving.]
pavelkunc has joined #nanoc
pavelkunc has quit [Quit: Leaving.]
momolog has joined #nanoc
momolog has quit [Quit: momolog]
momolog has joined #nanoc
momolog has quit [Client Quit]
DarkUnknown has quit [Quit: DarkUnknown]
Rym has quit [Quit: Rym]
bghost has quit [Quit: leaving]
momolog has joined #nanoc
momolog has quit [Quit: momolog]
momolog has joined #nanoc
<guardian> o/
<ddfreyne> hai
<ddfreyne> Rules in nanoc 4.0 now uses globs, so you can say
<ddfreyne> compile '/assets/style/*.{sass,css}' do … end
<ddfreyne> :D
<guardian> are there globs or regex in disguise? ;)
<ddfreyne> What do you mean?
<ddfreyne> you can still use regular expressions if you want
<guardian> I was referring to people using strings instead of regular expressions in rules
<guardian> like compile '/foo|bar/'
<ddfreyne> guardian: They’re using File.fnmatch() under the hood
<ddfreyne> ahh
<ddfreyne> That was never really supported :(
<guardian> yeah I know
<ddfreyne> (more like accidentally)
<guardian> well it doens't arm much anyways
<ddfreyne> It won’t work in nanoc 4.0 in any case
<ddfreyne> guardian: nanoc 4.0 will have a Nanoc::Pattern class for doing matchings
<guardian> when do you envision nanoc 4.0 ready for the mass
<guardian> ?
<ddfreyne> guardian: No clue
<ddfreyne> guardian: I’ll release some nanoc 4.0a1 version in the next few months
<ddfreyne> It won’t be finished by far, but it’ll give a taste of what is to come
<guardian> ok
<ddfreyne> ↑ I suppose you could fairly easily create new ways of matching identifiers, although I don’t expect anyone will do that
<ddfreyne> nanoc 3.7: 15383 lines of code -- nanoc 4.0: 12517 lines of code
<ddfreyne> significant :)
<guardian> bobthecow: brew install inkscape
<guardian> bobthecow: HA! ;)
<guardian> should have waited to succeed though
momolog has quit [Quit: momolog]
<ddfreyne> Aargghh
<ddfreyne> nanoc requires cri, which requires the colored gem
<ddfreyne> nanoc requires coveralls, which requires the colorize gem
<ddfreyne> colored and colorize are incompatible and both override methods on String. Grrr!!!
webflo has joined #nanoc
webflo has quit [Read error: Connection reset by peer]
webflo has joined #nanoc
webflo1 has joined #nanoc
webflo has quit [Ping timeout: 246 seconds]
<guardian> ddfreyne: does the site need to be freshly compiled for show-data to report correct information?
<ddfreyne> guardian: no, but the outdatedness might be different before/after of course
<guardian> ok
ftigeot_ has joined #nanoc
ftigeot_ has left #nanoc [#nanoc]
webflo1 has quit [Quit: Leaving.]
webflo has joined #nanoc
webflo1 has joined #nanoc
webflo has quit [Ping timeout: 245 seconds]
Rym has joined #nanoc
webflo1 has quit [Quit: Leaving.]
momolog has joined #nanoc
momolog has quit [Quit: momolog]
momolog has joined #nanoc
momolog has quit [Quit: momolog]
webflo1 has joined #nanoc
webflo2 has joined #nanoc
webflo1 has quit [Ping timeout: 252 seconds]
webflo2 has quit [Quit: Leaving.]
<ddfreyne> guard-nanoc will be transferred to guard/guard-nanoc soon… woot!
momolog has joined #nanoc
momolog has quit [Quit: momolog]
<guardian> what does that change?
<guardian> for us
<VitamineD> updating your checkout
<VitamineD> nothing if you just use the gem, I think
<ddfreyne> guardian: Nothing really
<guardian> k
momolog has joined #nanoc
<ddfreyne> Man, packing is quite exhausting… and I am not nearly halfway
momolog has quit [Client Quit]
webflo1 has joined #nanoc
webflo1 has quit [Read error: Operation timed out]
webflo1 has joined #nanoc
<ddfreyne> Hurrah!
<bobthecow> :+1:
<ddfreyne> bobthecow: can you look at the pull request I assigned to you?
<ddfreyne> should be OK because I wrote it :)
<bobthecow> ddfreyne: which pull request?
<bobthecow> ahh. found it.
<bobthecow> i was looking at guard-nanoc :P
<ddfreyne> bobthecow: While you’re at it, can you also quickly review the diff for nanoc 4.0? https://github.com/nanoc/nanoc/compare/master...experimental-4.x It’s only a few hundred pages :D
<bobthecow> is that anything to be worried about?
<bobthecow> related to symbolize_keys or not?
<ddfreyne> bobthecow: Unrelated. It’s a test case for a bug that I can reproduce manually, but not in tests :/
<ddfreyne> I removed the test case… guard-nanoc is now recommended anyway
<bobthecow> gotcha.
<bobthecow> merged.
momolog has joined #nanoc
<bobthecow> i don't have time to look through 4.0 right now though. you've been working too hard :)
<bobthecow> does dropping support for 1.8 mean we can stop using hashrockets for options params?
momolog has quit [Client Quit]
<bobthecow> because that would be sweet.
<ddfreyne> bobthecow: I’m moving ahead at lightning speed :)
<ddfreyne> bobthecow: Yeah, I already started using the Ruby 1.9 syntax in some places
<ddfreyne> bobthecow: I haven’t rewritten the old code, and I’m not sure I ever will
<bobthecow> i've been using it in my own code for ages, so i have to switch modes when i'm doing something that maintains 1.8.x compatibility.
<ddfreyne> It’s nicer, in any case
<ddfreyne> bobthecow: stoneship.org in nanoc 4.0 currently looks like this: https://github.com/ddfreyne/stoneship-site/compare/nanoc-4.0
<ddfreyne> actually nm, that is outdated, but you get the idea
<bobthecow> yeah, i saw that earlier.
<ddfreyne> There’s a bunch of ugly hacks (the fnmatch one obviously)
<bobthecow> other than the File.fnmatch stuff, it looks good.
momolog has joined #nanoc
momolog has quit [Ping timeout: 256 seconds]
<ddfreyne> bobthecow: child-parent relationship with the path-like identifiers is a bit harder to understand… what should it behave like?
<ddfreyne> bobthecow: /articles/foo.md has parent(s) /articles.*
<ddfreyne> ?
<VitamineD> why not like dirname ?
<ddfreyne> Maybe there should be no explicit parent/child relationship, but rather allow finding items by manipulating identifiers
<ddfreyne> VitamineD: dirname of /articles/foo.md would be /articles, but /articles is probably not an item (it’ll be /articles.rhtml or so)
<VitamineD> what about basename ⇄ item
<ddfreyne> Not sure what you mean
<VitamineD> and all extensions are like mac os 9 resource forks
<VitamineD> if there is /articles/ then the directory contents define children
<VitamineD> if there is /articles.md and /articles.jpg then both are sections of the same item
<ddfreyne> VitamineD: but /articles/ will never be an item
<VitamineD> if you had only objects, you'd get a tree of items
<VitamineD> you're trying to find a serialization of that tree into the filesystem
<VitamineD> or rather, a way to interpret the FS as a tree of items
<VitamineD> just crazy thoughts
<VitamineD> my brain is depleted
<ddfreyne> It’s a tree where only the leaves are items
<ddfreyne> /articles/foo.md is an item, /articles is not
<ddfreyne> (It cannot be with the filesystem data source, because then you’d have a directory and a file with the same name)
<VitamineD> then you're missing an object for the non-leaf nodes
<ddfreyne> How would such an object help?
<VitamineD> also your statement is wrong
<VitamineD> if items have parents that are items, the parents are not leaves
<ddfreyne> VitamineD: Items can’t really have proper parents with the new path-like identifiers
<ddfreyne> Suppose I have a site with the following identifiers:
<ddfreyne> What should the parent of /articles/2013-blah.md be?
<ddfreyne> Intuitively you’d say /articles.rhtml, but what if also /articles.md exists?
<VitamineD> they are 2 "source-reps" of the same item
momolog has joined #nanoc
<ddfreyne> VitamineD: But they’re different items
<VitamineD> in that case, /articles is an item too
<ddfreyne> Why would it be? What would its content and attributes be?
<VitamineD> none, unless there is a convention for picking either the .rhtml or the .md as its content
<ddfreyne> Hmm, I don’t think that is how nanoc should work
<bobthecow> ddfreyne: i'm kinda leaning towards providing more powerful stuff for globbing and finding items, and dropping the parent/children relationship.
<VitamineD> me neither
momolog has quit [Client Quit]
<ddfreyne> bobthecow: yeah, I’m thinking in that direction as well
<VitamineD> there is alredy the convention that XXX.yaml is the metadata
<VitamineD> then XXX/ defines childrens
<ddfreyne> bobthecow: providing #head (first component), #tail (all but first component), #init (all but last) and #last (the last)
<bobthecow> VitamineD: but now it's foo.md.yaml
<VitamineD> and XXX.ext defines part of the content
<bobthecow> not just foo.yaml
<ddfreyne> bobthecow: so you could say item.identifier.init.without_ext.postfix('*') or something to match items below it
<bobthecow> ddfreyne: why not "dirname" or something pathy?
<bobthecow> init sounds weird.
<bobthecow> it's used as a constructor too many places for it to make sense.
<ddfreyne> Ah true… I’m thinking of the lispy thing :)
momolog has joined #nanoc
momolog has quit [Client Quit]
<VitamineD> it seems like it's not clear if items are a source thing or an intermediary thing or a result thing
<ddfreyne> VitamineD: items map directly onto filenames in content/
<VitamineD> well, not really
<ddfreyne> The identifier is now exactly the same as the filename (and I’m thinking of dropping the name “identifier” entirely)
<VitamineD> if /foo.md.yaml is an exception
<ddfreyne> True
<VitamineD> but in my mind I have item = blob of website content
<VitamineD> not item = source file
<bobthecow> they're one and the same for the filesystem data source.
<bobthecow> for custom data sources, they don't have to be.
<bobthecow> item = blob of content = source file.
momolog has joined #nanoc
momolog has quit [Quit: momolog]
momolog has joined #nanoc
<ddfreyne> So last week I find out somebody ripped off the nanoc.ws design and this week I find out somebody ripped off my master disseration
<ddfreyne> What’s next? :P
<darix> ddfreyne: your identity of course
<darix> someone will take over your life
<darix> ddfreyne: where did someone rip of your dissertation
<darix> ?
<ddfreyne> darix: A student from Ghent, and two of the promotors I had, I had too… which makes it really weird
<darix> ddfreyne: is yours and theirs public?
<ddfreyne> darix: yeah
<ddfreyne> But TBH I don’t care enough. My dissertation didn’t really provide anything new (because it’s an area that has had a lot of research already), but still… this guy’s thesis is way too similar to mine to be just a coincidence (and I am in the references)
<darix> let's hope he doesnt want to become a politician in germany
<darix> a few people already lost their positions due to plagiarism
<ddfreyne> He didn’t go to university but rather to vocational school, which is really low in Belgium (not to mention I think it does not make sense to have a vocational school for programming)… so I doubt he’ll get somewhere with that dissertation
<darix> just recently the minister for education
<darix> ddfreyne: well we also have vocational school for programming in germany.
<darix> tobias luettke wrote a nice posting about it
<ddfreyne> darix: Can you link me?
webflo has joined #nanoc
<darix> ddfreyne: and in many countries this kind of education seems to be missing
webflo1 has quit [Read error: Connection reset by peer]
<ddfreyne> darix: I think the vocational schools in Belgium are quite different… developers that come from a vocational school are really not that smart and have very little experience or knowledge
<ddfreyne> darix: I had to explain to a colleague what a hash function was
<darix> so not the split with real work + school as we have?
<ddfreyne> When I explained to her, she was amazed that I knew “all those things”
<ddfreyne> darix: no
<ddfreyne> So that’s one of the reasons why I am switching jobs… I want to be among competent people
<ddfreyne> It’s cool to be “better than the rest” (so to speak) but if there’s no challenge… screw it
<darix> but tbh you can get also people from universities who really suck at practical things
<ddfreyne> darix: Oh, I don’t disagree there. But the vocational school people aren’t worth much
<ddfreyne> They spend a month learning the concept of an array
<darix> hehe that's how i feel when playing lately. some people are just victims.
<ddfreyne> I had uni colleagues who said university was too hard. They went to a vocational school and dropped out because the level was so awfully low
<darix> hehe we actually have 2 places to study
<darix> (fach)hochschule and university
<darix> the first is a bit more pratically oriented
<ddfreyne> I loved the amount of theoretical knowledge I gained at university
<ddfreyne> Lots of mathematics (pretty hard at times, I have to admit)
<ddfreyne> Theoretical understanding of data structures and algorithms, being able to analyse them properly, knowing when to use one thing and when not to use another thing
<darix> i wished i paid more attention at the parser building stuff before dropping out :)
<ddfreyne> darix: I had a course on building compilers, and that was probably the best course I ever took
<ddfreyne> One of my friends was an assistant professor two years later, and he asked me to come over to help him prepare course material for the students. It was awesome :D
<darix> you are just as weird as stbuehler
<darix> :p
<ddfreyne> haha :)
<ddfreyne> darix: My friend kept telling me not to make the exercises so hard
<ddfreyne> darix: I started working on my own programming language and compiler right after university, but I never finished it. It’s really hard and you need a lot of time :(
<darix> i leave that excersise to people who are smarter than me
<darix> ^^
<VitamineD> you don't say :)
<ddfreyne> I also started working on a real-time strategy game… I quit ;)
<VitamineD> that said it's amazing what a handful of smart people can achieve in just a few years
<ddfreyne> I always need something to keep my mind challenged… a game and a programming language/compiler tends to do that.
<ddfreyne> But now I have nanoc, and that is challenging at times too :)
<darix> VitamineD: i follow ruby development a bit ... and maintain the package... from what i see there ... I am happy i only have to fix the build or do some backports every now and then
webflo1 has joined #nanoc
webflo has quit [Ping timeout: 252 seconds]
<ddfreyne> I’m off to sleep
<darix> ddfreyne: yeah cant wait until nanoc doesnt reprocess my images anymore!:p
<ddfreyne> 5 working days left :)
<darix> friday i will have a 24MP camera
<ddfreyne> darix: That’s on the planning, although I am not sure when I’ll get to that :)
<darix> go ddfreyne go
<ddfreyne> darix: I’m modifying nanoc 4 bit by bit
<ddfreyne> darix: Refactoring a lot, changing the architecture piece by piece
<darix> yeah i saw that
<ddfreyne> darix: Eventually I hope to end up in a situation where it’ll be trivial to optimise :)
<ddfreyne> But yeah, I’ll get to it some time :)
<ddfreyne> I should probably write a migration guide and keep it up-to-date
<ddfreyne> There’s already the NEWS file, but it is extremely terse
<darix> that would help for early adopters
<ddfreyne> darix: nanoc 4.0 won’t be finished anytime soon though
<ddfreyne> I might be working a lot on it right now, but that’s probably because I’m pretty pumped :P
<darix> ddfreyne: well you know there is no fun if you dont live on the edge^Wmaster
<ddfreyne> darix: master is boring. experimental-4.x is where it’s at!
<darix> nitpicking!;p
<ddfreyne> I should probably make master what is now experimental-4.x
<darix> yeah and have a 3.x stable branch
<ddfreyne> There is a release-3.6.x bugfix branch, but I guess there could be a release-3.x branch too
<darix> ah
<darix> well if you never plan to do 3.7
<darix> the 3.6.x branch is good too^^
<ddfreyne> I might do a 3.7
<darix> so it is germany vs germany in the champions league
<ddfreyne> https://github.com/posativ/acrylamid hmm, another static site generator
<ddfreyne> I like the name:
<ddfreyne> Why the name “Acrylamid”?
<ddfreyne> I'm studying bioinformatics and I was experimenting with Acrylamide at this time.
<ddfreyne> :D
<darix> ah python
<ddfreyne> I’m off to sleep (for real)
<ddfreyne> gnight!
<darix> nn
webflo1 has quit [Quit: Leaving.]
webflo has joined #nanoc
webflo has quit [Quit: Leaving.]
nano- has quit [Ping timeout: 276 seconds]