Hacker Newsnew | past | comments | ask | show | jobs | submit | achal's commentslogin

This is great! I'd love to see more wrappers like these for ffmpeg. Despite 5 years of using it, I can rarely run any ffmpeg commands without looking at StackOverflow. I wrote a similarly-inspired wrapper because of this as well, with a different subset of features, some of which rely on moviepy: https://github.com/achalddave/vid

Would be great if vdx learned more "common" ffmpeg features (creating a slideshow from a set of images, speeding up videos, simple drawing, etc.) while maintaining its simplicity!


There's the rub isn't it. There's a reason ffmpeg is so hard to use: it does so much. It does so much because efficient processing of media often requires you to do more than one thing in a single pass, or end up taking wayyy more resources than needed.

I'm still all for simpler frontends being available but there's going to be a limit of how many things can be covered before it is just as hard to use as ffmpeg.


My first reaction to this was that this was definitely less understandable, but I realized there were two pieces to this. One is banal - mapM_ and putStrLn are not near as simple as `for' and `print' (the latter have English meanings directly).

The second piece is interesting: Is something of the sort "<mapfn> <printfn> <list>" easier to explain to someone who's new to programming than "<foreach> <print>"? I've always thought the latter was easier to understand, but I'm curious which one someone who has no previous programming experience would grasp more immediately.


Right, I think that once the concept is taught of what mapM does/means it will be easier to keep applying than something like a foreach loop.

The reason being that "<mapfn> <somefn> <list>" is more declarative, whereas the foreach loop is ambiguous. Something we often take for granted is how hard it was at first to come up with what exactly we need to do or mutate inside that loop to build the right result.

If nothing else, there is interesting discussion to be had ;)


This is because of lexical issues. You can define aliases for mapM_ and putStrLn and get something more approachable to the lexically challenged.

repeat print ["foo"; "bar"; "etc"]


> 'a,'b

Between mark `a' and `b'

> g/fred

If the line contains the pattern Fred, execute the following command (s/dick/joe/igc)

> s/dick/joe/

Replace dick with joe

> /igc

i: Case insensitive

g: Replace multiple occurrences on the same line

c: Ask for confirmation on each substitution

I may be wrong about some detail, but I believe that's it.


You may have been on your initial commit; in that case, you need to use rm --cached instead of reset to undo a git add.


In case anyone else thinks they're insane, the two are the same. The second one should have been

    func main()
    {
    }


Oh thanks! Not sure how it got trashed.


Is this true? I checked and I seemed to have lost my history from before 2012, and assumed I'd messed up somewhere in transitioning between computers. I couldn't find any info about Firefox doing this (arbitrarily deleting history from the past), but I'm almost sure it does.

Edit: This time I found it: https://wiki.mozilla.org/Firefox/Projects/Places_async_expir...

I find it rather annoying, however, that this isn't obvious. I like keeping all my history :( I'd rather I could at least keep the history somewhere, even if it didn't stay in Firefox's history view.


Well, it's stored in a simple sqlite file (places.sqlite), so you can just do regular backups or import it into another DB.


Berkeley's also trying to expose more things via an API: https://developer.berkeley.edu/ (it was primitive last time I tried it, but still a nice initiative to prevent the scraping that most sites have to resort to right now)


Looks really interesting. I love Pandora and having seen this I realize I really want Pandora for video. Would be great to have more Pandora like features -- specifically, videos recommended based on likes/dislikes of other videos, and being able to view videos without any past information. You could do this, for example, by showing popular videos for people who haven't logged in, and then customizing from there.


it does that already... algorithm gets smarted over time... initially its mostly wisdom of crowd and could be a lot hit and miss....


Same question. I was using Raphael.js earlier and had to switch to svg.js for SVG specific features, and it's quite a nice library, though perhaps not as developed as Raphael in terms of documentation.

The only possible conflicting goal I can imagine is that one of svg.js' goals is to be as small as possible (e.g. generating an <ellipse> instead of a <circle> to increase code reuse between the circle and ellipse shapes[1]).

[1]: http://documentup.com/wout/svg.js#elements/circle


Thanks, the fact that it was so simple to make it do random things is great. Very fun.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: