[{"data":1,"prerenderedAt":496},["ShallowReactive",2],{"project-44630648":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":44,"post_text":47,"what":48,"said":102,"maker_in_thread":224,"shape":232,"grid":236,"attempts":458,"same_week":459,"maker_shows":46,"maker_hidden":488,"reader_version":489,"card":490},"44630648","connmap","X11 desktop widget that shows location of your network peers on a map","title","Show HN: X11 desktop widget that shows location of your network peers on a map","https:\u002F\u002Fgithub.com\u002Fh2337\u002Fconnmap","github.com","h2337",1753056985,2025,205,86,307,3837,9,"notable","infrastructure","network monitoring widget","desktop_app",[24,25,26,27,28],"network connections map","x11 widget","geoip","linux desktop","connection monitor","curious",0.215,{"positive":32,"neutral":33,"mixed":34,"critical":35},12,23,2,5,42,{"idea":38,"execution":40,"design":41,"privacy":43},{"positive":34,"critical":39},0,{"positive":35,"critical":35},{"positive":42,"critical":39},3,{"positive":39,"critical":39},[42,39,39,39,39,39,39,39,35,39,42,42,42,42,42,35,42,42,42,45,46,39,39,42,46,39,46,39,35,42,35,35,35,42,42,39,35,42,46,35],4,1,null,{"problem":49,"audience":60,"pricing":47,"motivation":47,"time_to_build":47,"stack":72,"openness":99,"stage":100,"team_size":101},{"value":50,"source":51,"evidence":52},"Shows where your computer's established network connections go, on a map","commenter",[53,57],{"id":54,"by":55,"text":56},"44632049","jdwithit","Yeah from an extremely quick read of the code, I agree with atworkc. It's showing any IP address you have an established network connection to. ``` void refreshConnections() {…",{"id":58,"by":11,"text":59},"44630950","Those 3 dots are your peers, the other end of the TCP connection :) So you basically have some apps running in the background (or foreground) that are making those connections.",{"value":61,"source":62,"evidence":63},"Linux desktop users","inferred",[64,68],{"id":65,"by":66,"text":67},"44633396","Aldipower","Works also great with WindowMaker. I've added it to ~\u002FGNUstep\u002FLibrary\u002FWindowMaker\u002Fautostart",{"id":69,"by":70,"text":71},"44633741","heikkilevanto","Nice. My only gripe is that the map is not very easy to read, especially on the smaller sizes. There are too many coast lines and borders, so it can be hard to locate countries,…",[73,84,88],{"value":74,"source":51,"evidence":75},"C",[76,80],{"id":77,"by":78,"text":79},"44631658","hamburglar","This is some old school style bare bones C. popen with a big old pipe chain is pretty quick n dirty. I’d have gone digging around in proc for the active connections. Cool stuff…",{"id":81,"by":82,"text":83},"44630759","wslh","No basically secure: char mapFilename[256]; strcat(strcpy(mapFilename, getenv(\"HOME\")), RESOURCES); strcat(mapFilename, mapName);",{"value":85,"source":51,"evidence":86},"ss command",[87],{"id":54,"by":55,"text":56},{"value":89,"source":90,"evidence":91},"Local embedded GeoIP database","maker",[92,95],{"id":93,"by":11,"text":94},"44631188","Correct! GeoIP database is local.",{"id":96,"by":97,"text":98},"44631213","serbuvlad","From what I was able to tell looking at the code, yes. The database is embedded in the program. Specifically, it is this file:…","open_source","launched","unknown",{"praise":103,"objections":131,"requests":162,"questions":193,"alternatives":212},[104,115,127],{"value":105,"source":51,"evidence":106},"Clean, readable, small codebase",[107,110,114],{"id":108,"by":70,"text":109},"44639508","Impressive that the thing is less than 500 lines of pretty readable C",{"id":111,"by":112,"text":113},"44632677","bit1993","Dam! Great tool. Very clean. Thank you.",{"id":77,"by":78,"text":79},{"value":116,"source":51,"evidence":117},"Nice visual design and works on Linux desktops",[118,122,126],{"id":119,"by":120,"text":121},"44631076","GranPC","Pretty cool! Reminds me of the game Uplink.",{"id":123,"by":124,"text":125},"44632753","kleiba","One step closer to those futuristic screen interfaces you see in Hollywood blockbusters!",{"id":69,"by":70,"text":71},{"value":128,"source":90,"evidence":129},"Works offline with local GeoIP data",[130],{"id":93,"by":11,"text":94},[132,136,143,151],{"value":133,"source":51,"evidence":134},"Map is hard to read with too many borders",[135],{"id":69,"by":70,"text":71},{"value":137,"source":51,"evidence":138},"Red dots are hard to see for colorblind users",[139],{"id":140,"by":141,"text":142},"44632290","afroturf","I'm colorblind and had to change the dots color. Might be a nice config option.",{"value":144,"source":51,"evidence":145},"Buffer overflow risk from fixed-size path buffer with strcat",[146,147],{"id":81,"by":82,"text":83},{"id":148,"by":149,"text":150},"44630861","sedatk","Basically, any path longer than 256 characters for `mapFilename` would cause a buffer overrun. An unprivileged app could run your app (say, with more privileges), with a very…",{"value":152,"source":51,"evidence":153},"Polls ss so may miss short-lived connections",[154,158],{"id":155,"by":156,"text":157},"44633370","lloeki","LittleSnitch has such a map feature https:\u002F\u002Fhelp.obdev.at\u002Flittlesnitch6\u002Flsm-map Main difference would be that LS being actively handling connections the list is always accurate…",{"id":159,"by":160,"text":161},"44633801","globalnode","This doesnt pick up short lived connections or sneaky udp connections right?",[163,171,182,186],{"value":164,"source":51,"evidence":165},"Configurable colors and map styling",[166,167,168],{"id":140,"by":141,"text":142},{"id":69,"by":70,"text":71},{"id":169,"by":11,"text":170},"44635168","Thanks for feedback! Will make it much more configurable as soon as I have time.",{"value":172,"source":51,"evidence":173},"Show traceroute hops",[174,178],{"id":175,"by":176,"text":177},"44633090","Tom1380","I thought of doing something similar, it looks pretty cool. What about showing lines going through the various traceroute hops?",{"id":179,"by":180,"text":181},"44631024","positron26","Maybe they were expecting first hops like from traceroute. Maybe traceroute is an interesting way to continue developing.",{"value":183,"source":51,"evidence":184},"Fading older connection dots",[185],{"id":69,"by":70,"text":71},{"value":187,"source":51,"evidence":188},"Windowmaker dockapp version",[189],{"id":190,"by":191,"text":192},"44632630","mhd","Someone should make a windowmaker dockapp out of this.",[194,205],{"value":195,"source":51,"evidence":196},"What is a network peer?",[197,201],{"id":198,"by":199,"text":200},"44632004","raldi","What's a network peer?",{"id":202,"by":203,"text":204},"44630940","rootbear","Forgive my ignorance, but I'm not sure what this is showing me. I'm running it on my home linux system, which is connected to the Internet via Verizon FIOS. The map shows three…",{"value":206,"source":51,"evidence":207},"Where does the GeoIP data come from and does it use geofeeds?",[208],{"id":209,"by":210,"text":211},"44631197","lxgr","Nice! Where is it from, and do you know if it incorporates geofeed [1] data for networks that publish it? [1] https:\u002F\u002Fipregistry.co\u002Fblog\u002Fgeofeeds",[213,217],{"value":214,"source":51,"evidence":215},"Little Snitch network map (macOS)",[216],{"id":155,"by":156,"text":157},{"value":218,"source":51,"evidence":219},"Freshmeat-style software directories",[220],{"id":221,"by":222,"text":223},"44632297","MarcelOlsz","What's that? Webarchive\u002Fgoogle don't return much of anything.",{"comments":225,"answered":45,"key":226},11,[227,228,231],{"id":58,"text":59},{"id":229,"text":230},"44630988","No, for normal network configurations they wouldn't show. It's most likely your system connmap is running on making those connections.",{"id":169,"text":170},{"commenters":233,"max_depth":18,"maker_replies":225,"first_comment_mins":234,"lifespan_hours":235},57,24,43,[237,241,245,247,250,253,256,259,261,263,267,270,273,276,278,280,283,286,289,291,294,297,299,303,304,306,308,310,314,316,317,319,322,324,327,328,331,332,336,339,341,343,347,350,353,356,358,361,363,365,368,370,372,373,375,377,381,384,386,389,392,394,396,399,401,404,407,409,413,417,422,426,428,429,430,432,434,436,438,440,442,445,449,451,453,457],[238,39,42,239,240,39],"44631095","project\u002Fneutral\u002Fidea","itomato",[242,39,39,243,244,39],"44631994","commenter\u002Fneutral\u002Fnone","djabatt",[221,39,39,246,222,39],"other\u002Fneutral\u002Fnone",[248,39,39,246,249,39],"44632319","28304283409234",[251,39,39,246,252,39],"44635610","pak9rabid",[254,39,39,246,255,39],"44632706","teddyh",[257,39,39,246,258,39],"44633185","vidarh",[260,39,39,246,258,39],"44633273",[262,39,39,246,240,39],"44634130",[264,39,39,265,266,39],"44636347","other\u002Fneutral\u002Fidea","asveikau",[268,39,39,243,269,39],"44632885","ducktective",[271,39,39,243,272,39],"44633484","gen2brain",[274,39,39,243,275,39],"44633494","perching_aix",[277,39,39,243,272,39],"44633519",[279,39,39,243,275,39],"44633536",[281,39,39,243,282,39],"44633682","fmbb",[284,39,39,243,285,39],"44633683","redeeman",[287,39,39,243,288,39],"44635762","unixhero",[77,46,35,290,78,39],"project\u002Fpositive\u002Fexecution",[292,46,39,243,293,39],"44632553","quotemstr",[295,46,39,243,296,39],"44636272","enriquto",[155,34,42,298,156,39],"project\u002Fneutral\u002Fexecution",[300,34,39,301,302,39],"44647100","commenter\u002Fneutral\u002Fpricing","flux3125",[202,42,42,239,203,39],[58,42,39,305,11,46],"maker\u002Fneutral\u002Fdocs",[307,42,42,239,203,39],"44630982",[229,42,39,309,11,46],"maker\u002Fneutral\u002Fnone",[311,42,42,312,313,39],"44631680","project\u002Fneutral\u002Fnone","esseph",[315,42,42,239,55,39],"44632082",[179,42,42,239,180,39],[140,42,42,318,141,39],"project\u002Fneutral\u002Fdesign",[320,42,42,312,321,39],"44633610","edonhametsu",[119,45,35,323,120,39],"project\u002Fpositive\u002Fdesign",[325,45,39,246,326,39],"44631422","apollo-zero",[198,35,42,239,199,39],[329,35,42,239,330,39],"44632023","atworkc",[54,35,42,298,55,39],[333,334,39,246,335,39],"44631262",6,"freeone3000",[69,337,42,338,70,39],7,"project\u002Fmixed\u002Fdesign",[169,337,39,340,11,46],"maker\u002Fneutral\u002Fdesign",[123,342,35,323,124,39],8,[344,18,35,345,346,39],"44631929","maker\u002Fpositive\u002Fdesign","generalizations",[81,348,46,349,82,39],10,"project\u002Fcritical\u002Fexecution",[351,348,39,352,11,46],"44630767","maker\u002Fneutral\u002Fexecution",[354,348,46,349,355,39],"44630849","floating-io",[357,348,39,243,11,46],"44630866",[359,348,39,360,355,39],"44630892","commenter\u002Fneutral\u002Fexecution",[362,348,39,352,11,46],"44630923",[364,348,39,243,355,39],"44630936",[366,348,42,298,367,39],"44631749","db48x",[369,348,42,298,355,39],"44635880",[371,348,39,243,367,39],"44637714",[148,348,46,349,149,39],[374,348,39,360,11,46],"44630870",[376,348,39,360,149,39],"44631046",[378,348,42,379,380,39],"44633526","project\u002Fmixed\u002Fexecution","jfyi",[382,348,46,349,383,39],"44631251","DonHopkins",[385,348,39,352,11,46],"44630900",[387,348,39,360,388,39],"44630919","josephcsible",[390,348,39,360,391,39],"44631339","im3w1l",[393,348,39,243,149,39],"44652129",[65,225,35,395,66,39],"project\u002Fpositive\u002Fnone",[397,225,42,318,398,39],"44635705","wing-_-nuts",[400,225,39,246,66,39],"44637099",[402,225,39,243,403,39],"44637788","AlecSchueler",[405,32,35,290,406,39],"44637366","superkuh",[408,32,35,290,406,39],"44639129",[410,411,42,239,412,39],"44631975",13,"anthk",[414,415,35,290,416,39],"44636367",14,"DyslexicAtheist",[418,419,35,420,421,39],"44630792",15,"project\u002Fpositive\u002Fidea","ben0x539",[423,424,42,425,210,39],"44631185",16,"project\u002Fneutral\u002Fprivacy",[93,424,39,427,11,46],"maker\u002Fneutral\u002Fprivacy",[209,424,42,298,210,39],[96,424,42,298,97,39],[431,424,42,298,210,39],"44631233",[433,424,39,243,383,39],"44631215",[435,424,39,243,210,39],"44631237",[159,437,42,298,160,39],17,[190,439,35,420,191,39],18,[175,441,42,239,176,39],19,[443,441,39,444,11,46],"44635379","maker\u002Fpositive\u002Fidea",[446,447,46,349,448,39],"44631933",20,"rxwxx",[450,447,39,352,11,46],"44635351",[108,452,35,290,70,39],21,[454,455,42,239,456,39],"44635760",22,"waerhert",[111,33,35,395,112,39],[],[460,465,470,474,479,483],{"id":461,"name":462,"points":463,"category":464},"44664873","Tender",1030,"consumer_social",{"id":466,"name":467,"points":468,"category":469},"44594584","Conductor",228,"dev_tools",{"id":471,"name":472,"points":473,"category":20},"44661673","Apple Health MCP",199,{"id":475,"name":476,"points":477,"category":478},"44613438","Compass CNC",176,"hardware",{"id":480,"name":481,"points":482,"category":20},"44662497","TheProtector",167,{"id":484,"name":485,"points":486,"category":487},"44622374","blender-mcp",151,"creative",false,"v2",{"id":491,"name":5,"line":6,"ai":488,"cat":20,"year":13,"points":14,"comments":15,"rec":29,"s":492,"top":18,"kw":493,"maker":11,"domain":10,"tier":19,"attempts":39,"strip":494,"url":9,"mix":495,"praise":105,"objection":133,"sub":21},44630648,0.22,[24,25,26,27,28],"3000000050333335333410031010535553305315",[32,33,34,35],1794036678843]