[{"data":1,"prerenderedAt":362},["ShallowReactive",2],{"project-18593015":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":29,"sentiment":30,"stance_mix":31,"scored_comments":36,"aspects":37,"strip":43,"post_text":45,"what":46,"said":84,"maker_in_thread":175,"shape":184,"grid":189,"attempts":324,"same_week":325,"maker_shows":187,"maker_hidden":354,"reader_version":355,"card":356},"18593015","McFly","A smart Bash history search CLI in Rust with a neural network","title","Show HN: McFly, a smart Bash history search CLI in Rust with a neural network","https:\u002F\u002Fgithub.com\u002Fcantino\u002Fmcfly","github.com","tectonic",1543871298,2018,130,56,324,2155,16,"notable","dev_tools","shell history search","cli",[24,25,26,27,28],"bash history search","ctrl+r replacement","shell history","rust cli","neural network","curious",0.156,{"positive":32,"neutral":33,"mixed":34,"critical":35},5,10,1,2,18,{"idea":38,"execution":39,"design":41,"privacy":42},{"positive":35,"critical":34},{"positive":34,"critical":40},0,{"positive":40,"critical":40},{"positive":40,"critical":34},[40,40,40,40,40,40,40,40,40,40,40,34,44,44,32,40,44,44,40,44,44,40,44,40,40,40,44,32,32,44,40,44,40,34,40,32,40,32,40,44],3,null,{"problem":47,"audience":45,"pricing":45,"motivation":62,"time_to_build":45,"stack":72,"openness":83,"stage":83,"team_size":83},{"value":48,"source":49,"evidence":50},"Finding previously run shell commands quickly in history","inferred",[51,55,59],{"id":52,"by":53,"text":54},"18596577","Wowfunhappy","TIL I can use ctrl+R to search bash history! This is going to save me a lot of time going forward!",{"id":56,"by":57,"text":58},"18594231","xxpor","How does this compare with fzf?",{"id":60,"by":11,"text":61},"18594460","I think fzf is just for finding files?",{"value":63,"source":64,"evidence":65},"Maker's first Rust project; ranking history commands with a learned model","maker",[66,69],{"id":67,"by":11,"text":68},"18593153","Also, my first Rust project!",{"id":70,"by":11,"text":71},"18594644","I found that the neural network does a little better than a simple linear regression function for weighting the parameters. I train it on a few months of my own shell history to…",[73,79],{"value":74,"source":64,"evidence":75},"Rust",[76],{"id":77,"by":11,"text":78},"18594457","Thanks! It is written in Rust. It's a very simple NN with one hidden layer and back propagation.",{"value":80,"source":64,"evidence":81},"Neural network with one hidden layer trained by backpropagation",[82],{"id":77,"by":11,"text":78},"unknown",{"praise":85,"objections":105,"requests":117,"questions":139,"alternatives":151},[86,98],{"value":87,"source":88,"evidence":89},"Well executed and useful CLI","commenter",[90,94],{"id":91,"by":92,"text":93},"18701667","president","Cool project and well executed. My only complaints are: 1. The GUI should display at the bottom of the screen rather than at the top. I found myself constantly having to jump my…",{"id":95,"by":96,"text":97},"18595859","tinchox5","It's fantastic and very useful! Good work!!",{"value":99,"source":88,"evidence":100},"Good example of Rust for CLIs",[101],{"id":102,"by":103,"text":104},"18594214","bhargav_","This is such a cool project! Plus a pretty awesome example of using Rust for CLI's. I'm curious about the neural network though. Is that also written in Rust? Or are you…",[106,113],{"value":107,"source":88,"evidence":108},"Neural network unnecessary; simpler history tools already work well",[109],{"id":110,"by":111,"text":112},"18597968","rane","For zsh, zaw[1]'s history is insanely useful. I don't really think a neural network is needed. Usually I get to the exact line I wanted with a few keystrokes. [1]:…",{"value":114,"source":88,"evidence":115},"GUI results shown at top of screen rather than near the command",[116],{"id":91,"by":92,"text":93},[118,129,133],{"value":119,"source":88,"evidence":120},"Support for other shells such as fish",[121,125],{"id":122,"by":123,"text":124},"18595062","fenrisbear","Would it be much work to make this work with other shells? Personally I use fish, and would love to give this a spin with fzf.",{"id":126,"by":127,"text":128},"18595980","qwerty456127","Same thing.",{"value":130,"source":88,"evidence":131},"Show full commands in results without truncation",[132],{"id":91,"by":92,"text":93},{"value":134,"source":64,"evidence":135},"Online learning that updates weights as you use it",[136],{"id":137,"by":11,"text":138},"18596670","Good question. At the moment it's static. I plan to make it do online learning at some point where it updates the weights as you use it.",[140,144],{"value":141,"source":88,"evidence":142},"How does it compare with fzf?",[143],{"id":56,"by":57,"text":58},{"value":145,"source":88,"evidence":146},"Does it constantly adapt to user history?",[147],{"id":148,"by":149,"text":150},"18596138","gojomo","Nifty! Is the neural network constantly being adjusted from the user's own patterns of history re-use? This also reminds me of one of my dream features for a shell: full dataflow…",[152,160,164],{"value":153,"source":88,"evidence":154},"fzf",[155,156],{"id":56,"by":57,"text":58},{"id":157,"by":158,"text":159},"18594546","chongli","No, fzf is highly extensible. It can be used for files, grep, RG, git grep, bash history, and tons more.",{"value":161,"source":88,"evidence":162},"zaw for zsh",[163],{"id":110,"by":111,"text":112},{"value":165,"source":88,"evidence":166},"Readline history-search-backward bindings",[167,171],{"id":168,"by":169,"text":170},"18598565","asicsp","I rarely use ctrl+r, because most of the time I'm searching based on command name, which is at the start (unless it is in pipeline, etc).. so, I use this instead in `.inputrc`:…",{"id":172,"by":173,"text":174},"18598600","0db532a0","This is actually a general feature of the GNU readline library, which a lot of programmes including bash use. For instance, a lot of REPLs like ghci use it.…",{"comments":176,"answered":177,"key":178},17,12,[179,182,183],{"id":180,"text":181},"18595147","It shouldn't be too hard if someone wants to work on it. https:\u002F\u002Fgithub.com\u002Fcantino\u002Fmcfly\u002Fissues\u002F3",{"id":67,"text":68},{"id":77,"text":78},{"commenters":185,"max_depth":186,"maker_replies":176,"first_comment_mins":187,"lifespan_hours":188},29,7,11,335,[190,192,196,199,201,204,206,207,210,211,215,217,220,223,226,229,231,233,235,236,239,240,242,245,247,250,252,255,257,260,262,265,266,267,270,272,273,276,277,279,282,284,286,288,290,292,294,297,300,303,308,310,314,315,317,321],[52,40,40,191,53,40],"commenter\u002Fpositive\u002Fidea",[193,40,40,194,195,40],"18598051","commenter\u002Fneutral\u002Fnone","jaster",[197,40,40,194,198,40],"18598090","Hikikomori",[200,40,40,194,195,40],"18598300",[202,40,40,194,203,40],"18598670","fnord123",[205,40,40,194,173,40],"18598576",[168,40,40,194,169,40],[208,40,40,209,53,40],"18603225","commenter\u002Fpositive\u002Fnone",[172,40,40,194,173,40],[212,40,40,213,214,40],"18598806","other\u002Fneutral\u002Fnone","majewsky",[216,40,40,213,173,40],"18598819",[218,40,40,213,219,40],"18604970","JetSpiegel",[221,40,40,213,222,40],"18601379","craftyguy",[224,34,40,213,225,40],"18596795","infradig",[227,34,40,213,228,40],"18597693","jacobush",[110,35,34,230,111,40],"project\u002Fcritical\u002Fidea",[122,44,44,232,123,40],"project\u002Fneutral\u002Fnone",[180,44,40,234,11,34],"maker\u002Fneutral\u002Fnone",[126,44,44,232,127,40],[67,237,40,238,11,34],4,"project\u002Fpositive\u002Fexecution",[102,237,32,238,103,40],[77,237,40,241,11,34],"maker\u002Fneutral\u002Fexecution",[243,237,44,244,103,40],"18594610","project\u002Fneutral\u002Fidea",[70,237,40,246,11,34],"project\u002Fpositive\u002Fidea",[248,237,44,241,249,40],"18595756","2bitencryption",[251,237,40,241,11,34],"18595872",[253,237,44,241,254,40],"18594253","the_jeremy",[256,237,40,241,11,34],"18594450",[258,237,44,241,259,40],"18596026","faitswulff",[261,237,40,241,11,34],"18596102",[263,237,40,213,264,40],"18616193","darkjedi_emacs",[56,32,44,244,57,40],[60,32,40,194,11,34],[268,32,40,194,269,40],"18594544","kh_hk",[271,32,40,234,11,34],"18594631",[157,32,40,194,158,40],[91,274,44,275,92,40],6,"project\u002Fmixed\u002Fdesign",[148,186,32,246,149,40],[137,186,40,278,11,34],"maker\u002Fneutral\u002Fidea",[280,186,32,281,249,40],"18597229","maker\u002Fpositive\u002Fidea",[283,186,40,234,11,34],"18601621",[285,186,44,278,173,40],"18598645",[287,186,40,278,11,34],"18601607",[289,186,44,278,173,40],"18602095",[291,186,40,278,11,34],"18602414",[293,186,40,194,173,40],"18602656",[295,186,34,296,222,40],"18601446","project\u002Fcritical\u002Fprivacy",[298,186,40,299,11,34],"18601598","maker\u002Fneutral\u002Fprivacy",[301,186,40,302,222,40],"18601685","commenter\u002Fneutral\u002Fprivacy",[304,305,32,306,307,40],"18594470",8,"project\u002Fpositive\u002Fnone","ykevinator",[309,305,40,234,11,34],"18602415",[311,312,40,213,313,40],"18600758",9,"heyleo",[95,33,32,306,96,40],[316,33,40,234,11,34],"18595871",[318,187,44,319,320,40],"18596239","project\u002Fneutral\u002Fdesign","akhilcacharya",[322,187,40,323,11,34],"18596677","maker\u002Fneutral\u002Fdesign",[],[326,331,335,340,345,350],{"id":327,"name":328,"points":329,"category":330},"18599200","Dark Reader extension",369,"productivity",{"id":332,"name":333,"points":334,"category":20},"18576117","dust3d.org",290,{"id":336,"name":337,"points":338,"category":339},"18606766","Stock Trading from Google Spreadsheet",281,"finance_crypto",{"id":341,"name":342,"points":343,"category":344},"18569961","srslte-docker-emulated",210,"infrastructure",{"id":346,"name":347,"points":348,"category":349},"18568072","Tabulator",205,"languages",{"id":351,"name":352,"points":353,"category":20},"18608454","Next Browser",198,false,"v2",{"id":357,"name":5,"line":6,"ai":354,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":358,"top":18,"kw":359,"maker":11,"domain":10,"tier":19,"attempts":40,"strip":360,"url":9,"mix":361,"praise":87,"objection":107,"sub":21},18593015,0.16,[24,25,26,27,28],"0000000000013350330330300035530301050503",[32,33,34,35],1793990982856]