[{"data":1,"prerenderedAt":466},["ShallowReactive",2],{"project-17449810":3},{"id":4,"name":5,"line":6,"line_source":7,"title":8,"url":9,"domain":10,"maker":11,"posted_at":12,"year":13,"points":14,"comments":15,"rank_in_year":16,"shown_in_year":17,"top":18,"tier":19,"category":20,"subcategory":21,"format":22,"keywords":23,"reception":28,"sentiment":29,"stance_mix":30,"scored_comments":35,"aspects":36,"strip":46,"post_text":47,"what":48,"said":78,"maker_in_thread":207,"shape":214,"grid":219,"attempts":428,"same_week":429,"maker_shows":42,"maker_hidden":458,"reader_version":459,"card":460},"17449810","Termtosvg","Record terminal sessions as SVG animations","title","Show HN: Termtosvg – Record terminal sessions as SVG animations","https:\u002F\u002Fgithub.com\u002Fnbedos\u002Ftermtosvg","github.com","nbe",1530623210,2018,767,79,9,2155,1,"legend","dev_tools","terminal recorder","cli",[21,24,25,26,27],"svg animation","asciinema alternative","terminal session","svg","curious",0.076,{"positive":31,"neutral":32,"mixed":33,"critical":34},11,23,3,8,45,{"performance":37,"execution":39,"idea":41,"design":43,"docs":45},{"positive":18,"critical":38},0,{"positive":18,"critical":40},5,{"positive":42,"critical":38},2,{"positive":44,"critical":42},4,{"positive":18,"critical":38},[40,38,38,33,33,38,38,38,38,38,38,38,33,33,33,33,33,40,40,40,33,18,38,38,18,18,18,33,33,40,18,33,40,38,33,33,33,40,40,33],null,{"problem":49,"audience":47,"pricing":47,"motivation":60,"time_to_build":47,"stack":65,"openness":77,"stage":77,"team_size":77},{"value":50,"source":51,"evidence":52},"Recording terminal sessions as small, crisp animations instead of GIFs or video","maker",[53,57],{"id":54,"by":55,"text":56},"17450241","fsiefken","Excellence! The README reads: \"I really like the clean look of SVG animations and I also wanted to see how this solution would hold out against other attempts at terminal…",{"id":58,"by":11,"text":59},"17451622","OP here. Sadly, SVG file size is not as small as I'd want it to be. The main problem is that a few attributes (x, y and lengthAdjust) have to be repeated on each text tag to…",{"value":61,"source":62,"evidence":63},"Likes the clean look of SVG animations and wanted to compare with asciinema","commenter",[64],{"id":54,"by":55,"text":56},[66],{"value":67,"source":62,"evidence":68},"Python",[69,73],{"id":70,"by":71,"text":72},"17452994","b0rsuk","I'm very impressed - it combines two of my favourite technologies, Python and SVG. Three, in fact - including terminal. I will be watching it and tinkering with it. It's written…",{"id":74,"by":75,"text":76},"17450289","nihil75","Amazing stuff. And in very readable Python!","unknown",{"praise":79,"objections":100,"requests":150,"questions":171,"alternatives":187},[80,95],{"value":81,"source":62,"evidence":82},"SVG output is far smaller than GIF and renders crisply with selectable text",[83,87,91],{"id":84,"by":85,"text":86},"17450259","transitivebs","Animated SVG animations (really just an svg element + animated css) are significantly smaller, more efficient, and crisper than equivalent GIF animations. I wrote about the…",{"id":88,"by":89,"text":90},"17450387","andrewla","This is great for many of the same reasons that asciinema is great -- smooth animation and selectable text. The resulting svg is orders of magnitude smaller than a gif would be.…",{"id":92,"by":93,"text":94},"17477771","Too","Asciinema is not gif. The text be zoomed in and is still super crisp and you can select the text.",{"value":96,"source":62,"evidence":97},"Readable Python code",[98,99],{"id":74,"by":75,"text":76},{"id":70,"by":71,"text":72},[101,115,129,143],{"value":102,"source":62,"evidence":103},"SVG animations do not work in Edge and Microsoft has no plans to support SMIL",[104,108,112],{"id":105,"by":106,"text":107},"17450630","chrismorgan","The primary casualty of using SVG animations is IE\u002FEdge support; SMIL is not currently planned:…",{"id":109,"by":110,"text":111},"17450809","foob","This is pretty awesome. I'm a big fan of both SVG animations and terminal recorders, so this is right up my alley. I previously built a small library called svganimator for…",{"id":113,"by":110,"text":114},"17451062","It is on UserVoice [1], and it has over two thousand votes there. They've marked that as \"sorry, no plans,\" and they've marked previous issues as \"by design\" [2]. They use Chrome…",{"value":116,"source":62,"evidence":117},"Animation fails to render correctly in some Safari builds",[118,122,125],{"id":119,"by":120,"text":121},"17450101","okket","The example animation looks broken in Safari (including Tech Preview 59), works in Chrome 67 (of course), and in Firefox 61. [Edit: This seems to be a macOS\u002Fdriver bug affecting…",{"id":123,"by":120,"text":124},"17450448","Right. It works on my 2013 MacBookPro, but the drawing looks incomplete\u002Fbroken on my 2015 Retina 5k iMac. Both run macOS 10.13.5.",{"id":126,"by":127,"text":128},"17450608","The_suffocated","It's broken on my 2014 MacBook Air with Safari 11.1.1. Works OK on Firefox and Chrome.",{"value":130,"source":62,"evidence":131},"No pause or scrub controls",[132,136,140],{"id":133,"by":134,"text":135},"17453108","dc443","This is super awesome, but will there ever be an ability to pause\u002Frewind\u002Fscrub?",{"id":137,"by":138,"text":139},"17453955","hutzlibu","It really should have a timelinecontrol ..",{"id":141,"by":11,"text":142},"17452747","Yes, there is no dependency on a specific player. The output is an SVG animation so you can modify it as you want. For example you could add a last frame with the logo of your…",{"value":144,"source":62,"evidence":145},"Terminal size is fixed at recording time, unlike asciinema",[146],{"id":147,"by":148,"text":149},"17456796","Pawamoy","Sadly, I will not replace asciinema+svg-term-cli by termtosvg, because termtosvg takes the terminal size into account when recording, not when rendering. It means that I have to…",[151,157,161],{"value":152,"source":62,"evidence":153},"Add pause, rewind and scrubbing controls",[154,155,156],{"id":88,"by":89,"text":90},{"id":133,"by":134,"text":135},{"id":141,"by":11,"text":142},{"value":158,"source":62,"evidence":159},"Reduce SVG file size",[160],{"id":58,"by":11,"text":59},{"value":162,"source":62,"evidence":163},"Fix virtualenv with system site packages",[164,168],{"id":165,"by":166,"text":167},"17452285","Demiurge","This is extremely cool, and will be useful. One bug I noticed is that it seems to break virtualenv which is made with --system-site-packages its not finding the modules",{"id":169,"by":11,"text":170},"17452778","Thanks! I will look into the virtualenv problem, but if you can spare the time could you please open an issue and include the exact steps to reproduce the error?…",[172,183],{"value":173,"source":62,"evidence":174},"What advantages does it have over asciinema",[175,179],{"id":176,"by":177,"text":178},"17452258","dethos","Cool. It is not very clear from the description so I will ask: What are the advantages over \"asciinema\"? At the moment I only see that it does not require a specific player…",{"id":180,"by":181,"text":182},"17450348","cirowrc","Thanks for putting your effort on this! It seems pretty great. Being an `asciinema + svg-term-cli` user myself, what are the arguments for moving to `termtosvg`? Thanks!",{"value":184,"source":62,"evidence":185},"How does it compare on file size",[186],{"id":54,"by":55,"text":56},[188,193,200],{"value":189,"source":62,"evidence":190},"asciinema with svg-term-cli",[191,192],{"id":84,"by":85,"text":86},{"id":147,"by":148,"text":149},{"value":194,"source":62,"evidence":195},"ttyrec",[196],{"id":197,"by":198,"text":199},"17455635","jquast","the timing information you want is what 'ttyrec' is for http:\u002F\u002Fderpi.tuwien.ac.at\u002Fcgi-bin\u002Fman\u002Fman2html?1+ttyrec",{"value":201,"source":62,"evidence":202},"Animated GIF",[203],{"id":204,"by":205,"text":206},"17450930","arendtio","A few weeks ago I tried to convert one of my asciinema recordings to a SVG with svg-term-cli [1], but the result had big problems with some browsers, so I took the more…",{"comments":44,"answered":42,"key":208},[209,210,213],{"id":58,"text":59},{"id":211,"text":212},"17452614","I'd rather stick to plain SVG for the animation part, in case ECMAScript is stripped from the SVG for security reasons. ECMAScript might be worth adding for additional features…",{"id":141,"text":142},{"commenters":215,"max_depth":216,"maker_replies":44,"first_comment_mins":217,"lifespan_hours":218},63,10,38,108,[220,222,226,229,232,233,235,239,243,247,250,253,256,258,260,262,264,267,270,273,276,279,282,284,287,290,294,296,299,303,307,308,310,311,313,314,318,322,325,326,327,330,332,335,337,339,342,344,346,349,352,353,354,357,359,362,364,365,369,372,375,378,379,382,385,386,389,391,394,398,402,404,407,408,411,415,417,420,424],[109,38,40,221,110,38],"project\u002Fpositive\u002Fnone",[223,38,38,224,225,38],"17450831","commenter\u002Fneutral\u002Fnone","d_",[227,38,38,224,228,38],"17450955","WorldMaker",[230,38,38,224,231,38],"17450997","laurent123456",[113,38,38,224,110,38],[234,38,38,224,228,38],"17452219",[236,38,33,237,238,38],"17451441","project\u002Fneutral\u002Fperformance","tambourine_man",[240,38,33,241,242,38],"17451143","project\u002Fneutral\u002Fnone","OskarS",[244,38,38,245,246,38],"17451635","other\u002Fneutral\u002Fnone","amelius",[248,38,38,245,249,38],"17452164","bufferoverflow",[251,38,38,245,252,38],"17452429","fullstackchris",[254,38,38,245,255,38],"17452749","kbenson",[257,38,38,224,246,38],"17452809",[259,38,38,245,255,38],"17452910",[261,38,38,224,246,38],"17452955",[263,38,38,224,255,38],"17453028",[265,38,38,245,266,38],"17481528","Rondom",[268,38,38,245,269,38],"17452807","drb91",[271,38,38,245,272,38],"17456211","leni536",[274,38,38,224,275,38],"17453394","wilg",[277,38,38,224,278,38],"17463672","thecrazyone",[280,38,38,224,281,38],"17453737","chrisseaton",[58,38,38,283,11,18],"maker\u002Fneutral\u002Fperformance",[285,38,33,237,286,38],"17452139","bonyt",[288,38,33,237,289,38],"17452203","wes-k",[291,38,33,292,293,38],"17452247","project\u002Fneutral\u002Fexecution","fla",[211,38,38,295,11,18],"maker\u002Fneutral\u002Fnone",[297,38,33,237,298,38],"17454255","ramses0",[300,38,33,301,302,38],"17456329","maker\u002Fneutral\u002Fexecution","kirjavascript",[304,38,33,305,306,38],"17453244","project\u002Fneutral\u002Fidea","e12e",[197,38,33,241,198,38],[309,38,38,245,148,38],"17456775",[54,18,33,283,55,38],[84,18,40,312,85,38],"project\u002Fpositive\u002Fperformance",[180,18,33,305,181,38],[315,18,40,316,317,38],"17450380","project\u002Fpositive\u002Fdesign","Already__Taken",[319,18,33,320,321,38],"17450531","project\u002Fneutral\u002Fdesign","SmallDeadGuy",[323,18,40,316,324,38],"17454088","the8472",[92,18,40,316,93,38],[88,42,33,320,89,38],[328,42,33,320,329,38],"17450429","djsumdog",[105,33,18,331,106,38],"project\u002Fcritical\u002Fnone",[333,33,38,245,334,38],"17451014","swebs",[336,33,38,245,138,38],"17453941",[338,33,38,245,334,38],"17456835",[340,33,38,245,341,38],"17472734","chatmasta",[343,33,38,245,106,38],"17457206",[119,44,18,345,120,38],"project\u002Fcritical\u002Fexecution",[347,44,33,292,348,38],"17450372","cnlwsu",[350,44,33,292,351,38],"17450391","AndrewStephens",[123,44,18,345,120,38],[126,44,18,345,127,38],[355,44,18,345,356,38],"17451428","skykooler",[147,40,18,358,148,38],"project\u002Fcritical\u002Fdesign",[70,360,40,361,71,38],6,"project\u002Fpositive\u002Fdocs",[176,363,33,305,177,38],7,[141,363,38,295,11,18],[366,363,40,367,368,38],"17452753","project\u002Fpositive\u002Fidea","4684499",[370,34,38,245,371,38],"17450424","dpflan",[373,34,33,305,374,38],"17450593","joombaga",[376,34,18,358,377,38],"17453033","nomel",[137,34,33,320,138,38],[380,34,38,245,381,38],"17455842","mikekchar",[383,34,40,367,384,38],"17456524","Fnoord",[204,16,33,292,205,38],[387,216,38,245,388,38],"17453798","77pt77",[390,216,38,245,138,38],"17453933",[392,216,38,224,393,38],"17454760","canada_dry",[395,31,33,396,397,38],"17450674","project\u002Fmixed\u002Fperformance","abhiminator",[399,400,33,305,401,38],"17461107",12,"m3tr0s",[403,400,33,305,401,38],"17461112",[165,405,33,406,166,38],13,"project\u002Fmixed\u002Fexecution",[169,405,38,295,11,18],[74,409,40,410,75,38],14,"project\u002Fpositive\u002Fexecution",[412,413,33,406,414,38],"17450233",15,"michaelmior",[133,416,40,316,134,38],16,[418,416,33,320,419,38],"17453257","vanderZwan",[421,422,18,345,423,38],"17453111",17,"eltoozero",[425,426,40,221,427,38],"17461901",18,"jscoder99",[],[430,435,440,444,449,453],{"id":431,"name":432,"points":433,"category":434},"17430397","GCSF",374,"infrastructure",{"id":436,"name":437,"points":438,"category":439},"17425278","The Program",162,"creative",{"id":441,"name":442,"points":443,"category":439},"17414961","Shotsnapp",146,{"id":445,"name":446,"points":447,"category":448},"17450974","GraphCMS",115,"web_saas",{"id":450,"name":451,"points":452,"category":20},"17456720","Snibox",84,{"id":454,"name":455,"points":456,"category":457},"17456176","Gurn",80,"productivity",false,"v2",{"id":461,"name":5,"line":6,"ai":458,"cat":20,"year":13,"points":14,"comments":15,"rec":28,"s":462,"top":18,"kw":463,"maker":11,"domain":10,"tier":19,"attempts":38,"strip":464,"url":9,"mix":465,"praise":81,"objection":102,"sub":21},17449810,0.08,[21,24,25,26,27],"5003300000003333355531001113351350333553",[31,32,33,34],1793990976267]