Ask HN: What are you learning? 865 points by blululu on April 5, 2020 | hide | past | favorite | 876 comments What are you learning right now? My last side project was recently derailed and I am curious to hear what other people are spending their time studying/learning about.

 I'm working through Aluffi's Algebra: Chapter Zero, which covers abstract algebra (groups, fields, vector spaces, etc.) with category theoretic foundations. I took undergraduate algebra several years ago, and I'm really interested in category theory from a compositionality perspective, so this is a good opportunity to brush up on both topics.Aluffi is really well-written. It assumes some degree of mathematical maturity (so it's well-positioned for a second pass of the material), but has a generally conversational tone without being imprecise. The exercises are excellent, too, if occasionally difficult using only the machinery introduced up to that point. (Again, well-suited to readers taking a second pass at algebra.)Why am I doing this? Leonard Susskind puts it well in this video [1]. To put it in my own words: our senses evolved for the physical world around us, and some of the most technical activities we do today are wildly underserved by our natural senses. That's why we build things like microscopes and telescopes and whatnot -- to extend our senses into new domains. Mathematical intuition is almost another sense in its own right: you gain the ability to perceive abstractions and relationships in ways that are just not well-described by sight or touch. I both enjoy this sense and find it valuable, so of course I'm going to continue honing it :)
 IIRC in this podcast: https://player.fm/series/superdatascience-2532807/sds-345-ma...The interviewer is a researcher at Twitter Cortex applying category theory to ML. His intuition about the possible links reminds me of this kind of extending of senses you describe.
 Awesome, thanks! Listening now, and shared with brother.
 This really reminds me, it's been two decades now since I've taken _any_ Algebra. I'd really love to go re-learn it from the basics on up. I mean, I still remember a lot of it here and there but some sort of refresher course up to doing more advanced would be awesome.Any recommendations?
 Hell yes! I love hearing about people interested in abstract algebra and wholly support your endeavor! Here is a pretty decent resource on relevant texts:http://www.cargalmathbooks.com/#Abstract%20AlgebraThat page in general is pretty gold for math texts in general.Also, #math on freenode has lots of algebra-strong users on it, though depending on your luck some can be less helpful than others. I love chatting about this kind of thing with people, so if you would like an ad hoc mentor/study-buddy I would be more than happy to help. Feel free to email me at the address in my profile.Good luck!
 Hi there, the email field doesn’t show up - you need to put it in your about section for people to see it :)
 Uff. Thanks! Done.
 BinaryIdiot on April 6, 2020 Cool, thanks for the info! I'm going to check out that list.
 Twisol on April 6, 2020 I think Linear Algebra is traditionally recommended, since you can readily apply a lot of geometric intuitions while picking up the mathematical ones. The drawback is that you have to make sure you're not cheating yourself of the mathematics by over-relying on the geometry.Sheldon Axler's acclaimed "Linear Algebra Done Right" is freely available as a download [1] through July due to the pandemic. I've not read it (yet!), but I've heard so many good things about it I feel comfortable recommending it off the cuff. :)(Recommendation: try not to focus too hard on the matrices! They're just convenient representations (syntax!) for the actual things we care about: linear transformations. It's less geometrically intuitive, but it lays a much better foundation for algebraic widgets other than vector spaces. Use the wealth of geometric intuitions to jump-start your mathematical sense.)I don't have a lot of recommendations for other algebra topics, unfortunately. My class textbook for abstract algebra was Dummit & Foote, which I found very dry and lacking in intuition. Aluffi is perfectly servicable if you feel good about your linear algebra; just don't feel like you have to complete every exercise.Also, I'm a sucker for order theory, so if you're up for something a little less algebraic, pick up Munkres' Topology. I'm consistently surprised at how often topological and order-theoretic intuitions come up in software development. There's a close connection between topology and logic, so perhaps I shouldn't be so surprised -- but I haven't studied Stone duality at all, so it shall remain surprising for now.
 I wonder whether HN has heard of "Linear Algebra" by Hoffman and Kunze. I learned from it as an undergraduate and remember it being told that it was a classic. Another more abstract book is by the great Halmos: "Finite Dimensional Vector Spaces". Both books will stretch and entertain you.
 billfruit on April 6, 2020 Sheldon Axler book for some reason is hugely hyped in HN always when this topic comes up.But I do wish for a more comprehensive book on Algebra covering the entire breath of the field.Matrix Analysis by Roger A Horn, seems a good book with most of the knowledge of matrices covered. Could be helpful for people working with Graphics.
 david_w on April 6, 2020 Sheldon Axler's acclaimed "Linear Algebra Done Right"Seconded. Highly recommended.
 You know something? I know a little abstract algebra: groups, subgroups, quotient groups, and the relvent theorems behind them. It's been disappointingly useless to me though. Maybe someday I will take the quotient group of two matrix groups... I'm not sure though.
 I certainly haven't applied any of those examples either. ^_^ Abstract algebra, topology, etc. are all studies of problems that already have mental frameworks. People already did an incredible amount of legwork building the apparati for understanding these fields (no pun intended). The value of learning these frameworks, if you're not going to work in those fields directly, is to understand how to build your own framework.What kind of tools are in your toolbox for breaking problems down? Where is my problem different from others, and where is my problem fundamentally the same? How can we isolate these parts and handle them on their own terms? This is fundamentally mathematics, however it's ultimately expressed.Here's a small selection of those ideas I've picked up from mathematics that have absolutely paid dividends in my day-to-day:* The idea of a "homomorphism", a structure-perserving map between two different domains of discourse. The more I learn about category theory, the more I realize that homomorphisms are conceptually everywhere in software. The more I learn about domain-driven design, the more I realize the role functors (a particular kind of homomorphism) really play in software design.* The idea of a "fixed point", for limiting behavior of processes. Fixed points are especially pleasant in domains where processes have some sense in which they "grow monotonically". When I can model a system as a series of operations that "add knowledge" and don't invalidate prior results, I know I have a wealth of analytical tools at my disposal.* The idea of products (pairing) and sums (choice) in type theory, for modeling interactions between components. I feel like I'm in a straitjacket when using a language without sum types; I have to encode what I really mean using tools that don't let me get there directly.
 petamask on April 6, 2020 What I got to think recently about the value of knowing more about stuff whose usage isn't imminently obvious is that when you expand your knwoledge, the 'range' of your world changes. So yes, almost by its nature, you would not use the stuff that you don't know much of, but you would be hemmed in by your own ignorance. On the other hand, by expanding your knowledge, you would also expand your range of experience (your world) thus find it more useful.
 kralos on April 6, 2020 I studied vector mathematics in high school; matrix operations, dot product, cross product etc. All through these lessons I thought; "what a stupid thing to learn, who would ever use this?". Then after school I became a CAD/CAM developer and spent most of my time working with vector mathematics. It was with the help of OpenGL so I technically didn't need to understand how these operations worked under the hood but yep... what a stupid thing to learn indeed.
 scythe on April 6, 2020 Most people start abstract algebra with groups, which is not surprising since the underlying definition is very simple and the basic examples are easy to understand. But abstract algebra only really starts to come into its own when you start to learn about rings and modules, which ultimately turn out to be important in proving most of the significant theorems in group theory as well.One example I've been toying with recently is the link between complex and split-complex numbers, and the latter are isomorphic to a direct product of two copies of R. Putting these analogies together leads to a slight improvement of Karatsuba's complex number multiplication algorithm:https://gist.github.com/scythe/9976568d9d49b3322a33c5cd55895...The extra storage use does call into question whether this representation can be helpful in practice, but the fact that these abstractions can be unrolled into code is pretty cool.
 I am curious about category theory? Do you have any resources on where it can be applied?
 David Spivak and Brendan Fong have been doing lots of work at MIT to evangelize applied category theory. See their recent books/classes:Seven Sketches in Compositionality: An Invitation to Applied Category Theory https://arxiv.org/abs/1803.05316Applied Category Theory mini-course: https://ocw.mit.edu/courses/mathematics/18-s097-applied-cate...Programming with Categories mini-course (with Bartosz Milewski): http://brendanfong.com/programmingcats.html
 Twisol on April 6, 2020 I'm no expert, so the best I can do is point you to the research community gathering around applied category theory.* A conference series + workshop: https://www.appliedcategorytheory.org/* A journal: https://compositionality-journal.org/Check out some of the people involved in organizing these events. Names I've followed include John Baez, Pawel Sobocinski, and Tai-Danae Bradley (all of whom are amazing educators; check out their work!).Tai-Danae Bradley wrote a pamphlet on applied category theory which is very approachable: https://arxiv.org/pdf/1809.05923.pdf . Also check out Jules Hedges' thoughts on the importance of compositionality: https://julesh.com/2017/04/22/on-compositionality/ .
 viridi on April 7, 2020 Perhaps Category Theory for Programmers?https://bartoszmilewski.com/2014/10/28/category-theory-for-p...There is also a playlist on Youtubehttps://www.youtube.com/watch?v=I8LbkfSSR58&list=PLbgaMIhjbm...
 harry8 on April 6, 2020 Haskell.To do io you need monads. There's come from category theory. Haskell is great fun to learn, very different, focus on abstractions and abstractions of abstractions. One the one hand i highly recommend it. On the other the vast majority of people learning it never do any useful work at all in haskell. (This last statement will probably excite the haskell zealots whom I would encourage to reply with evidence.)There are about 5 programs i know if that you might use written in haskell for a purpose other than programming a computer.Anyway category theory definitely comes up in lazy, pure functional programming. A lot.
 This statement that you made—about side effects requiring monads—do you know a proof for that?I come from the other side, Milewski's book is to me "Functional Programming for Category Theorists".
 Nope, no proofs :) Formalizing questions like this is one reason why I'm interested in category theory, so I don't think I have the tools to dig into this right now. But... "side effect" literally maens it doesn't show up in a normal input/output function signature, and in a pure functional language like Haskell, there are no side effects. Monads are a particular way of explicitly capturing side effects as a "separate" kind of thing from the function output using a particular species of functor.I suppose my statement was a bit strong in that regard. Monads tend to arise very often in the way we build systems, but that doesn't mean they're the only way to cope with side-effects. It does seem likely that any way to capture "alternate outputs" from a function will end up looking like A -> T(B) in some category, though.(Incidentally, if "A -> T(B)" looks funky, think about polynomials `f(x)` -- the function symbol `f` is just a placeholder for some expression involving the free variable `x`. Could be `A -> (B, String)`. The monad laws only make sure you have some foundation for reasoning about the extra type structure being added in by `T`.)
 Does this mean that you use a monad instead of a function?
 Twisol on April 15, 2020 I quite belatedly realized that you come from Category Theory, so most of my sibling reply is probably old news to you. Sorry!The most charitable response would be "yes", but it really depends on how you model your domain. Most instances of monads in software are at the type level, not at the value level, and "function" doesn't usually make sense at the type level.The example I gave of a monad over posets does arise in the semantics of logic programming, but I haven't seen explicit recognition of monads in that area. Not that I've looked that hard, yet.
 If you don’t mind me asking, how long do you expect it will take you to go through that text?
 I'm not sure! There's a good amount of material that I've never dealt with before, so I'm sure there will be parts where I go relatively slowly. I also have a day job, so I only spend time with the book when I feel up for it. It's kind of an open-ended thing for me right now.
 Entirely understand, enjoy and good luck with it!
 I've been clearing land all day and bought 50lbs of buckwheat. I intend to try sowing/harvesting by hand. I will use this mostly for breads and pastries. This is something of an experiment.Building skills, I'm almost finished a chicken coop. I made a dry stone arch bridge but it failed because the frame sank, I will try again. I am learning carving to make wooden animal toys for my child, who will be born in July (I have made a bear and a fox, soon an elephant, but they still need to be sanded). I would like to learn timber framing and make a small cabin on the land but it may be too expensive, now.I'm trying to make an animated village for my site background with HTML Canvas, and originally I was making it procedurally, but its too ugly, so I will have to learn some digital illustration until it's beautiful.
 If you have any pictures available (especially of this bridge) I'd be curious to see.Are you tilling? Doing raised beds? We're planting a bit this year and dealing with weeds, etc. has been a hassle (also, most of the no-dig crowd seem to basically advocate using many tons of compost, which is great but not something you can assume a steady supply of)
 There are lots of photos in this thread for the stone: https://twitter.com/simonsarris/status/1234186085200207872?s...We're making semi raised beds up the hill: https://twitter.com/simonsarris/status/1246544902193909769?s...With house compost and composted manure from a local farmer. The lower garden is mostly no till with added compost. We're not really sure what we're doing! So I can't really give advice.I usually document what I'm working on on Twitter as a micro blog
 I grew up in Nashua, and when I looked at your posts about restoring your home it made me nostalgic for New Hampshire. I live in Alaska now and hope to spend the rest of my life here, but NH has the feeling of home that you can only get from having a childhood there. I found your posts a while back, and I always enjoy looking at what you've been up to when I haven't seen it for a while.I used to run and bike past so many houses that look like this, and some part of me always wanted to do what you're doing. So thank you for sharing your journey!
 Ah I grew up in Nashua too, at 37 Orange street, if you've ever seen the house (An 1840's house, just at the start of the downtown historic district)
 Here's how I tell people how my experience of Nashua has changed: "When I was young, we used to tell people how to get to our house by saying at one point, 'Turn right where the cows are. You'll go over an old stone bridge and then through some narrow curves on a few hills. Then turn right at..."Then it turned into "Turn right where the cows used to be."Then it became "Turn right at the ____ subdivision."When I was young I did a lot of bicycling and running. In early high school (1980s) a friend and I used to ride our bikes as far as we could in the morning, and then try to find our way back without asking for directions. We found all kinds of old back roads and small cemeteries and old stone walls and other remnants of old New England. Now when I go back and go for a run or a drive it's endless subdivisions. I don't resent that at all, I know things grow and change. But it's certainly part of why I don't miss Nashua much except for nostalgia.
 That's funny. I was born in 1988, so that world was gone by the time I got here. And even then, when I was a kid there were abandoned buildings to explore like the old tannery, and those are demolished now.For all the changes they can't get the downtown to "work" and they are really, really bad at trying. I tried too: the mayor appointed me to the downtown improvement committee where I got to watch nothing happen first hand.
 I'm sorry to hear that. From a distance, it seemed like there was some interesting revitalization work going on in the downtown area. I remember going to a barbershop off Main Street as a kid with my dad every couple of weeks. Back then it was a classic old downtown, with shoe stores and shirt stores and barbershops and hardware stores and all that.
 mraza007 on April 6, 2020 Out of curiosity How’s life in Alaska. It has always been a dream for me to move to Alaska since its a beautiful state and last thing what about the jobs there
 I love Alaska. I live in Sitka, which is a small town on the side of an island. We have about 10k people, but our town is a 14-mile by 1/2 mile strip of land on a 100-mile long island that's almost entirely wilderness. I like that we're a big enough town to have a thriving community - good educational opportunities, a variety of work available, an impressive arts community. But you can walk into the woods anywhere at the edge of town and immediately find yourself in actual wilderness. Subsistence is also a way of life for most people - almost everyone has a freezer with fish and wild game that they caught themselves.The virus is going to have a serious impact here, like so many places. So many people depend on the summer tourism season to make a living. There are charter fishing operations, tour operations, retail operations. Those people and businesses will make almost nothing this year. And when this is over, how long will it take people to be able to afford summer travel again?
 It looks like you may have the same cart that I do. Hint: in case the bearings fail, go-kart bearings are an excellent and higher-quality replacement and they're the same size. I load mine with 200+ lbs of hay at a time and haven't seen any problems since.
 When you get around to milling the buckwheat, see if you can get some coarse ground flour from both the kernel and husk. With it you can make inaka (country style) soba, which is really quite special. Buckwheat makgeoli is also easy and tasty.
 You might be interested in this chap's work. He came to prominence after his construction of a home was covered on a TV programme here in the UK. The link here is about that house - and the TV programme is well worth watching, too - and the rest of the site is about eco-building etc.https://ben-law.co.uk/ecobuilding/the-woodland-house/
 You should look into Fabric.js, it makes working with an html canvas much easier, especially if you are animating it.
 > I'm almost finished a chicken coopMay I suggest welded mesh?
 sweet. I just made some buckwheat crepes the other day. Buckwheat is really high in magnesium which is awesome
 I'm learning how to make tacos starting with the tortilla. I'm originally from San Diego and have always missed Mexican food whenever I moved abroad. On a recent trip back to San Diego, I went to over a dozen Mexican shops to find particular flours to create tortillas from. I also went to Mexico twice just to find a specific brand of soft wheat flour. In total I think I experimented with atleast 5-6 different flours thus far. Since then I've made over 150 tortillas, learning things like the importance of the ratio of fat/water/flour, the proper heat, feel, and cook time. Rolling it with flour and without, hand patting vs mechanical tortilla presses. Simple mistakes are like the difference between making a cracker and a tortilla. There's also things like the elasticity of the dough the longer it sits so things like heated tortilla presses become important to help it keep its shape, since the heat slightly cooks the tortilla as it's being pressed into shape. Compared to pure mechanical ones where the tortilla will retract back due to no heat forcing it to sit in place. I'm still hoping to invest in a heated press once I return to the States since I can't find them in Amsterdam.Overall I'm enjoying the craft of it all and will be soon moving towards learning the details that go into making sauces and carne asada.
 One trick for those that are not as advanced as you are: For whatever wheat you are using, add boiling water instead of cool water.I've found this trick worked (a few years ago now) for a couple of trials where I wanted to use just flour and water. I think the boiling water makes the flour more elastic.
 U̶n̶l̶e̶s̶s̶ ̶b̶o̶i̶l̶i̶n̶g̶ ̶t̶h̶e̶ ̶w̶a̶t̶e̶r̶ ̶r̶e̶s̶u̶l̶t̶s̶ ̶i̶n̶ ̶p̶u̶r̶i̶f̶y̶i̶n̶g̶ ̶i̶t̶,̶ ̶b̶o̶i̶l̶i̶n̶g̶ ̶p̶r̶o̶b̶a̶b̶l̶y̶ ̶d̶o̶e̶s̶n̶'̶t̶ ̶d̶o̶ ̶a̶n̶y̶t̶h̶i̶n̶g̶ ̶b̶e̶s̶i̶d̶e̶s̶ ̶s̶l̶i̶g̶h̶t̶l̶y̶ ̶s̶p̶e̶e̶d̶ ̶u̶p̶ ̶a̶u̶t̶o̶l̶y̶z̶i̶n̶g̶ ̶t̶h̶e̶ ̶f̶l̶o̶u̶r̶ ̶a̶n̶d̶ ̶w̶a̶t̶e̶r̶.̶ *This is probably wrong--see edit. Didn't know about this process because you'd never want to do it with anything you're going to add yeast to.I've done a fair amount of experimentation on on bread making, and a very important step in bread making is autolyzing[0] the flour and water (letting the flour and water rest for a period after combining them).However, the only reason water temperature matters in autolyzing is because you want an optimal temperature for yeast at the end of the autolyzation process[1].More likely, what matters more is not the temperature of the water (assuming distilled, pure water, not subject to local tap water differences), but the time you let it the flour and water autolyze. My suspicion is that even though tortillas don't involve yeast, autolyzation is still important for optimal results.NINJA EDIT:Interesting, after doing some more research, I discovered boiling water is actually used to gelatinize flour--resulting in much more elastic dough, as you specify[2].
 wigl on April 6, 2020 Hot water encourages hydration of the flour and gluten development, resulting in a more elastic/homogeneous dough. IMHO, the hottest water from the tap should be good enough for that purpose.
 True, but hot tap water doesn't always taste very good. If you've ever had seen the inside of a water heater, you will never want to consume hot water again. It's often full of rust and scale.
 You and the other commenter are correct. Just meant that temp ~120F as a reference. Have lived in a calcite water area, no fun.
 cferr on April 6, 2020 Water from the standing hot water heater typically doesn't taste as good.
 yoshyosh on April 6, 2020 agreed with this, hot liquids def made things much easier
 I've seen a lot of custom made hotplate/pans made by a lot of my hispanic friends families for making tortillas, it's basically a slab of metal on a stove with a handle. I don't know anywhere that makes them since all of them are a kind of "I had a friend weld it for me" situation, but I found that those hotplates made making tortillas much easier.
 You mean a comal? I got one I love off Amazon a couple years ago for about \$10. It's handy for all sorts of things because it heats faster than a large cast-iron skillet with sides. It's great for reheating pizza and melting sandwiches (couple it with a metal cover for doing just that for a double bonus).
 yoshyosh on April 6, 2020 Good call, maybe I should just look into getting something custom made here. This is the press I'll likely buy once back https://www.amazon.com/Mexican-Electric-Tortilla-Gorditas-Bu...
 Oh man, this is a topic near and dear to my heart! I'm originally from California, but I lived in Mexico for several years.I am dying for some good traditional tacos. (Currently abroad but far from Mexico)The best tortillas I had were the handmade ones, made from organic blue maize.
 I want to live in Mexico for a little bit one day. I imagine you came out of that with a taste for tacos that can't be matched anywhere. Were there any spots that you really enjoyed that had the organic blue maize that you liked or was it mostly abundant because Mexico hah? I'll definitely bookmark it :-)
 I recommend it if possible. I had such an amazing experience living there. It's funny, I never miss the US but I always miss Mexico.I mostly lived in Mexico City, but I've traveled a lot around the country and spent time living in a few other cities for shorter periods of time. I've probably seen more of Mexico than 90%+ of all Mexicans.Some of the best food I've ever had was in a small Pueblo (town) called San Sebastián del Oeste in the state of Jalisco. [1] It's a small "magic town" in the mountains in Jalisco. [2]Most of the best food I've had in Mexico was not in the big cities but in the small towns. Especially, the family-owned places where there's an older Mexican lady cooking up food. Cliché but true.
 Thanks for the suggestions, I'm planning on Mexico City and some other small towns like you mentioned. Will definitely add to the list!
 Would you mind sharing your tortilla recipe and/or pointers?
 Thank you, it's just what I happened to be looking for!For those of us in Europe can you recommend your choice of flour (and perhaps some other replacement ingredients)
 I'm still trying to figure it out as well. I think for flour, experimenting with any artisan bread type flours would be good. The wheat flour at your supermarket may work though, you'll likely need to try it out and compare. The differences can start to become subtle. Vegetable shortening is also a decent replacement for lard, the ones like Crisco that come in a can and look like lard/non liquid oil. Some of my favorite taco places like https://www.instagram.com/elrusola/ use exclusively that.I would also avoid things like Maseca if you have the time to try to figure things out, since they are a pre mix just add water type thing for corn tortillas specifically.
 unixhero on April 8, 2020 Maseca. It's the same as they use in Mexico, and happens to be produced in Italy.Get it at your local delicatessen, or your local Hyper Market.
 I have lost my contract as a developer and am helping a non-profit [1] streamline their operations. The organization aims to provide food and heath kits to the marginalized. We have already distributed over 600 kits and are on track to reach a 1000 in this week. Each kit is designed to support a family of 4 for 1 month.I was introduced to them by a friend who was helping them build an open platform [2], open in the sense that all processes, donations, procurement and guides are public.Although my core competency is building and managing Saas, I took up the task of setting up their operations. I find a striking similarity b/w managing Saas and not-for-profit distribution.We are relying heavily on Airtable.Despite of being jobless, I feel less worried. The situation on ground is much worse than mine.
 Each kit is designed to support a family of 4 for 1 month.That's some freaking "kit" !!!
 For the curious, we also published how we assemble these kits: https://karuna2020.org/guides/ration-and-safety-kit-assembly...
 Wow! I think why most people don't donate in India because they think their money doesn't make any impact.https://open-data.karuna2020.org this is game changer. I wish more NGOs in India would do it.And good luck!
 That's changing. People in India did donate in flying colors in the last one week. To help with Covid19, PM-CARES fund was announced by Prime Minister Modi on March 28th. In a week since then, it has raised almost a billion USD. The super rich did donate well. But so did the common people - via UPI digital payments. See news coverage here: https://www.moneycontrol.com/news/business/pm-cares-fund-her...
 >> For just ₹750, our food and wellness kit can feed a family for a whole month.750 INR = 9.84 USDIt would be nice if you can make it easy to provide donations from outside India.
 We are working on that!
 Nice work. I'm a indian dev. Let me know if there's any work for me to do.
 This is inspiring and I also like the pragmatic technological approach.I wish you all the best!
 How can I contribute on the software side?
 The software has been built already. We might have minor updates.There are other operations that you can help with, like blurring beneficiary faces using opencv before posting them on the internet. You can read more on the website.Application and On-boarding Guide: https://karuna2020.org/guides/volunteer-application-and-onbo...Volunteer Application: https://karuna2020.org/volunteers/
 I'm learning how to level up my more fundamental life skills: nutrition, exercise, and character. Character I'm learning through the study of The 7 Habits of Highly Effective People which I'm working through with a friend. For exercise, I'm enjoying learning a safe kettlebell program with the book Simple and Sinister. With nutrition, I'm just trying to cook/prepare all my own meals while keeping the ingredients healthy.I've spent so much time studying skills more directly related to my work as a software engineer, or hobbies like photography, that this shift is both challenging and refreshing. I think it'll make a huge difference in the long run.
 For nutrition and diet I can highly recommend "How Not To Die" by Dr. Michael Gregger: https://nutritionfacts.org/book/
 Isn't he completely anti-meat / pro-vegan? His research is cherry picked to a large part and he usually cites epidemiological studies. At least he did when I got into nutrition.Reading multiple books and doing research yourself is to recommend, at least there's one book with a whole website about the research used in each topic. ---> Boundless by Ben Greenfield.
 Both "How not to Die" and "How not to Diet" contain hundreds and even into the thousands of references. All meticulously fact-checked by a team of researchers.If all the research points to "meat" being problematic, wouldn't a truthful book be considered "anti-meat"? I am a meat lover myself, but Greger seems to follow the scientific process to the letter.
 Quoting a lot of studies makes a great impression, but it's only worth it if you're not cherry-picking. Have you read the actual studies he's quoting? I did. Well, I read the first 50 or so. More times than not, they did not give what he says or he is interpreting the result so it matches what he likes them to say. Many are done badly. Many studies are done by hardcore vegans or animal right activists. He quotes the same studies multiple times, adding another references each time he quotes it again (making a great impression!).A vegetarian diet may be the healthiest there is - I don't know. But Greger is biased for sure.
 rige on April 6, 2020 I also highly recommend Dr. Greger's work! He also has a podcast and very informative website with tons of sources and further information.
 > I've spent so much time studying skills more directly related to my work as a software engineer, or hobbies like photography, that this shift is both challenging and refreshing. I think it'll make a huge difference in the long run.It did for me. My path seems to be flipped. I did this stuff in my late teens and early twenties and after that I decided to get into software.
 I have been pursuing similar goals. Except for exercise I've been learning rope dart and also have the goal of being more clean and being better at organizing my spaces. I have also found that focusing on the fundamentals has done wonders for my health, energy levels, and mood. I wish I had taken time to figure this stuff out better years ago.
 To me, kettlebells are a hipster trend.Bw: push ups, pull ups, crunches, supermans, squats, calf-raises, planks, wallsits, HPUs or easier variationsorWeights: bench, rows, deadlifts, squats, OHP (google 5x5), pull ups, calf raises+run, bike, or swim Just something to keep in mind as minimum.
 sn9 on April 9, 2020 They've been used for centuries in one form or another and are a fantastic tool, lauded even by world-record holders in the deadlift.
 sharadov on April 7, 2020 No, they are not, if you don't have access to a bench and barbells, you can pretty much do all exercises and more with a couple of kettlebells. I use a 20 and 35 pound one. Btw, Kettlebells have been around for a long time in Russia.
 I am learning game development in Godot, specifically with the intention of making an Oculus Quest VR game. I just finished the initial tutorial yesterday: https://docs.godotengine.org/en/3.2/getting_started/step_by_...Alongside that, I am also watching Disney's Imagineering-in-a-Box, which describes how they develop lands and rides for their theme parks: https://disneyparks.disney.go.com/blog/2020/03/enjoy-a-one-o...I recently finished Stanford's CS231N Computer Vision course from 2017 (watching YouTube + 3 Jupyter Notebook assignments). Also highly recommended. http://cs231n.stanford.edu/syllabus.html
 I'm learning Godot too. Although, my pace of learning is very slow, since I am also working from home. So I mostly learn on weekends or sometimes, for an hour at the end of the day. I started from this link: http://www.alexhoratio.co.uk/search/label/gitting%20gud%20at... These look good too: https://www.reddit.com/r/godot/comments/an0iq5/godot_tutoria...
 I am trying my hand at Defold. Though initially I found it very obscure and opaque, I am finally able to do small things on my own without constantly refering to the document.Initially I found it difficult to grasp what exactly the game engine is making easy for you. Now I understand, the whole reactive message passing system simplifies game logic. Also the collision physics and handling too makes game logic simpler. And it takes care of animations like sliding, moving etc.
 It is a bit different than many other engines, and it is not for everyone, but once you shift your mindset from large object oriented structures and start thinking about the relationship between your game logic and data in a way that works with Defold I find that you're able to create a lot in a short timeframe.
 I'm also learning Godot, it's great fun! Although I'm making something less ambitious than you, I just more or less finished a 'brickbreaker' type game. (more or less, all logic is in place but just 2 levels).Also, no one asked, but I went with Godot instead of Unity because it was the only one I could get running without _any_ issue on Debian.
 I committed the cardinal sin of starting the Unity "Create with Code" course last week and not progressing beyond the first module. Hopefully you are better at sticking to things than I am.
 Hey, I'm doing that too, learning DirectX to build megaman-clone and learn more about game development. I planned to learn Godot after that. shall you create a discord chanel? I'd love to join
 you seem like a very avid learner! can you recommend a couple of courses you've enjoyed going through, or the ones that were most interesting and challenging?
 Wow I want to do that too! Are there any existing godot based quest games so I can get an idea what the final product would look like?
 There is a tutorial from Feb 28th which contains a finished project. https://github.com/GodotVR/godot_openvr_fps/releases
 thanks for Disney's Imagineering-in-a-Box!
 Stanford's CS143 Compilers course: https://courses.edx.org/courses/course-v1:StanfordOnline+SOE...I've always been interested in making things that make other things, and compilers definitely fall into that category.In the middle of the second assignment, the parser. It's a lot to consume, but I feel like the theory isn't particularly difficult, about half my learning has been getting to know the tools (so far: flex, bison). I've also spent an annoying amount of time on updating and configuring the VM, I guess that's a bonus lesson in Linux sysadmin-ing. It's also my first experience with C++, which seems useful to know.I also started this course on web security: https://web.stanford.edu/class/cs253/. The first assignment was a lot of fun, the material is fresh, and it definitely seems like very useful information for anyone in the web stack.I'm also learning a bunch of new cooking recipes, but who isn't nowadays.
 Thanks for your recommendation !I am pretty interested in web security partly because I want to start my own start up in two years, and I want to make sure my customer's data is safe. I am also interested in compilers but just can't bear C++, so I plan to take this course :https://www.coursera.org/learn/nand2tetris2. It doesn't limit languages you can use .So I plan to write the compiler by Racket(which can also sharpen my functional programming skill).
 TA'd this class! It's a great intro, if a little dated. The best assignment, in my opinion, is the last (code generation). It's also the easiest to do independently, since you can just see if your compiled programs produce the same output as the ones compiled with the reference compiler.The class assignments are missing a more thorough look at optimization. Might have to rely more on the lectures for that.
 I'm trying to learn to draw.I feel comfortable enough with my technical skills where I feel like I can pick up a new language or framework with relative ease, so I want to switch gears and improve my drawing and visual communication skills. I believe that any project can benefit from a compelling visual component.For now, I've been trying to start slow and just have fun; for example, telling myself to do three quick sketches of my dog every day and keep up a habit. Eventually I'd like to follow some more structured exercises and resources, like https://drawabox.com/.
 Learning to draw is something anyone can do and is incredibly rewarding. It activates a huge part of your brain (visual) that starts firing when you see all sorts of scenes, faces, patterns, colors in real life. Try the book "drawing on the right side of the brain". Another good one is the Bargue sculpture drawing course.
 Yea, right, until you try to get perspective correct.If you understand this, you are a genius:https://crafts.stackexchange.com/questions/3316/how-to-measu...
 Don't worry about perspective drawing. This is a much more technical subject, separate from the skill of "drawing what you see".
 I want to be able to draw from imagination. Drawing from real life has no appeal to me (though drawing realistically does).
 Any artist that draws from imagination will tell you to draw from real life. Once you get that down it's waaaay easier since you have strong foundations in figures, perspective and forms. No one just started drawing from imagination.
 enhdless on April 6, 2020 Thanks for your recommendations!
 The pure act of representional drawing (drawing what you see, "copying it") needs just two basic actions: measuring and comparing.For that, you have to teach yourself how to see things in the most objective way possible, without meaning. Don't see a dog or a head or a leg, but just a mass of shapes, lines, areas. Measure them, compare them. It's all about that.People think drawing is in the hand, but it is in the eyes and in learning how to see things differently.Good luck! It can be very therapeutic and rewarding.
 I recommend John Ruskin's classic "The Elements of Drawing"."Supposing then that you are ready to take a certain amount of pains, and to bear a little irksomeness and a few disappointments bravely, I can promise you that an hour's practice a day for six months, or an hour's practice every other day for twelve months, or, disposed in whatever way you find convenient, some hundred and fifty hours' practice, will give you sufficient power of drawing faithfully whatever you want to draw, and a good judgment, up to a certain point, of other people's work: of which hours if you have one to spare at present, we may as well begin at once."
 I actually started Drawabox for the same reason, and I must say that I like that change of mindset. It's feels good to start digging into something that is not directly related to software.
 I am trying to learn how to draw too and finding it very hard. I am using a Wacom tablet and man is hard to draw like that. I am learning face drawing at the moment and it seems impossible. More practice I guess.
 I am going to try to get better at the thing that foils me the most: faces
 I'm studying Quantum Computing for Computer Scientists [1] - until I found this book, I thought anything covering quantum would be too physics oriented. As the title implies, this book is nothing like that, covering all the mathematics needed (matrices and relevant operations) to then understand various topics within QC ranging from Algorithms to Programming Languages to Cryptography, all in largely self-contained chapters.I'm currently working through the Algorithms chapter, which builds up from Deutsch's Algorithm [2] all the way to Shor's Factoring Algorithm [3], but I will definitely end up going through most of the chapters.
 Morse code. Started today by learning the alphabet in half an hour using a Google creative project[0] and quickly realized the challenge will be thinking in the sound/rhythm of the letters (instantly hearing/deciphering them) so I found a video[1] and then watched another video[1] which confirmed my hunch that it's better to focus on the sound than the notation.Now I have GBoard w/ morse as my default keyboard on the mobile. Works well enough for short messages (and typing in URLs with autocomplete).Edit: And I've been learning Spanish for months already so that's still active.
 omg. This was AWESOME! Thank you for sharing this. I just finished that tutorial and it was great. Very well done- Never done Morse before and 1.5 hrs later Im writing this comment (including punctuation...very slowly...but musically) via morse!I think my favorite moments were learning that v uses the motif from Beethovens Vth and `!` = Candy+mustache
 > v uses the motif from Beethovens VthBrilliant observation, this one will be impossible to forget now!edit: And I'm glad you found it useful! I've always wanted to learn Morse but never found the time/inspiration before that little learning app, which made the dive in so easy!
 I've learned a ton about the homeless population and shelter process.I've been a volunteer leading health assessments and triage (via volunteer Telehealth nurses) at our local men's shelter. The shelter has even experienced a complete move in the last week.A few huge points, however:* Homelessness isn't always a choice - and especially in this situation it's causing panic.* Our shelter system needs much greater support, and many organizations need better communication and integration.* Paper is alive and well some places, others are quite a bit better technologically. There is much room for process improvement.* While I am selfishly getting out of my own house and interacting with people, none of them are in anywhere near an ideal situation - and it's affected my mental health somewhat. I'm grateful for personal protective equipment, but reuse does concern me.So much more I could go on about, but I can say during this period I've learned a ton more about homelessness, the process, and have kept people from entering the shelter thanks to our fantastic volunteer nurses who need to practice in a limited capacity for COVID-19 screening.Volunteering is also something that has turned into quite a calling for me right now as well.
 >> I'm grateful for personal protective equipment, but reuse does concern meTo help with this, studies indicate that you can heat items in the oven at 70C for 30 minutes for effective sterilization without compromising the masks. More detail at [1]. My household is also using this technique on things like incoming mail, etc.Bravo on your work - stay safe!
 Music edition/production with Reaper:https://www.reaper.fm/They've been so kind to issue a temporary free license to help with the isolation. Their license model is very liberal anyway, but the gesture was well appreciated.I own a Yamaha E363 keyboard and a Stratocaster, now I've bought a Behringer U-Phoria UMC204HD soundcard and an Audio-Technica AT2020 mic to complete the budget home studio. Amazon.es is working faster actually. However I wish they kept orders bundled, instead of delivering them apiece.There are many videos linked from Reaper website, but as a Spanish speaker I prefer this guy, that's absolutely great:https://www.youtube.com/channel/UCEkUr7EAx4LwIv2gp2pwvPQI'm also going to learn to airbrush. I've had the gear for some time, but now I'm seriously putting the time.
 A very cool, overlooked, and timely feature of Reaper is NinJam which is a way to “jam” with people remotely through a fixed time-delay.It’s been around for at least 15 years, but looks like the author has recently started updating the feature again. Check it out!
 That's such a good idea! How are the latencies worked out?
 The delay is extended to a musical unit, I think a full bar or a measure. So the latency is "musical" but really high.
 kitotik on April 6, 2020 You set a preconfigured time - I think it defaults to 1 bar.It takes some practice and getting used to, and obviously isn’t quite the same as being in the same room, but it works well enough to stumble upon some great serendipitous moments like any good jam session :)
 Thanks for the heads up about Reaper! I've been meaning to get back into music production.
 How to raise a good human, be a good dad and husband.Relationships take a lot of commitment and effort. It took me a while to learn how to communicate effectively with my wife so we’re fighting problems and not each other.Babies really test your patience. They are hard to reason with so I have to keep my emotions in check and always be calm even if she is throwing a massive fit. But sometimes they really get your nerves when they cry non-stop for half an hour.
 It’s been both great and terrible to be cooked up in a small flat with my wife and child. I’m always happy to see comments like this. I wonder if there’s a community for the M(o|u|a)ms/Dads of HNAny tips for communications with partners?
 What. A. Minefield.Here's what we're trying- When she or I are upset, name the emotion at the earliest opportunity, e.g. "Hey, what you said back there hurt me, and I'm kind of embarrassed to be hurt by something like that but that's how I'm feeling right now..."- This sounds like a bunch of whiny nonsense, but we've both found it takes a lot of heat out of a situation, and avoids a snide or sarcastic comment that might make things worse later. This is the slow-burn kinda situation.- Sometimes there's no time to think about that and one of us just exclaims in anger or hurt about something. I don't know what to do about that; it just means there's a lot of work to do afterwards.- Good luck :)Edit: oh yeah, this assumes you're both ok having a difficult conversation in the first place. If implied criticism is a no-go zone, then... I wish you even more luck :)
 "we talk more about the good stuff than about the bad stuff,"20:1 minimum good to bad. Minimum. Even one "bad" a week may just be too much.Also, limit the relative number of times you approach with something that "needs doing". You can't let your relationship turn into mere help-mate-ism.
 First - this is an amazing comment! Solid, concise, and really highlights the important stuff.John Gottman has a number of books on this topic and I'd highly recommend them.
 Thank you for mentioning John Gottman this looks helpful.
 odysseus on April 6, 2020 Three tips that have helped with my wife and I:1. You can usually recognize when you’ve said something in a tone that you regret. Within a few minutes of saying it, try to preemptively and meaningfully say you’re sorry for that tone.2. If you’re discussing a topic that one or both of you are very passionate about or that triggers high emotions, each person should stop and write down what the other person is saying. Then repeat back what you understood about what the other person said. This helps both people understand that they are being both listened to and understood, and usually calms everything down. (We’ve only needed to do this 2x in several years of marriage, but it’s been helpful each time.)3. A tough one, but try not to discuss any hot button topics when one or both of you is tired and/or hungry and/or driving.Finally, someone else in the thread mentioned high ratios of good/complimentary interactions to bad ones. This is very important. Be grateful for your spouse and show it, every day. This will go a long way toward improving most any relationship.
 a9zz on April 6, 2020 It's both joyful and really painful. I have a one year old and we are on 60sqm with no balcony. My wife is pretty far along on the ADHD spectrum, which has its upsides but is definitely NOT conducive to getting any kind of deep work done. We fight often these days if i'm being honest. Luckily we are good at moving past shitMy focus is on embracing our current state as the new normal and trying to be happy and calm amidst all the uncertainty. My son is blisfully unaware of everything and truly a joy to watch.In reply to op: I'm currently studying (relational) databases.
 You are not alone. I have a toddler and I am going through exact same situation. I can totally relate what you said. It's very hard, but I think slowly we learn to navigate it.
 I highly recommend taking a walk outside if you can. It is really challenging to be stuck inside right now especially if you have kids.
 > But sometimes they really get your nerves when they cry non-stop for half an hour.For no apparent reason ... sighAre you using any resources that you'd care to share?
 Develop a checklist of stuff to try:1. Does the diaper need changing? 2. Does the baby want a diaper? 3. Does the baby want to be held? 4. Maybe some clothing is uncomfortable for it? 5. Does the baby need to be burped? 6. etc.Walk through the list until something works or until the baby + you pass out. If you spend 2-5 minutes on each item it'll take maybe 20-30 minutes to go through it. If it doesn't work the first time (and you haven't thought of / noticed anything else while going through the list...) then do it again.It feels good to have a plan, it gives you something to do that might help, and for those occasions when nothing works it at least helps pass the time :)
 7. Is the baby hungry? 8. Is it too cold/too hot for the baby? 9. Does the baby have a rash in the diaper area? 10. Could the baby be teething (may start earlier than 6 months in)?I agree, it's good to memorize or even write down these things. Over time, one learns to move quickly through that list, and which items are more likely at what time.(RE 8. it's easy to worry so much about the baby having it warm that you end up overheating it.)
 These are great additions!I can't believe I listed diapers twice and left out "Does the baby want a BOTTLE" - D'oh!! :)
 Well, the reason to list those steps in the first place is because in between changing diapers, clothes and room temperature, one can actually forget about giving the baby a bottle. I know I did a few times :).(It's easier now; mine is 8.5 m.o. and we've finally settled into a proper feeding rhythm, so we know when to give food by looking at the time.)
 ascii_homer on April 6, 2020 I found this useful: https://raisingchildren.net.au/ and Quebec has a guide for pregnancy to 2 years old: https://www.inspq.qc.ca/en/tiny-tot/consult-the-guideFor the first few months I found this book great: https://www.amazon.ca/Happiest-Baby-Block-Harvey-Karp/dp/055...
 I'm learning pentesting for fun. I'm mainly active on hackthebox.eu. I might get my OSCP one day, for fun as well. I do still think the certificate comes in handy despite the fact that I'm applying for web developer positions at the moment. I'm happy I'm learning this though, I'm already noticing that I develop differently, because the little I've learned about pentesting taught me that true cyber criminals are hungry to break into your systems, and they only need one shot, one small misconfiguration and they're in. Or at least, that's how it works on hackthebox ^^I'm also doing some OSINT (open-source intelligence) by simply giving myself assignments. The assignments on hackthebox.eu were not all that great and OSINT is one of the few disciplines that you can do in the real world without permission, since it's all about accessing public data.I flip back and forth between the 2 disciplines. I don't know why it attracts me. It just does. I also notice that learning this stuff is completely different from programming. And to an extent it's one of the few ways that gives me the feeling that I'm "living and moving around" in cyberspace as opposed to "constructing" (i.e. programming) in cyberspace. I guess typing cd and ls on a lot of Linux and Windows practice boxes give that effect. And the cool thing is, you learn a lot quicker about all kinds of services. For example, I never knew about rsyslog, logger or the mqtt protocol (Linux boxes). I never knew about Kerberos, Active Directory and smb (Windows boxes).I'm happy I did some master courses in cyber security beforehand. While I'm really new to a lot of things, I've gained a lot of what psychologist call crystalized intelligence in this area. So it's all quite easy(ish) to understand. Things get harder when I have to reverse engineer binaries or debug in x64 assembly. It's still doable though.
 I too have an interest in OSINT. Inspired by the work of Bellingcat [1] (who have uncovered some serious warcrimes through their OSINT work).
 I am also learning pentesting, for the cert and to have some methodology in my job ( somewhere between devops/compliance/security). First week into PWK course, I used hackthebox and thecybermentor's practical pentesting course to build up confidence to attempt getting that long wanted OSCP title.
 Awesome!I've heard that OSCP is a lot more CVE based than hackthebox. It apparently also has a lot more rabbit holes compared to hackthebox. I haven't checked out thecybermentor yet, but a friend of mine has and he seemed to like it as well.
 It is more about identifying CVEs and exploits than HTB is, but there is still a good amount of finding misconfigurations, like HTB has. OSCP helps you build a methodology and a mindset for pentesting, and finding CVEs with existing exploits makes that a little easier than HTB, where you are not under time pressure. HTB would be my goto to prep for OSCP, I wish I'd found it before.
 Anyone who's up for doing hackthebox together, my email is in my profile. I think it'd be a ton of fun to team up!
 World-building.After reading about storytelling, I realized that I'm as fascinated to a well-crafted world as good plots and characters.There's not much to read about, as a fiction world can contain as much detail as the real world. I'm spending time looking at the fiction worlds that I like and taking them apart.As an exercise, imagining places and races is also interesting. You'll be amazed by the amount of details required to fill the gaps in order to "see" something in your head.
 NK Jamisin (3 time Hugo winner) talks about world building as a technique. It's something mentioned in this great video about why "The Expanse" is awesome: https://www.youtube.com/watch?v=cGIovBe7pL8
 mkl on April 6, 2020 *Jemisin: https://en.wikipedia.org/wiki/N._K._JemisinHugo Award for Best Novel three years in a row!
 ericax on April 6, 2020 Gotta watch that, thanks!
 You would probably have fun building a hard magic system. Hard magic being a system that has strict rules for how things work. Soft magic being Gandalf style where how it works and how it's limited is unknown.
 One thing I've been thinking about recently is conservation rules. are there any popular fiction worlds that explore conservation of e.g. magic? The only example I presently know about is https://www.hpmor.com/chapter/78 (search for "conservation").
 Most authors will sacrifice some amount of "realism" in the interests of story-telling (compared to Yudkowsy with HPMOR at least). A couple of Magic examples come to mind: * Brandon Sanderson does a lot of Magic impacting Physics. The magic is often proper unexplained magic - but it's impact on Physics is pretty well modeled. In the most recent Mistborn book - there's a remark that explains that when the character magically reduces their weight while flying through the air - their velocity increases. I think Brandon points to that - but says that he loves the consequences at that level - getting to the point of red-shift/blue-shift for bubbles of fast/slow time is story breaking. See also his laws of magic: https://www.brandonsanderson.com/sandersons-first-law/ * Pat Rothfuss in the Kingkiller chronicles has a magic called "Sympathy" where rule 3 is "The law of conservation".
 ericax on April 6, 2020 Hard magic system sounds very interesting.Although "unknown magic" and "ancient powers" are convenient, it bothers me to think there's no consistent system underneath it.In the setting of the world, people in the world can view it as unknown, but the author is the god and should have a decent idea of how everything works.
 Would you be interested in doing that as a profession? Storytelling and world building is sorely underappreciated.I don't have much capital right now (I haven't raised - just personal savings), but I'd like to hire some folks to do this for my startup.
 I've done a few world building workshop and magic-system designs[1] workshop in a "nerdy-community centre" a few years ago. The community and interest for this is generally pretty small.I was thinking about doing an interactive online version now that we're all stuck inside.[1]: Someone in another comment mentioned designing hard magic systems, but there doesn't a whole interesting world of different magic systems out there: https://en.wikipedia.org/wiki/Hard_and_soft_magic_systems
 ericax on April 6, 2020 Curious, why do you want to do that for your startup?Is your startup a game studio?
 If you speak French, there is a conference by one of Ubisoft's creative directors about the Might and Magic world building techniques and choices on the BNF's Fantasy podcast.
 Yep! A recurring hobby of mine is writing about a not particularly deep universe I was fond of in my teenage years. World-building my own canon so to speak.
 Although you said there is not much literature around the subject, did you find anything? This has always been one of my favorite aspects of The Elder's Scrolls and, of course, Tolkien.
 Not literature, but a YouTube playlist. Edgar from Artefexian does short videos on realistic worldbuilding and constructed languages.https://youtu.be/J5xU-8Kb63Y How to build a classical solar system
 ericax on April 6, 2020 As a reference book, the Planet Construction Kit is good and comprehensive.Although reading reference books like this can be a bit dry, it helps you recognize the elements that an author makes up for his or her world when you see them.
 This sounds fun. Curious what you read about storytelling that sparked an added interest in world building?
 Building a guitar! It's my first attempt at building an instrument. It's going well so far, mostly using threads from TDPRI as guidance and a body template from there as well. I opted to buy a neck from Warmoth since building a neck seemed especially intimidating and requires more special tools. Today I finished soldering the electronics, bolted the neck on, strung it up and it actually works! Now to take it apart and work on the finish... lots of sanding ahead.(I'm pretty sure it's uncommon to put the whole thing together before finishing, and then take it all apart again, including the electronics... but I wanted to know nothing would be terribly wrong before I spend hours more on finishing!)TDPRI's Tele Home Depot is a great source of info- https://www.tdpri.com/forums/tele-home-depot.46/My own build thread: https://www.tdpri.com/threads/first-build.1011061/
 Having put together, and modded a lot of guitars in my life, just make sure that the nut is cut properly, that the neck and body fit is nice'n tight, and that the neck is properly leveled.That should fix most errors. Learning how to level frets is a truly valuable skill for any guitarist. If a guitar is fundamentally sound (quality wood, straight neck with functioning truss-rod, good fit between neck and body), then a good fret-level and properly cut nut will clear most problems.
 That’s awesome! I did the same a couple of years ago (took about 1 year to complete) and it’s one of the things I’m most proud of, so I hope it feels as fulfilling for you too!
 Cool! Thanks! I'm most worried about the finishing part, honestly. What did you end up doing for it?I keep debating between whether to leave the wood visible (with Tru Oil or wipe-on polyurethane), or paint it (lacquer, super labor intensive, slow, expensive), or dye/stain it and use a clear finish on top of that.
 I ended up filling the grain with wood filler dyed black and make it pop and then layered a few coats of trans-red from a spray can so you can still see the grain. It’s not a glassy finish but that’s what I was going for and the colour is amazing! I always wanted a red strat with a black pickguard and gold hardware so I thought why not!I’m personally a fan of leaving the wood visible but the best thing is you can do whatever you want and it’ll be awesome because you made it.
 this is so cool, I've been meaning to get a bass guitar and start learning, but I'm always busy doing something else.
 Pick one up! There’s no time like the present :) It’s a long-term learning thing anyway, definitely one of those “best time to plant a tree is 20 years ago” things.
 So cool!
 Currently I'm learning video editing on Davinci Resolve.https://www.blackmagicdesign.com/products/davinciresolve/I collect examples of advanced C++. Noticed the lack of educational content at this subject, and planning a short course, something like "Exceptional C++" style, but on video.In our distributed team we have a practice to make video presentations for colleagues, so I have experience of delivering visual content to tech audience. However, I see that particular course like a high-quality content, with diagrams, animations etc.That's how I found Davinci Resolve, and you know, it's fun to learn it (even it crashes more than production-ready application supposed to). The only thing that buzz me, is not to forget about the initial goal:)
 Video editing is a very usefull skill. It's rewarding to be able to quickly trim, stitch and edit some clips and maybe throw in some effects here and there.Davinci Resolve is a surprisingly good tool and for a non-professional it would be my no. 1 recommendation.
 I edited my first video this weekend after installing kdenlive and watching a couple of tutorials on youtube.Learning even the simplest things in another area can be very empowering and rewarding.https://kdenlive.orgSuper slow intro to the tool itself: https://www.youtube.com/watch?v=LIIdOlnpRzQSimple but effective techniques: https://www.youtube.com/watch?v=cX_xMXzr2XY
 ... Don't laugh: CI learnt programming mainly through various scripting languages, some of which had some relatively simple visual output available, which I personally found invaluable for learning and visualizing.I realized that better visual output was the main thing holding me back from doing more in C since there are so many options, often complex, involving much boilerplate. So my mini project is essentially exploring the simplest, most minimal possible ways of drawing pixels on the screen in Linux.So far tried fbdev (but doesn't work well with X), now playing with XCB.
 Why would I laugh?I've done a lot of C programming over the years and I still consider it one of the most elegant languages I've had the opportunity to work with. With the right skillset, you can be as productive as a programmer of any other language or system.And it's great to see where some of the things we take for granted in programming, come from.If you want to draw pixels, give Cairo a try. It's fun to use!
 Nice to hear from people still enthusiastic about C :)Thanks for the suggestion, I hadn't considered Cairo, for some reason I thought it was only for SVG, maybe from it's use in Firefox. I will try it out once I get out of XCB territory.
 > So far tried fbdev (but doesn't work well with X), now playing with XCB.Another idea would be to use SDL which essentially provides functionality to make windows, draw pixels and handle input/output. If you do not want to use any library at all and do not mind low "resolution", you could use your terminal as window and regard characters as pixels. Sure, there is the curses library to abstract away different terminals, but if you do not care about platform independence you can just directly write escape sequences to the terminal.
 I was indeed trying to avoid the big libraries, since this is just for personal use I don't care about cross platform which allows me to escape these potentially - I may well end up back at the SDL + OpenGL level later when features or performance are a concern.My current goal is to find a balance of least dependencies and least boilerplate to draw a pixel buffer so i can play with C, nothing more. Once I can do that without lots of fluf then i may be attracted to more advanced or complex methods later on when performance is desirable.I have done some visual things with the console and printf alone in the past which gave me a taste of C, but now I want some real pixels :)
 You may want to try raylib. It's written by a teacher who uses it in the classroom and geared for this kind of "let me code games in C but with only one dependency" goal. It does more than you need but that's a common theme of useful libraries.
 Thanks, that sounds about right, i'll take a look.
 kovac on April 6, 2020 Have you tried A allegro5? Any take on which is better? I've tried both, but I'm too much of a newbie to have a reasonable opinion. Thinking of getting back on to one of the two.
 jfkebwjsbx on April 5, 2020 Then you should be using X11 directly!
 My goal is to attain a balance of least dependencies and boilerplate. From what I've read so far it seems that implementing xclient protocols directly would require considerably more boilerplate than using XCB, (and my understanding is that XCB is just that: a generic xclient implementation and nothing more).Please do elaborate if I'm wrong though! I would be delighted if it's possible to implement a simple subset minimally purely for displaying a pixel buffer without XCB?
 I'm not necessarily recommending you go this route in general, but this is a fantastically actionable article for going deep on various Linux graphics APIs including X11 right on the socket: http://betteros.org/tut/graphics1.php
 Yes, I really like this article, I used it to get going with fbdev before I moved on to XCB, but only skimmed the remainder since it was avoiding libraries completely it was getting a little verbose (although on second thought DRM doesn't look too bad, and also I missed libdrm should probably see how much that can do).Just realized now revisiting this that the author also showed how to directly implement xclient! the example is rather large confirming my suspicions RE parent comments.
 jfkebwjsbx on April 6, 2020 I meant using Xlib, the client library for X11, which is going to always be available if you are using X! You can of course implement the library parts yourself, but that is more boilerplate.
 XCB is actually lower level than xlib, in that sense it is more directly using X11 because unlike xlib it only really implements the client protocol and wraps it up into an interface.I was however planning on trying out Xlib anyway on my path of exploration from simplest/lowest level to complex/higher level libraries: fbdev, DRM < DirectFB, libdrm < XCB < Xlib < SDL et al.
 Out of interest, why would people laugh at someone learning C? I know plenty of people using C in all manner of domains, choosing it over C++ or Rust for fair and sensible reasons - I'm not a C person myself, but it certainly seems extremely useful to have in the toolkit!
 I want to learn C not (only) because I think it's useful, but because I think I might like it. I have a particular interpreted language that I like, enjoy and know inside out, now I want to know a compiled one in a similar way.To answer your question: I get the impression from various tech news on "hot new languages" that C is the incumbent systems language that people put up with but don't really love, and yet I want to try and love it. I've developed a taste for minimalism, simplicity and a degree of brevity in programming, I have a feeling I might find C more suited to me than C++, Rust, Go, Java etc for this reason despite the lack of "modern" features.
 I love C. Lots of people do.
 wyck on April 5, 2020 I've noticed this a lot on hackernews, there is an apprehesion to say certain things as though there is some sort of pedigree or gating when discussing topics, especially when it's personal...there isn't.Case in point: The comment below mine...
 I started coding 10 years ago (damn I just figured that...) learning C at my engineering school for 2 years. Never had to use it ever since (mostly working front-end and webAPIs) but I'm still glad I studied it to learn the programming foundations. I would probably choose Rust or Go today though.
 > why would people laugh at someone learning C?I suppose because of the perception that many programmers already know C. Which is true, but only some fraction know it well, which is far more important in C than in most modern languages.
 [flagged]
 There are plenty of reasons to still learn C even if better alternatives exist for most new projects. There’s so much important software out there in C (and C++), for example the Linux kernel.
 And C is still king in many domains, eg embedded development.
 wyck on April 5, 2020 whoosh..
 Clojure, Fulcro and Kafka Streams.All 3 are a mind expansion coming from other tech. Cannot recommend them enough :-)
 I'm a big fan of the first two but why KS mentioned in this group of 3? What's so special about it in this combo? Or is it unrelated?
 Sketching on paper. There is a great free resource for learning how to sketch.https://drawabox.com/
 Had never heard of drawabox. Loved their description[0]. Resonated so deeply with me.> Drawabox's goal is to provide beginners with a strong foundation, and to equip them with the things a lot of other courses and tutorials tend to take for granted.> It is not going to make you a professional on its own, but it will teach you how to practice, how to use the resources available to you on the internet, and equip you with the tools and skills you need to take advantage of them
 Eternal love to drawabox
 wow this looks good. I will have to try this with my daughter. Thank you for sharing.
 It's a basic one, but learning an instrument! Namely, the drums. I've tried guitar and bass before, but neither stuck. I'd been thinking of getting a e-drum kit for a while now, and the quarantine gave me a good excuse. I'm loving it so far, just playing along to songs I like, but since I'm self-learning I can already tell my technique and drum kit setup is off. I keep having to adjust the drums, the snare especially, and haven't found the optimal position for everything yet. But it's grabbed me more than any instrument before, and I'm having a blast.The kit I got for those curious: https://www.guitarcenter.com/Alesis/Nitro-Mesh-8-Piece-Elect...
 The alphabet was created not the language itself. Hangul is indeed designed for the Korean language, a natural language.
 You are correct, my mistake. Thank you for the clarification.
 I'm learning about trading bots. It allows me to learn new things about software développement (réactive streams forum example), mathematics, machine learning and deep learningI made it as a side project : https://github.com/cassandre-tech/cassandre-trading-botAnd i am writing a guide about what i learned : https://trading-bot.cassandre.tech/
 This is incredible - Thanks for sharing. Kudos for using the latest goodies provided in spring-boot.I had an older version but wasn't using reactive. Definitely, this looks promising.
 Thanks a lot for your message :) I'm glad you like it.
 was your bot profitable? have you done real trading with it yet?
 Hello :) Well, my bot in fact allows you to build your own strategy quickly so my bot does not include strategy. I'm starting to build a strategy with my bot and ta4j... using kucoin sandbox right now. For the moment, still learning, not yet profitable :)
 this is interesting! thanks for sharing
 My pleasure :)
 I'm writing a book at the moment[1], which means all my learning is focused on the table of content I made up a year ago.But if I had time on my hand I would learn about:* Adobe after effect not to only to edit videos but to animate!* Illustrator, because it's the basis of any graphics* Blender, because I want to learn about 3D graphics and this seems to be the reference* Unity, a gaming engine, because I've always wanted to make a FPS game* Phaser, an HTML5 gaming engine, because I want to make a multiplayer game with websockets. I'm thinking of starting with an online board game though.
 learning Adobe After Effects, Premier, and Animate are on my list. I use to use Flash quite a bit back in 2002.
 I'm really enjoying the book!
 I've been dividing my life into different parts - fitness, technology, wisdom, food and love.Fitness, I cannot hit the gym anymore so at home I'm doing body weight training goals. Current goal is 1k squats a day(done), 1k burpees day(70/day right now, It's 1 week in so progress is very fast right now), and a bodyweight program my gym is offering.For tech, I'm learning machine learning applied to a environmental program I'm trying to build which I'm passionate about.Wisdom, this is subjective but I'm going back into old philosophy books. Just finished some work by Stoics and will read the plague by Albert Camus.food, Every other day I'm trying to learn how to cook something new. I tried baking which is awesome, today I will try to make a chilli on a pot(never did that before).Love, this is the hardest but also the easiest in theory. I'm trying to connect to the things that I love but because life got busy, I didn't connect to as much. This included just having conversations with friends, training my dog, loving how my body can do complex movements(squats/burpees), the beauty of technology, or just observing nature.
 First of all congrats of mental fortitude to do 1k squats/burpees. That's quite insane. May I offer an opinion here - doing 1k body-weight squats is like doing 'hello world' 1000 times and trying to progress in programming :) Bigger ROI if you fill up a backpack with books and do 100 of them from strength, time (and probably endurance) perspective.
 Can you take a bit more about the environmental program and what you're doing with ML?
 1k squats a dayHow is that tendonitis?
 Clojure! I played around with common lisp a bit a some months ago, though I basically used none of the lisp specific features like macros. After reading a few blog posts on functional programming and "the lisp way" I have decided to buy a book on Clojure. My end goal (for now) is to build a basic website with a backend.
 Try out https://github.com/fulcrologic/fulcro-template full stack Clojure web app template powered by Fulcro.
 Fulcro is huge and might be a lot if you're just starting to learn Clojure too. IMO Luminus is a pretty nice option that lets you start simple and add more complicated pieces as you require.
 what book are you working through?
 Exploring Elixir & Phoenix. Solved some AOC & exercism problems with it, and wrote a BF compiler. So far, enjoying every bit of it. The language itself is beautiful! Codes are available on my Github[1] account :).
 I’ve been doing the same in fact. I’ve always had a soft spot for Erlang (and now Elixir). I wrote a pretty large Erlang app back in college for a distributed system in a Biology research project.I’ve been enjoying working with it - taking a little break but definitely enjoying Phoenix as well. It’s been refreshing to work through a “big” web framework that feels straightforward to reason about.
 Here's a great course from Udemy using Elixir and Phoenix: https://www.udemy.com/course/the-complete-elixir-and-phoenix...
 What inspired the BF compiler project?
 I thought it will be easy to implement and also a bit of nostalgia.I was a 2nd/3rd semester CS student at that time when I saw BF code for the first time on a Competitive programming platform named SPOJ[0]. Later, I found it again on a code golfing website[1].I thought it would be fun to learn as the language only had 8 commands! I learned it and wrote a tutorial[2] on my native language for my best friend so that we could have some fun together with it :D
 What is "AOC"?
 Yes, I meant the Advent of Code.
 Right now, I'm learning math. I met a PhD via Discord who is giving me problems to work and checking my solutions. It's been quite fun so far, working on Real Analysis and Abstract Algebra.I'm also doing baking; baked my first loaf of bread yesterday. Really interested to learn (and eat!) more.I'm tempted to pick up a cheap instrument and learn one as well, or delve back into Python some more. Or drawing. My main issue is focusing now, sadly. Any tips there would be appreciated.
 Focus has been an issue for me too. I think it helps to view yourself as having a limited number of focus 'slots', but to view each focus as just a medium-term commitment (a few months or years). So e.g. you're not choosing an instrument _instead_ of drawing, you're just choosing to learn the instrument _first_.Setting specific goals for each month, which I track on Trello, has helped me a lot. It encourages me to make concrete progress and not tackle too many things at once, but reduces FOMO since I know I can always go a totally different direction the next month if I want.(I blogged a little about focus: https://brokensandals.net/three-books-on-focus/)
 I have a similar problem. I do what interests me in the moment and I don’t make myself feel bad when I don’t make the progress I wanted on something else. I think I’m happiest that way.
 I'm curious, how could someone find a PhD/researcher on Discord, esp. for this kind of purpose?
 I found them on /r/math, actually, but they linked me to Discord.
 thanks!
 My advice would be to define in multiple realms what you consider to be strongly focused, while both realizable and healthy in the long-term.
 I've been working through the Abstract Algebra course at Harvard: http://matterhorn.dce.harvard.edu/engage/ui/index.html#/1999... as well as Bartoz's Category Theory courses.I've put that a temporary hold for the last couple of weeks to brush up on algorithms; I'm working through some select chapters of Concrete Mathematics, Programming in the 1990s, How to Solve It, and Algorithms. I find I'm not satisfactory at solving leetcode-style problems in what industry considers a sufficient amount of time so I'm working on improving my skills there.And I'm making progress on my own side projects as well. I'm testing the waters with trying to record my work on video to see if streaming might be a thing I could do.
 I'm writing a movie script.It's a horror movie about a guy who renovates foreclosed houses for banks. But one of the houses he goes into has a ghost in it. He has to solve the mystery of why the ghost is there before he can leave.I call it: "Repossessed"Working tagline: "This is for closure."
 Glad to see you taking on a creative outlet. Hope you are able to get it done before this is all lifted.
 High school is out so I am learning SIMD instruction sets, like AVX2 and SSE, and using these to speed up Hamming/Levenshtein distance calculations in Rust. Preliminary testing shows a 20x speedup using vectorized SIMD operations! The end goal is a full Rust library for edit distance routines.Sneak peek of the code: https://twitter.com/daniel_c0deb0t/status/124224838155819008...
 You could also consider providing bioinformatics routines such as global and local sequence alignment. Under the hood they're very similar algorithms.https://en.wikipedia.org/wiki/Sequence_alignmenthttps://en.wikipedia.org/wiki/Needleman%E2%80%93Wunsch_algor...https://en.wikipedia.org/wiki/Smith%E2%80%93Waterman_algorit...
 Though I probably won't implement the different weighting schemes, I currently have alignment traceback and searching (allow "free shifts" for the pattern string) features.
 Here's another recent SIMD aligner if you're interested:https://github.com/langmead-lab/vargas
 I took a look at the code, and read the paper. It seems that they directly calculate the entire 2D DP array, but use SIMD to allow each cell to contain multiple values, one for each query string. My approach uses anti-diagonals instead, but it is fast for one vs one comparisons, instead of handling multiple query strings.Regardless, my goal was to learn some SIMD and Rust (first time for both), so I did not read many background papers.
 One thing to keep in mind is for SIMD memory locality is very important; a diagonal vector with a standard 2D DP grid is gonna lead to a lot of cache misses. Just something else to learn about.
 Since I am storing the entire DP matrix as diagonal vectors that are flattened, I don't think there will be many cache misses. Each diagonal only depends on its previous two diagonals, and each diagonal is stored contiguously in memory.The problem with handling diagonals is that indexing cells and comparing characters on the diagonal becomes complex. Dealing with this without many branches (less branch mispredictions) is the hard part.
 Prolog. I think that genetic logic can largely be expressed in Prolog to enable doing some crazy stuff that hasn’t been explored yet. It’s crazy to me that synthetic biology hasn’t really used logical programming yet for gene design.
 Logic programming is badly underapplied in general, I think. Most of the amazing work in this area never seems to have gotten far out of academia (if at all) -- Prolog being the almost singular exception.Would be awesome to see some motivating examples for this application. It sounds really cool!
 In synthetic biology, the application is super clear.Let's say we want to make cocaine (or related compounds) in yeast (https://www.nature.com/articles/s41467-019-11588-w). Well, we know the biosynthetic pathway to get to that molecule (https://biocyc.org/META/new-image?type=PATHWAY&object=PWY-58...), and we know the biosynthetic pathways in yeast that intersect with that pathway.In the tropane paper, they express 15 new genes and did 7 disruptions.There should be a way to declare "I want this end product" and a system knowledgeable about the proteins associated with the reactions necessary to get there should be able to fit the puzzle of "ok, if you express these proteins you get that end product, and if you knock down these genes in the organism it should increase your production".This generalized system should be applicable to nearly any biosynthetic pathway, and I think there is definitely a profitable niche at being good at that.
 codekilla on April 6, 2020 Yeah, checkout Maude--really woefully underutilized. Some fascinating things around pathway logic that are applied to biology: http://pl.csl.sri.com
 That's amazing! I've never found that site before but I'm going to read some of their papers. Thank you for linking
 Maude fascinates me to no end. Currently I'm actually re-learning kdb+/q as I want to implement some things related to bioinformatics using it, but at some point I'd really like to do some things with logic/dependent types in biology. Happy to chat further grant eonias dot org
 Is there any reason why Maude is cooler than Prolog? Concurrency? Also - will email you!
 vfinn on April 6, 2020 Could you shed some more light on this amazing work you're talking about?
 Sure. First, I'd recommend checking out the website of HN user 'triska at https://www.metalevel.at/prolog -- there's more to Prolog itself than most people are ever made aware of.Frank Pfenning at CMU does some really cool research on concurrency using logical semantics and sequent calculi (https://www.cs.cmu.edu/~fp/). Session types might be the coolest thing out of this particular corner of the field, but there's so much more to explore here.Going back some decades, concurrent constraint programming (CCP) takes the position that concurrent processes communicate by posting constraints upon a shared store. Vijay Saraswat's ask/tell CCP model has been a real inspiration to me. As best as I can tell, his work is based on forward reasoning, as opposed to Prof. Pfenning's work, which appears to use backwards reasoning (as does Prolog). (There's an interesting duality between the two kinds of reasoning, which I am not at all positioned to opine on.)Some of the functional work I've seen on concurrency ends up going in a logical direction without realizing it; the more recent LVars papers (Lindsey Kuper and Ryan Newton) build up a lovely abstraction in Haskell that's conceptually the same as Saraswat's ask/tell logical framework, but they don't seem to realize it until several papers in. (It's all fantastic work! It's just a shame the communities have so little overlap.)Logic programming allows you to model mutable state, and it gives you high-powered tools to reason about how that state changes over time. As a concrete example, you only need term unification and logical variables to get undirected communication channels in a logic program. Unifying a variable with a term in one part of the program allows other users of the variable to match on it and obtain information about that term. In this sense, it goes in the complete opposite direction from functional programming, which eschews state and treats it as something to be derived from a stateless foundation.
 Cool. This subject is on my list and will probably approach it through Clojure's Core.Logic (a logic library inspired by both prolog and miniKanren) [1]
 I've heard Datomic was made by Clojure people and is really good software too, though unfortunately proprietary.
 All of those things are true. If you want to check out Datalog-using DBs in Clojure that are open source, here are two alternatives:* Datahike (similar to Datomic but similar): https://github.com/replikativ/datahike* Crux (a bitemporal graph database): https://opencrux.com
 gotts on April 6, 2020 Have you checked pldb/db-rel from core.logic?
 I haven't started checking the library yet... But I have it on my radar, since I'm already doing clojure I feel like it is an easy way to "add some prolog" to my programs :-)
 I’m fascinated by what this might look like. Have you written anything on this concept?
 Not yet, I was in the middle of building a script to convert metacyc (https://metacyc.org/) to a Prolog database when COVID-19 hit - now I'm distracted figuring out the logistics of doing local production of diagnostic enzymes.I've written something for the biotech crowd (to get DNA synthesis from FreeGenes), so it uses some odd vernacular and definitely isn't perfect for tech crowd - no actual code implementing it yet, but has some useful historical context of how this lands in with everything else.https://docs.google.com/document/d/1odf8q7ir9NsS0zPvArEg0j0W...
 Have you any thoughts on medikanren? I think they are generally _thinking_ as you do but in the short term that project is more about searching medical knowledge bases as opposed to logical programming of/with genes.
 I can't find that much information about it online, but it looks great from a outside perspective! Wish they had a paper or something.
 Me too. We'll write one soon. Right now we are hacking on mediKanren to do drug re-purposing for COVID-19.I also work on miniKanren and am very interested in synthentic biology. We should talk! Please email me.--Will
 Will do Will! Small world.
 As a great opportunity to learn, volunteers behind SWI-Prolog will very soon organize another round of the online class they did back in 2018: https://twitter.com/SWI_Prolog/status/1246440776470536192
 Thanks! Signed up.
 Trying to improve some of my intuition in linear algebra, more specifically in matrix decomposition and SVD.https://ocw.mit.edu/courses/mathematics/18-065-matrix-method...
 Had similar intentions half a year ago, it really clicked for me after watching the linear dynamical systems lecture by Boyd. How rank of a matrix, matrix norm and singular values relate was an eye opener. Thereafter it was easy to connect singular values and the stability/robustness of a system intuitively. Great teacher, I can only recommend :)https://www.youtube.com/playlist?list=PL06960BA52D0DB32B
 I've been into literature and philosophy for some time now. I'm following the "Masterpieces of World Literature" course [1] and have finished "Beyond Good and Evil" last month, currently reading Kierkegaard's Either/Or.Aside from that, I'm also participating in Leetcode 30 days of code challenge [2]
 Same here :)Just started readingAt the Existentialist Café: Freedom, Being, and Apricot Cocktails with Jean-Paul Sartre, Simone de Beauvoir, Albert Camus, Martin Heidegger, Maurice Merleau-Ponty and Others by Sarah BakewellIt has a really nice narrative and tells the story of the aforementioned. Kierkegaard also makes some occurrences.
 if you tend to like that book I would highly recommended Walter Kaufman's Existentialism from Dostoevsky to Sartre and Goethe, Kant, and Hegel
 Second this also. Also enjoyed Will To Power as a kind of well of "things well said, which make you think, " even if they're not strictly correct.Bertrand Russell wrote a lot of very accessible Western philosophy overview or survey books which I found orienting:https://www.thriftbooks.com/w/a-history-of-western-philosoph...andhttps://www.thriftbooks.com/w/the-problems-of-philosophy_ber...the former is online here:http://www.ntslibrary.com/PDF%20Books/History%20of%20Western...About this one he said :(paraphrasing from memory now), "A big book is a big evil. You may ask why then the author proposes to lay before you the present work..."He's a hoot.
 Whenever it comes to philosophy, I always recommend Peter Singer -- just about anything by him is great. Consider Practical Ethics [1], or the recently-released-free The Life You Can Save 10th anniversary edition [2]
 I am taking this course[1]: Programming Languages. It emphasizes on big ideas behind languages and functional programming which is very interesting and enlightening.You will implement a type checker and interpreter through this course(I am struggling ML's pattern matching now but feel quite pleasant ).
 I took this course with Dan at UW. It was definitely one of my favorite classes. The way he taught made things really interesting.
 One of the best courses ever.
 Yes, the only course I ever finished and finished wiser of the scores I must have enrolled in so far.
 Model Thinking, from coursera. A funny coincidence; last week I reached the... SIS epidemiology model! Rarely so relevant.It's quite interesting. Two of the things that fascinated me most so far are emergent properties (such as in cellular automata models), and what he calls the models' "fertility".As an example, with a few adjustments (ie the "recovery rate" becomes a "churn rate", etc) the SIS model could be adapted in marketing, viral or not, to measure an existing campaign's efficiency, or try to predict the means a future one might require based on different assumptions and goals.Also acted as a nice statistics 101 refresher / intro
 I'm reading the 'Model Thinker'. That's a great course.
 Quantum Computing for the Very Curious: https://quantum.country/qcvcWonderful into to the topic and easy to understand. It's my first foray into the field so I really appreciate the Author's writing style.
 This is awesome! thank you for sharing it. I was looking for something like this.
 Decided to reverse my long-time TODO list and start from the bottom because I realised I'd never get there otherwise. It feels so good so I advise everyone to go and do the same.For me it looks like this, I'm working on a bootstrapped simple SaaS tool for devops (docker container monitoring):- Clojure so I'm learning FP and Lisp- Clojurescript/Reagent so I'm learning SPA/react- MongoDB so I'm learning NoSQL- Vim so I'm learning editing like a boss- SaaS so I'm learning marketing (SEO/Blogging to start with)
 I'm studying DS and Algorithms, I am a self taught developer and I'm trying to fill some gaps in my general CS knowledge.There's a project I want to work on but I feel a bit overwhelmed and don't know where I should start, I'd appreciate some advice here.I want to create shogi(Japanese chess) server, similar to lichess, the thing is that I've never done anything similar to this, I've been reading about web sockets, this seems like a good place to start. I plan to use elixir for the backend, is this a good choice? Lichess uses scala, should I use this instead?
 My advice would be don't bite off so much at once where you'll risk getting discouraged. Part of the reason you may be feeling overwhelmed is that it sounds like you're combining three projects: learning a new programming language, learning network programming, and writing an application server in a new (to you) domain. Any one of them is potentially enough to keep you quite busy.Why not instead start with a language you already know, and figure out how you'd sketch out a standalone game engine (forget about networking for now) in that. Then once you think you've got the basic game engine (architecture, at least) down, then tackle turning it into a network server (again, still using a language you already know.) Finally, port the thing over to a language you want to learn (Elixir/Scala/whatever) and you'll have an implementation you understand well to compare it against. Of course you can rearrange the sequence... but that's the basic idea.
 I think you're definitely right, I'll try to give it a try using javascript, and learn the basics of network server along the way. The reason I wanna do it in elixir is that I wanna learn another language, right now javascript is the only one I can say that I know kind of well, all my side projects are in js, so I guess I'm a bit bored of it.
 I built kfchess.com (https://github.com/paladin8/kfchess), which might be a helpful reference. It's by no means amazing code (I hacked it together quickly in my spare time), but it uses https://github.com/socketio/socket.io for real-time client-server communication. It's a relatively simple library to build on top of.As for the backend, I would recommend whatever you're most familiar with. It doesn't make that much of a difference and you'll be way more productive in a language you know.Love the idea of a Shogi site by the way!
 Your project looks really cool, I'll take a look at your repo, I'm sure I can learn a lot from it.I am gladd you like my idea, there's a few good platforms to play shogi already, like 81dojo on the web and shogiwars on mobile, but none of them are open source. So I wanna do an open source version similar to lichess.
 I think Elixir would be an excellent choice. Once you have a sip, you’ll never want to go back. Might I recommend this book: https://pragprog.com/book/lhelph/functional-web-development-... there might be some overlap with your Shogi game idea to get you started.
 Thank you for the book, I'll take a look at it.
 Elixir / Phoenix is indeed very good in handling websockets. Probably that's the easy part in your project.
 I guess Elixir is a good choice. Just can advise a couple of good video courses in addition to books. 1. https://pragmaticstudio.com/unpacked-multi-player-bingo-with.... 2. https://codestool.coding-gnome.com/courses/elixir-for-progra.... In [2] Dave Thomas, author of a Programming Elixir book, goes through creation of online game too.
 I'll probably get a lot of shit for this, but LeetCode.I've recently been furloughed, and I think that redundancies aren't too far away. There aren't many companies hiring in my area at the moment, and if I'm going to move it's going to be for a big company, so I'm dusting off the CV and am applying to some Big N companies.A recruiter recently reached out to me, and I've got an interview with one Big N company coming up soon, so am using my new-found free time to study and, at the very least, be a bit more employable at the end of this pandemic.
 I don't hate you I pity you. Applied for Big N jobs last year, had to study leetcode for 1 month and I hated my life. I was legit depressed. I was already so busy at work and coming home to do leetcode just killed all motivation and happiness in my life. Did well enough to get to on site interviews but didn't get a full time offer from any of them. Such is life :(
 I used to hate leetcode with passion because i associated it with being a failure in career.I started leetcoding just for enjoyment and not for landing a FAANG job, when i had no interviews coming up. I started enjoying it a little bit and now i do it for "fun" and don't have an anatagonist realationship to it.Like someone said, once you overcome something you have keep overcoming it, so you can never be successful if your strategy is overcoming.
 It feels like studying for the SAT for me (something I also struggled really investing in). At least it’s more valuable than the SAT in the skills you develop.It can be really hard to motivate yourself to jump through hoops.
 I use to hate the idea of studying leetCode and I still refuse to do it. But then I realized how hypocritical I was being considering all of the time I’ve spent “grinding architecture and infrastructure”, reading white papers and studying videos on TOGAF so I could talk the talk on an “Enterprise Architect” or a “Digital Transformation Consultant”. But if I have to play a game to get the next salary upgrade after I top out as an IC in my local market (not the West Coast), that’s what I had to do. Who knows? I might end up working in consulting at AWS or Azure.But now, with the entire world economy screwed up, I don’t think now is the right time to make that kind of move. I’ll stick with being just a regular old Enterprise Developer/Architect/Team Lead/Single Responsible Individual depending on how the wind blows focusing on healthcare.
 Architecture is way easier than algorithms. I'm actually the opposite. I hate the idea that people are studying intensely for architecture because it just takes reading the wikipedia summary to get the main point.Architects are usually just managers who are ex-engineers and have been out of the front lines for so long that they aren't technical enough to get back into coding. This is fine, but the idea that "architecture" is some kind of talent is absurd. Anyone can study a blog article about the latest architecture buzzword and understand the concepts front to back. Not to mention that the more physical nature of architecture makes it less flexible than code itself so "architectural" patterns are, as a result, significantly less abstract and complex than coding patterns/algorithms.The true difference in ability is measured by who can actually Build an architecture, and usually its developers who build it, while architects (mostly) just talk about it.
 Not to mention that the more physical nature of architecture makes it less flexible than code itself so "architectural" patterns are, as a result, significantly less abstract and complex than coding patterns/algorithms.This is the reason that software engineers need adult supervision. The fact that you think that modern infrastructure is physical and static displays a lack of experience. There is nothing static about modern cloud infrastructure.I just had to deploy an API to ECS/Fargate (Docker). We had to determine the best combination of memory/cpu of the Fargate runtime environment and what hardware we wanted to give the ElasticSearch environment. I basically wrote a CloudFormation template (infrastructure as code) that defined the environment and then wrote a Node script that ran the CF template and passed in parameters to vary the hardware environment (cpu/memory). After the environment was created, the script then ran a series of Artillery load tests, recorded the results of the load tests, gathered metrics from CloudWatch and estimated the monthly cost compared to the performance.We reported that to management to let them decide how much they were willing to spend for the throughout they needed.I’ve created entire environments with databases, Redis Caches, ECS clusters (think AWS version of EKS), etc as a proof of concept by using CloudFormation deploying code to it, showing management as a demo, and then tearing it all down just by clicking delete until we can come back to it after the contract is signed and then spin it back up with one command.
 >Honestly, you think I don't know about docker? You think I don't know about the cloud? "Infrastructure as code" oooh buzzwords, you're just using a shittier domain specific language to write something that you can also do with Regular code (such as python, no buzzwords needed).https://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
 Well, using general Turing-complete code languages for infra and config vs specialized templates/languages is a legit point of contention in the industry right now, although judging by the style, GP isn't considering the pros and cons of each approach, which include:* Forcing users to learn a specialized language vs reusing knowledge of a general purpose language* Inevitable Turing-completeness creep and increasing complexity in specialized languages* Complexity and difficulty of reasoning about general purpose code (and analyzability)So GP does have a point. He/she is just not making it very well, I think.
 The tradeoffs you mention are obvious right? I'm just sort of downplaying the huge bragging Scarface was doing when he mentioned he did some cloud formation and "infrastructure as code" because it's really not that impressive.It's obvious that the logical consequence of using Turing complete languages for devops introduce a lot of complexity into infrastructure and can introduce configuration that executes continuously as well. Bugs that only existed in the application layer now creep into infrastructure. Infinite recursion can now be spinning up infinite instances.That being said the devops thing was a side detail and that's besides the point. The point is that the role 'software architect' is useless.
 Obvious? No, and even less straightforward. Personally I think it's a good thing both kinds of tools exist, because each dev/team/project has different needs and different sensibilities.Personally, I prefer my configuration to be written in a plain-old language (e.g. Python) instead of a specialized config language (be it YAML or JSON based or whatever). I can test that code, I can reason about it, I can review it for bad stuff like infinite loops (not perfectly, but still), I know how it behaves when diffed and merged, etc.Regarding software architects: I've seen a few companies where architects are hands-off demigods who prescribe complete architectures without ever having to contend with the results of their decisions. Those companies are, in my experience, few, and tend not to do well.In a lot of other companies, the role of an architect is very similar to what Herr Scarface describes - individuals with a lot of experience who can make broad decisions based on both experience and data, and leave it to lower ranking engineers to work out the exact details. They do the hard/open-ended stuff and come to conclusions about the broad strokes (e.g. "yeah Redis will work well for this problem, but since you have denormalized data you might need a background process to restore consistency"). This is often called "scoping" and it is the main responsibility and impact of higher-ranking engineers (whether they're called "architects" or not, I personally dislike the term).
 >In a lot of other companies, the role of an architect is very similar to what Herr Scarface describes - individuals with a lot of experience who can make broad decisions based on both experience and data, and leave it to lower ranking engineers to work out the exact details. They do the hard/open-ended stuff and come to conclusions about the broad strokes (e.g. "yeah Redis will work well for this problem, but since you have denormalized data you might need a background process to restore consistency"). This is often called "scoping" and it is the main responsibility and impact of higher-ranking engineers (whether they're called "architects" or not, I personally dislike the term).It seems like these people are capable but most actually are not. The reason is because they spent too much time in this role so they lose the skills of actually being a software engineer and gain the skills of bullshitting about architecture. So when you "interview" or talk to these people it really sounds like they know they're shit when they don't. The reason is, it's basically their job to talk about technology so they become really good at it, and if an interview doesn't involve a technical coding part, then they'll ace those interviews with flying colors.If you get down to the nitty gritty and literally ask these guys to perform some very easy coding problem or actually implement a product you will tend to see a very high amount of incompetence.I work at a startup where we accidentally hired one of these architects. The guy bullshitted his way to the top but we're having a hard time giving him a ticket where he works on the actual product. He's politically maneuvering his way around to only work on proof of concepts and holding irrelevant meetings to talk about architecture. Even roped the CTO in to support his case, which completely pissed off the entire team. Startups need people who can get the job done, not someone who can create a little bullshit bubble so that he can keep his bullshit salary.This is very similar to someone who's been a CTO for many years. If you don't program, if you don't actually build architecture, you lose your technical skills but you gain bullshitting and management skills. This isn't actually completely bad as a companies need leadership and managers and sans the bullshitting part, leadership is a great skill.It is completely wrong to assume that "Architecture" is some sort of skillset and that an "Architect" is more technically capable (due to the hire rank) than a typical engineer. Give them the title they deserve, and that is: Ex-engineer/manager.>Obvious? No, and even less straightforward. Personally I think it's a good thing both kinds of tools exist, because each dev/team/project has different needs and different sensibilities.It's obvious to me the difference between configuration files and turing complete programs or even python. You can extrapolate the benefits of using python or a configuration file. Have you hit an infinite loop error using python to instantiate instances? Maybe once or maybe zero times, but you can still use your brain to extrapolate that this is a potential problem even when you've hit this problem Zero times.On a side note, you can also extrapolate that JSON and YAML can be turing complete. It depends on how something interprets it. For example:`````` {"fib": { "PARAMS": {"y": "float"}, "BASECASE": [["X", "==", 0 ], [1]] "RECURSE": [{"EXECUTE_FUNCTION": { "FUNCTION": "fib", "PARAMS": [["y", "-", 1 ]] }}, "+", {"EXECUTE_FUNCTION": { "FUNCTION": "fib", "PARAMS": [["y", "-", 2 ]] }}}, "main": {"EXECUTE_FUNCTION": { "FUNCTION": "fib", "PARAMS": [["y", "-", 1 ]] }} } `````` Awkward yes, but I'm just showing you a way where it can be possible in my garbage/made-up JSON above. Which you can extrapolate from that there probably is a much more elegant way of doing it. All you really need are two features: branching and self-reference. JSON or YAML does not actually preclude something to be not turing complete.>Personally, I prefer my configuration to be written in a plain-old language (e.g. Python) instead of a specialized config language (be it YAML or JSON based or whatever). I can test that code, I can reason about it, I can review it for bad stuff like infinite loops (not perfectly, but still), I know how it behaves when diffed and merged, etc.Yeah, I'm kind of in agreement with you here as a personal preference.
 scarface74 on April 6, 2020 While I agree the pendulum goes both ways - for instance a AWS’s CDK builds templates using your language of choice. How can someone know the tradeoffs without a breadth of experience who thinks they can learn everything they need to know from Wikipedia? “There is no compression algorithm for experience.”
 You don't even know how much experience I have. I'm saying architecture patterns can be learned from Wikipedia not 'everything'.A devops configuration language (outside the domain of architecture) is not included in this category. Please don't be manipulative and please do not lie.
 Let's stay on topic rather than make passive aggressive comments on my intelligence.You're implying that my comments are stupid and arrogant. Prove it if you can, let's get to the bottom of whether or not "architects" is a worthless specialty or not. I think you know I'm right and the only thing you have left are personal comments on my intelligence.
 Honestly, I also had a long reply but I thought why bother? You haven’t gotten past the first step to knowing what you don’t know.We all thought we were the smartest people in the room at one point, you’ll grow out of it too one day.
 >We all thought we were the smartest people in the room at one point, you’ll grow out of it too one day.Again with the insults.Why bother? Because you can learn and I can learn. I don't come here to trade insults. I come here to lay down the actual reality of what I see unimpeded by social norms. Yeah I'm sure I touched nerve here, but it's nothing personal, the internet allows me to talk about truths that are uncomfortable and forces me to face those truths as well.I've been proven wrong tons of times on HN, so I'm hoping that if you disagree, you can prove me wrong and I can learn something and I'll return the favor in turn if you're the one that's actually wrong.I find that this isn't the case with most people, they don't want to face reality. The fact that you turn to personal insults and have this whole "why bother" attitude seems to me as a cover. You don't bother because you got absolutely Nothing to offer.
 It isn’t intended to be an insult. This thread is veering way off topic but if you think you can learn everything that you need to know by reading a few blog posts and Wikipedia articles, what’s the point? Why ask on HN if as you say everything you need to know you can find from a few blog posts?As software engineers, we tend to be told especially when we are young that we are all “smart people” (tm). We start to internalize it (believe our own bullshit). But the longer your career is, you realize that the world is full of “smart people” and that your coworkers also came up thinking they were the smartest people in the room.
 It's an insult drenched in the social politics that are an intrinsic part of our corporate politics. Some positions are useless and ultimately require more politics to stay relevant. Architecture is such a position and you seem to be good at politics.You don't even know how old I am, you don't even know what level of intelligence I consider myself to be. Yet you make a bunch of baseless comments hinting at my personal character. That is the extent of what you're trying to convey, an insult through and through yet subtle on many levels. Politics, the only essential skill needed to become an architect.When did I say you can learn everything you need to know by reading some blog posts or Wikipedia? I never said this. I only said that you can do this for 'architecture' and that's why the job role 'software architect' is complete bullshit.Now let's get back on topic. You disagree with me. You think architects know something about 'architecture' that is beyond Wikipedia and blog posts. Prove it. You think they have some ability that sets them apart from normal engineers. Tell me what that is and why there exists articles like this:http://www.realfreemarket.org/blog/2012/09/13/never-trust-a-...I don't want to see another irrelevant comment because that just tells me that you got absolutely nothing left. Prove the worth of a software architect.
 cle on April 6, 2020 Where I work, architects are responsible for disambiguating requirements and breaking down the implementation across teams into achievable milestones. It’s the intersection of technical chops and social skills. One of those is a lot easier to develop than the other.A good architect makes it seem like their job is easy, but there’s nothing easy about taking a vague idea and leading a huge cross-team effort to solve it.
 >Where I work, architects are responsible for disambiguating requirements and breaking down the implementation across teams into achievable milestones. It’s the intersection of technical chops and social skills. One of those is a lot easier to develop than the other.Good thing we're on the internet where we can talk about the actual reality and lay everything out as it is without worrying about the social and political bureaucracy that infests corporate culture.That being said, isn't what you described the role of the tech lead or manager? The best tech lead ultimately derives technical architecture by aggregating the expertise of the team and puts that plan into motion exactly as you said.The term "architect" usually implies greater knowledge of "architecture" where the "architect" uses this "greater knowledge" to lay down a high level plan of the infrastructure. Additionally your initial post implied that this is what you think, because this is what you study for interviews.Like I said, usually the architecture role is actually ends up in practice becoming an ex-engineer manager. That's the only actual role they can fit while maintaining the respect of the engineers and without being completely useless. This is basically what you described about yourself.
 Additionally your initial post implied that this is what you think, because this is what you study for interviews.Thousands of people study about how to reverse a binary tree on a whiteboard and other needless leetCode to “work at a FAANG” even though they don’t do that everyday.What you study for an interview is unfortunately often only vaguely correlated with what you do on a job.
 >What you study for an interview is unfortunately often only vaguely correlated with what you do on a job.Agreed 100%. Interviewing is hard. I would argue though that interviewing for "architecture" causes another issue. To give an analogy... it's like studying english for a programming job because english is used all the time on the job.Architecture is just too easy and too obvious and if you just happen to not know a specific architecture or way of speeding something up, all you have to do is read about it on the internet like looking up vocabulary on a dictionary.I would also argue that google isn't exactly just testing algorithmic skills in an interview. The spiritual goal of the interview is that the question they give you is novel and one you haven't seen before. The overall purpose of novel questions is to measure your raw intelligence.The question isn't whether or not you know how to reverse a binary tree but whether or not from a state of not knowing how to do it, can you creatively come up with a way to do it in an hour? Raw IQ.Of course the practice doesn't always match up with the ideal and often times interviewees can get lucky.I'm not saying that this is the best way to interview. I'm saying that judging an interview based off of architecture is even worse. It's even easier and there's a lot of room for bullshit in a conversational interview as opposed to a technical question.
 Pro tip: anytime you think something is easy, be concerned. You haven’t learned it at the depth that you think you have. Keep living....
 Pro tip: this applies to you to buddy, you don't even know my background so you don't even know which field I have a PhD in or how much older I am than you.
 grumpy8 on April 6, 2020 don't need to do leetCode just for the salary game, there are some really fun algorithms
 After programming in assembly for hobby for six years in middle and high school, 4 years in college, and professionally for almost 25, nothing about software development is “fun”. It’s just a way for money to appear in my bank account. Don’t get me wrong, I don’t dislike software development, but every hour of continuous learning I do is a combination of keeping me competitive at my current level or to make more money depending on where I am in life.
 gameswithgo on April 6, 2020 it can be a fun game, and it is a useful game. brushing up on fundamentals is useful in any human endeavor no matter how advanced you get.
 I hate to say it, but I got no discernible advantage from my non-trivial coding projects during my last job search. My time would have been far better spent just grinding leetcode, from a purely economic perspective. I wouldn’t have had nearly as much fun, but I probably would have gotten more offers.
 100% percent my experience too. In the last 3 months I've been on-site at 3 of the FAANG companies. Not a single interviewer brought up the large personal projects I've done and which are given decent space on my resume; my weeks of leetcoding was definitely far far far more beneficial for getting a job.
 sometimes feels very sad about this since one's value should be reflected by the awesome projects he has done. I think it's just laziness of the FAANG companies. If the interviewer is well prepared and keeps digging the resume, then he should know the candidate is good or not. But by leetcoding, it's simpler for them, just keep asking the repeated questions.
 From my personal experience, a company wants a "yes man", someone who will do as they command. From their perspective, if you can't pass (or refuse!) the coding challenge, you're already in the red flag zone. That's just how it is.The funny thing is that a single fairly large personal project will develop your engineering skills 42 times that of the hundred something leetcode problems you solved for your FAANG interviews.One teaches deep long term critical thinking. The other short term critical thinking. You won't see any small short sighted systems out in the real world.
 arvinsim on April 6, 2020 I understand why FAANG does it. The problem is that other companies are just cargo culting.
 DeathArrow on April 6, 2020 I think that if your hobby projects will be important for many people: i.e. you develop something with the importance npm, or Ruby on Rails, or Vue.js, FAANG companies will make you offers without asking you leetcode kind of questions.
 This is not true. Not so many people can set up popular and awesome projects like npm or vue.js. These are top level programers. But for other people you can not say they are not good enough to be qualified.
 cheese4242 on April 6, 2020 I read that the guy who invented Homebrew still had to go through the leetcode interview at Google (which they failed) so I'm not sure if they ever waive the interview requirements?
 Somehow I don't imagine Ken Thompson willing to answer leetcode questions. If anything, he should be the one doing the asking.
 dominotw on April 6, 2020 they look at your resume in any seriousness after you pass leetcode rounds,
 Can't imagine getting shit for studying up on what's likely to help you get a job. I'd be doing the same if I were in your situation (though if laid off I'm hoping to start my own thing).
 __s on April 5, 2020 > I'll probably get a lot of shit for this, but LeetCode.Don't hate the player; hate the game. gl
 I can't hate you for doing what you need to do to get another job, I hate that this it what interviewing has come to and the companies capitalizing off it.
 "I hate that this it what interviewing has come to and the companies capitalizing off it."I for one am extremely grateful, although I think it would be even more fair if it was more like the SAT. Traditional interviews depend too much on status signaling and social connections.
 After 2 years of Leetcoding and jumping ships, I finally got a job in one of the big companies. Worth it.
 Back when I was preparing to apply to a FAANG, I built a game engine as my vehicle for practice. From scratch. Well almost from scratch, if you consider bare nekkid OpenGL to still be "from scratch".There's tons of opportunities in a game engine for exercising and honing your performance chops and your algorithm chops. It also gave me an opportunity to learn a new language and programming model - the GL shader language. Building it onto a game helps to keep it real.Best of luck.
 I’m not too sure about algorithms?You can get away with making a working, performant (basic) engine with some neat functionality nowadays without delving too deep into algorithms or using any advanced data structures.It is a good exercise in “real coding” though.
 Off the top of my head, there's pathfinding on a navigation mesh, mouse hit-testing and FOV pruning with a space partitioning tree, triangle mesh sorting. You can also do some agent work by building up an automated opponent.
 No sane person will hate on your studying, you are doing what you gotta do to survive, good luck out there friend.
 On LeetCode, how would you estimate the split between slogging-enldlessly-at-things-I-already-know and I-actually-learned-something?I had never heard of it until I read the thread under your comment so I apologize if this is obvious to people in the know. From the comments it sounds like more of the former and less of the latter.I had a good experience with Project Euler back in the day (account long since lost). There was absolutely no focus on immediate employability but there were improvements in my "human capital".
 Leetcode problems can be solved by extrapolation from FizzBuzz programming. They can also be solved by engineering insight of algorithms and data structures that are applicable to processes that don’t fit in RAM. That’s what makes Leetcode plausibly useful for evaluating candidates. Bad engineering will get correct output and good engineering is possible. Neither requires significantly more effort writing code.
 I did some Leetcode type stuff in high school to prepare for CS contests and at University for some CS courses.I think they are ok if you like that kind of stuff and like to find solutions to those kind of problems. And if you have time.Most people who hate them are grinding leetcode kind of stuff in limited time, taking away from sleep, time with family, time for rest.If something starts feeling like a chore, maybe you are doing it the wrong way or at the wrong time.Also, from being employable point of view, I think there are more valuable skills. I.e. if you want to work as a web developer, know a framework by heart, master a web programming language, know SQL, know HTML, CSS and JS, know some useful patterns, know about testing, SOLID, DDD, TDD, know how to use tools like GIT, JIRA, Jenkins, Docker, know REST/SOAP/gRPC, know async and parallel programming. Those were the kind of technical questions I was asked about 3 months ago when I went through 20+ job interviews. From all those only one asked a leetcode kind of question. It wasn't hard and it didn't seem like it was a make it or break it kind of question. Many years ago, when I applied for game development jobs, I was asked about Unity, C#, GPU shaders and a bit of algebra and geometry, no question was leetcode like.
 I would be doing the same thing if I was in your situation. Even though LeetCode is a grind, there's no way around it if you are targeting big companies.Good Luck!
 I'm also doing a data structures and algorithms course, likely followed by what will be HackerRank and LeetCode. I really don't like it but what can you do?
 Good luck! I'm doing the same thing, I actually enjoy some of it, I've learned a few things too.
 I guess its something I'll get good at if I practice it more, but at I cant even really do leetcode easy right node despite having been a professional developer for a few years and a hobbyist for long before that. I have no C.S. background though.Most of the times when I end up seeing the solution ot makes sense, but uses data structures in ways I wouldn't think. Part of the reason for that I think is because my daily work for one operates on much different types of data (business entities vs arbitrary collections of integers) and also because the logic in the applications I work on is not very algorithm heavy.Another reason is because of high level abstractions I've been spoiled by. I could probably hack many of the problems together with LINQ but that's not gonna hold up very well.
 [flagged]
 [flagged]
 Your comment will likely get killed so let me throw you a life-line1. It's likely you're getting downvotes because it's an easily google-able question: https://leetcode.com/2. " It's not anything real since today is the first time it's been mentioned here". easily proven to be untrue: https://www.google.com/search?client=firefox-b-1-d&q=site%3A...3. You immediately responded to the downvotes with anger and insults, ensuring that no one will bother to engage. You're probably having a bad day but don't forget other people also are having shitty days and no one is helped by your behavior.3. You've been here for long enough to know the rules. Keep things civil and assume positive intent wherever possible.Hope your day gets better ( call a friend, hotline, play a game, draw, whatever it is that you use as a healthy form of therapy)
 Dude, a Google search would have eliminated the need for you to have a fit, you're not even close to correct, look it up.
 I'm sure you're suffering in your world over there and I hope you're okay.
 Elixir and Phoenix!It's been a long time coming, but finally doing it now.After coming to grips with functional programming concepts (introductory in Ruby, more advanced in JavaScript) I decided to explore Elixir and what I found really surprised me in the right way.So I've decided to dedicate myself to become very fluent in it.
 Excellent!If I may self-promote a tiny bit, I've made over 100 free Elixir screencasts on YT over the past couple years, with over 98% upvotes. Helping people in your situation was why I started the channel:https://www.youtube.com/watch?v=z1nKbzZiRtY&list=PLFhQVxlaKQ...
 Here's a great course from Udemy:https://www.udemy.com/course/the-complete-elixir-and-phoenix...
 I've been learning a lot about options trading. (Yes, I understand the risks, being margin called, and losing all my money.) To me, it's just a fun and interesting hobby.I've also been reading and learning a lot about dirivities and the overall US financial system. It's pretty wild how things _actually_ work behind the scenes. So much "wealth" has been created coming up with such schemes. The more I learn, the more I worry about us being in some serious uncharted waters, and I think maybe it's all too complicated.
 Would it be okay sharing how you are approaching options trading? What steps would you recommend someone who would like to start with the basics?
 The two ways I got started were:1) open a Robinhood account with a small amount of money (\$100) ought to be enough. Buy in and out of stocks every day for a couple days until you can get approved for their level 2 trading. Then, start playing with options.2) Open an account on ThinkOrSwim and use their tools to trade a dummy account or use real money. The learning curve of ToS is higher, but it is more powerfulThe fundamentals are pretty simple, but the strategies for combining simple elements can become very complex. The fundamental questions are: will this "stock" (you can trade options on other financial instruments as well) move up, down, neither, on both? To what extent? Over what time period?
 juped on April 6, 2020 Sell defined risk credit spreads 30-60 days out on underlyings with high implied volatility where the max loss is a small percentage of your bankroll. Buy them back at some percentage of max profit (50% is a good general rule). Read or watch videos until you understand why this is a good starting point - there's tons of resources out there.Yes, brokers are idiots who think defined-risk spreads are more "advanced" than holding the bag for premium decay and not even knowing why you're losing money. Sorry.
 itemGrey on April 6, 2020 I'm also interested in this. Would be great to share some resources.
 hattori on April 6, 2020 Golden rule from my perspective, regardless of asset - don't follow analysts (it's all about risk management and if strategy/indicator is public it's highly likely ineffective) and price action is king. Playing with automation as supplement to above is smart investment.
 "wealth"
 Systems Thinking, mainly through reading Russell Ackoff's books. The Art of Problem Solving is good, Turning Learning Right Side Up is eye-opening (and definitely one of my favorite books lately) and currently reading Redesigning Society. Highly recommended.
 I recommend Systemantics also. https://en.wikipedia.org/wiki/Systemantics
 I'm reading this subject too. Thinking in Systems: A Primer is also a good book. Highly recommended.
 I started it couple of months ago, but couldn't get past the first few chapters. It was too dry for my taste. Even though she's a brilliant scientist (I'd recommend checking her classic The Limit to Growth), it seemed like the earlier resources about the topic are much better explained rather than the newer stuff.
 I am revisiting my notes and re-watching lectures about basic machine learning algorithms like linear regression and logistic regression.I am implementing these algorithms, so I need to understand a lot of the details. Here are some notes, which are work in progress: https://notabug.org/ZelphirKaltstahl/machine-learning-notes/... I try to write it in a way, that does not leave open questions and will be accessible to me and hopefully others years later.
 How to take care of a toddler from 5 AM - 8 PM while trying to manage work and phone calls. Then how to not fall asleep while I"m working on projects until 1 AM. So learning how to function on 4-6 hours of sleep.
 I have a renewed appreciation of so much that we usually take for granted, chief among those are the contributions of our teachers and child care professionals.
 >Then how to not fall asleep while I"m working on projects until 1 AM. So learning how to function on 4-6 hours of sleep.Try to take a ~30 minute nap in the evening somewhere that is quiet and comfortable but not the bed you sleep in. 4 hours isn't sustainable for long, but I've found a nap in the evening is sufficient to let me run effectively on 5-6 hours.I say somewhere that isn't your bed because I've found that if you settle in the bed it can be far more difficult to get moving again, and also you can start to associate the bed with naps and have more difficulty getting to sleep when you mean to later, and staying asleep.
 I'm in the same boat as the parent poster. Honestly it's hard to even find 30 minutes of free time and I only have one toddler. I'm the play person and my wife works multiple jobs (remote) so she's on calls most of the day. Seems the rest of our free time is is spent either cleaning or cooking.If by any chance I do have time the only place to sleep that's not my bed is the floor. We sold all of our furniture and moved during the middle of this pandemic and all the dang furniture stores are closed!
 Same here. Also trying to learn a new language without a dictionary: the toddler's cry, and trying to learn to make myself fall asleep on command, but being awake in the same time.
 Sometimes you have to accept you can't do everything.
 In similar situation like the GP (infant, a full time job + few other part-time commitments); learning how to accept that I have less hours in the day than I need.
 I watched all but one of Lamport's videos on formal specification with TLA+, though I yet have to tackle some project with it.Right now I got my hands on Tufte's "The Visual Display of Quantitative Information" as per some HNer recommendation (thank you!).Yeah, I lose interest quickly, eh. There's so much cool things to learn that in the end I learn nothing well. Bummer.edit: grammar, spelling
 If you consider how knowledge decays, your strategy makes more sense. You get to something like Pareto proficiency in a subject and can then ‘reactivate’ that knowledge more easily in the future, should it be required.You are also of course aware of that knowledge in the first place, which may be even more important. In the timeless Rumsfeldian: you have pushed back a bit at the unknown unknowns.The alternative path of deeply learning something you may never apply (e.g. what happens to many PhDs) seems inherently less desirable, in my opinion.
 I'm at about the same place with the TLA+ videos. I finished them a year ago and didn't feel like I could start a project yet, I more feel like I should watch them a second time. I have an actor system project on the side that I've felt tempted to model using TLA+.
 I am learning Vue.I built a basic tool to help my wife track how much time she spends on Telehealth calls, you can see it here:https://telehealth-tracker.onrender.comShe is a family medicine doctor and now virtually 100% of her time now doing phone calls instead of clinic visits. She wants to do a QI project and needed to be able to track the amount of time her and her colleagues spend on various parts of the Telehealth visit.
 May I ask what resources did you use to learn it?
 I mostly just followed the tutorial on their website and read through their documentation.
 Nim! There was thread here about its new release. I hadn't given any time to looking at the syntax so I finally did because of that thread. Looks awesome. It doesn't look like hackerrank or leetcode support nim so I'll be trying out the different compiling outputs as well.
 Reading: The General Theory of Employment, Interest, and Money by Keynes.Studying: The Molecular Biology of the Cell by Alberts et al and Advanced Macroeconomics by Romer.
 Geoff Mann wrote an excellent free guide to the GT. I had just finished reading Keynes when I came across it and reading it really made it “stick.”https://www.versobooks.com/books/2499-the-general-theory-of-...
 Thanks!
 I’ve been working on my music production skills with a learn monthly class from Andrew Huang. It’s been good to push myself into production; I have many years of live music experience but haven’t spent a lot of time recording.I’d classify my style as synth wave meets 80s arena rock for the current track I’ve been working on :)My learning path is here [0] and I’ve also been uploading works in progress to my soundcloud [1]
 Synthwave meets arena rock? If you haven't heard it already you're going to love this!https://youtu.be/98DDgbtE-eU
 haha this was epic! thanks for sharing :D
 Writing my first library/cli in Rust. Never felt so productive in a systems level language but I still quite haven't internalized the variable ownership system and will probably look back at my code in a few months with total disgust. I'm on Rust's discord server (https://discord.gg/rust-lang) if any fellow learners want to chat.
 I too started picking up Rust with the goal of trying out embedded development. I'm taking it slow though -- working through the book and a little cli tool. I am also on the discord.
 To form a balanced opinion, wouldn’t you want to read CC critical literature too?
 How to deal with my kids 7 days a week!
 I'm learning Motion/Animation graphics in Adobe After Effects and 3D design in Cinema 4D Lite.I'm still beginner in both. Just in case you have wonderful resources to share to get me started, please share!For Adobe AE I'm learning on these Youtube channels:
 Going through the Western cannon. Specifically the Syntopicon and a rejiggering of it.I've always thought the work was an absolute masterpiece, but utterly inaccessible and the holotype for the word jargon. So, I'm trying to write vignettes of the work, with characters that personify the 'great ideas' in the Syntopicon. Something like Godel, Escher, Bach. Hopefully, this personification will be more accessible and readable than a gigantic listing of page numbers and linking information.Thus far, yeah, just wrapping my head about the linking documents is tough, but there is a lot of 'meat' on the bones and turning ideas into people is surprisingly fun.I doubt I'll ever finish the project, but it's a great deep dive into the Western Cannon.https://en.wikipedia.org/wiki/Great_Books_of_the_Western_Wor...
 Photogrammetry.I'm (re)learning OpenCV and OpenGL since I haven't used them since college. Working on this is also forcing me to learn the FFI corners of Rust I was unfamiliar with.I'm combining Kinect (k4a) depth sensor data to build real time 360 degree point clouds.
 Interesting project. Hope you'll post to github with whatever you get working.
 Reading SICP[0] while taking the original MIT 6.001 course online[1]. I'm hoping to develop a DSL for certain applications in government and law someday.[0] The Structure and Interpretation of Computer Programs by Abelson, Sussman and Sussman
 A bootstrapped SAAS founder who sucks at Marketing. So I have decided to invest time learning everything about Marketing and Digital Marketing. From the ground up. Btw on that note, has anyone heard of Demand Curve which teaches Marketing courses ? I like some of their stuff online and thinking about taking their Premium Course.
 I do in-house marketing and digital marketing. What challenges are you facing?(I don't have a course to sell you and my services are not available for hire.)
 Thx for asking. oo, where do I start ? I guess setting up an overall strategy before any actual tactical execution. We do close to 1M in revenue already and have inbound traffic already but I got to this point somehow without any real planning. We write a few blog posts, content etc, got social profiles where we post, were lucky to get a few great backlinks and have built some relationships with influencers in our industry. But what do we now ? I have no real strategy here. Should we run ads ? Where ? Why google and not linkedin or vice versa ?
 jlbnjmn on April 8, 2020 Start by choosing a definite objective. Something obvious and unavoidably precise. Do you want to help more people, or the same people more? If the former, set a new users objective. If the latter, set a lifetime customer value objective. How will you measure success? Good objectives include both quantity and quality metrics.Choosing a meaningful and definite objective is the second hardest part of marketing.The hardest part is talking to customers.You'd like to buy some more customers, right? So do some research. What kind of customers do you want? How much are you willing to pay? Where can you get a great deal on them right now?Many business owners spent more time researching lunch options last year than customers. Why?What's the most obvious way to get more or better customers? Spend 45 minutes writing down every idea you can think of. Every single idea. You'll get through the fluff after about 25-30 minutes.Then find the options that use your existing strengths, preferably in a non-obvious to your competitors way, and turn them into a story.That's your strategy.Do those things and see if they get you closer to your objective. And move fast.Try big things, don't tolerate slow learning, and remember that you learn from reflecting on experience, not thinking about tools and techniques.Let me know how it goes!
 D3 for work, and Russian out of pure (seemingly masochistic) interest.I'm a native English speaker and Russian would be my fourth language. Perhaps I'm simply approaching the limits of my language ability, but the grammar rules with cases that I've learnt so far are doing my head in. It's very discouraging. I don't intend on becoming completely fluent, and so I'm trying to find shortcuts to be fuzzy about the volume of grammar rules to keep in mind.
 I'm also learning Russian at the moment! I'm a native English speaker and am presently dealing with the current global events while cooped up in Siberia.What have you found difficult? What resources are you using? For me, I tried memorizing the rules for cases, but it was a complete waste of time: it was trivia disconnected from any usage of the language. What is (slowly) working for me is focusing on a single phrase with common words (e.g. в сибири, два пива).Aside from the obvious resources (a good app/textbook; Anki), I have really learned a lot of the fiddly bits from this YouTube channel: https://www.youtube.com/user/russiangrammar
 Oh wow, stay safe!Thank you for sharing your experiences and the YouTube channel recommendation.I've been alternating between the interactive lessons on http://learnrussian.rt.com/ and "The New Penguin Russian Course". I've been enjoying the former a lot more because there's audio to accompany written content, which helps when I try to enunciate words. There are also tests, which helps me measure retention. The latter book feels more like dry reading to me, but coverage seems very comprehensive.I haven't been learning for all that long, but the two things that have been regularly catching me out are:- Knowing which "o" letters in the word are stressed, in order to pronounce it correctly (I default to reading them as "o" when they should instead be "a")- Looking up new words in sentences is a bit harder because they often occur in conjugated forms (i.e. not only verbs, but nouns too)
 Cool! There's an easy tip for "o": If it's in the dictionary as о́ then it's the stressed syllable and you say the "o", otherwise it's "a". Example word: о́вощи, the first "o" is stressed. You should include the accent mark on any flashcards you make, since it can literally change the word you are saying (сто́ит, стои́т).
 In my experience, the unstressed "o" as "a" is only mostly true and varies by region. This is especially true for unstressed "o" preceding the stressed vowel.For example, "молоко" is pronounced differently in different parts of the country. For me, the first "o" sounds more like a "ə" (think bOOk) around Moscow, and more like "a" further east.
 So you actually find it difficult? I am a native Russian speaker and have also taken 3 quarters of Russian in college. Compared to English I found the grammar much easier to understand. A word is read exactly how you would sound out each letter (with a few exceptions). Ukrainian grammar is even more simple.
 RE: "word is read exactly how you would sound out each letter (with a few exceptions)" nah, you write "короче", but you should say "кароче", write "остовайтесь" but read "аставайтесь" etc. otherwise you'll sound funny. Russian has a lot of exceptions.
 CGamesPlay on April 6, 2020 I have no difficulty pointing out the exceptions to strict "read-as-written" in Russian, but it is definitely much more consistent than English. The cases are totally foreign to an English speaker, though. I also find the variety of Russian motion verbs to be a hurdle.
 I'm currently trying to get into game development and Rust so I'm trying out Amethyst: https://book.amethyst.rs/master/. I wanted to follow along with a roguelike game tutorial for Rust, but there was a problem. I would love to make some games that you can play co-op with some friends as I feel like there aren't enough games like it out there.
 Nice! I just did a simple roguelike in Rust a few months ago. I somewhat regret not looking at what it would take to make is work with wasm from the beginning, though.
 Did you happen to use this? https://bfnightly.bracketproductions.com/rustbook/ If not, what did you use?
 I learned from this tutorial, which is a bit simpler: https://tomassedovic.github.io/roguelike-tutorial/I have been wanting to go through the tutorial you shared when I get the time, though!
 I'm learning how to play the piano and also trying to learn more music theory so my guitar playing is not just randomly playing notes or just following online tabs.I am also going to soon start marketing my project [0] so I am reading a lot about launching products, pricing and how to attract attention.
 Nonlinear optimization algorithms.At work I'm working on anomaly detection using ML at the edge and want to move beyond bog-standard stochastic gradient descent to fit the model(s) in favor of methods that exploit the use of analytical Jacobians / Hessians. So I'm comparing and contrasting the various nonlinear (gradient-based) optimization methods for my use cases and trying to see how fast I can make them run.
 Learning database systems now. Andy Pavlo made two of his great classes public. Class materials and videos are online. Thomas Neumann's papers are also really good.
 Cantonese - it is an incredibly rich language with tons of regional differences, slang, and history spanning thousands of years, way more rich than modern Mandarin. The fact that it has fewer resources online to learn it has made me more resourceful at finding good books, academic grammar articles, and has gotten me deep into HK pop culture. I'm a native romance language speaker and Cantonese is so fundamentally different in its structure than my language it is a joy to learn. Unfortunately, the CCP is constantly cracking down on the language, with a very political campaign to dismiss it as a "dialect" despite it being mutually unintelligible with Mandarin and having its own independent history.
 What is your background? By the time I lived in HK I found it more difficult to study compare to Mandarin in terms of speaking and listening. Though learning traditional characters seems more exciting. But now I live in Japan, Japanese has more intersections between Cantonese rather than Mandarin
 I'm curious; are you studying Cantonese or Taishanese or some other variant? Asking simply because Cantonese is pretty mutually intelligible with Mandarin; I'm a native Mandarin and Cantonese speaker and barring some vocabulary (and pronunciation which is often just slightly "off-sounding" Mandarin), they're almost identical.
 Been studying standard HK Cantonese for almost 2 years at this point, can understand a wide variety of written Cantonese, news, stories, but cannot even read a basic mandarin sentence I see on wechat. Cantonese having 6 tones (with 9 in some regional variants). There are over 2200 different syllables in Cantonese, more than twice the number in Mandarin: https://www.britannica.com/topic/Chinese-languages/Standard-....I'd argue the majority of daily vocabulary is completely different, both in writing and in pronunciation, than its mandarin counterpart, such as some of the most commonly used words 而家，頭先，邊個，喺唔喺係，佢哋，講，有冇，點解，佢同佢講，畀 as in 我講畀佢聽，聽日，尋日，嗰陣時，嗰個，嗰啲， I could go on and on. Even after all this time, I didn't know the characters 是 or 哪里 until learning them a few weeks ago. Likewise, if I were a native mandarin speaker and heard the relatively simple, common sentence 佢哋而家喺邊度呀 spoken to me, I would understand exactly 0% of it. Grammar is significantly different with word placement, nuance of ending particles, usage of adverbial comparisons using Noun + V + 得 + 過 + Noun, using 畀，未。。。添, etc. I cannot understand a shred of mandarin when spoken to me, despite being able to communicate conversationally and understand most of spoken Cantonese from others. https://languagelog.ldc.upenn.edu/nll/?p=1211. There are varieties of sources analyzing the etymology of words in sinitic languages as well as their grammar structures and phonologies. Both languages are far from being mutually intelligible for monolingual speakers. Perhaps being a native speaker in both has allowed you to have a comprehensive mental-map of their isomorphisms.
 Flutter -- and I'm in love -- it's like being a Flash developer/designer from 2006 all over again :)
 So, soon to be obsolete, abandoned by s/Adobe/Google/g? :-pJust kidding, I'm building the mobile client for https://histre.com/ in Flutter and I love it. Google, please don't kill it yet.
 I genuinely doubt they'll drop it in the foreseeable future. But every if they do, it's a mature project at this stage and I believe the community is strong enough to support it without Google back (even if that means a fork for licensing reasons).
 OzzyB on April 5, 2020 Ha! Let's hope not, in fact let's pray that it becomes the de facto standard for Android dev :D
 How much "better"/different is flutter compared to native Android development in your experience? I am currently being forced to do learn native Android development with Java and hate every second of it.
 Ok, let me try:- The tooling is excellent -- you can get a basic app running without much fuss; use VScode and the right plugins are you're golden.- It's "Widgets All The Way Down" -- just wrap your widgets (objects) to add functionality/positioning/etc (it might seem like you're in "nesting hell" but it's actually quite intuitive and you don't need to manage tons of separate Components across tons of files which is nice).- The layout engine is actually well thought out -- it might take a while to get used to it (it's not like CSS there are no negative margins for example) but once you do it's intuitive and easy to get layouts built fast. Remember everything is a Widget and that's ok, from your app root object to your button.- It has the best parts of React -- Flutter's "setState" works much in the same way and only updates Widgets which need to etc.- It's a "game engine built for mobile dev"; you hear this statement a lot and it's really what makes it's powerful. It renders super fast and animations/tweens/etc are easy to implement allowing you to design UI elements the way you want (hence my Flash comparison lol).- At some point you will need to manage state, save yourself the search and just settle w/ BLOC, again there's plugins to help with the boilerplate, i.e. code-generation (which is also a thing and actually helpful).- The package/ecosystem (pub.dev) is pretty young but the core stuff you'll need is all there. The main packages I've settled on are: Moor (sqlite), Bloc (state), Chooper (Api client) and JsonSerializer. UI packages are pretty hit-miss but you'll probably just write your own anyway.- The SDK has tons of prebuilt Widgets that are actually useful and cover most of what you need to make a modern UI, and yes you can make a "native" Android/iOS UI look and feel if you want. I recommend watching the Flutter's Youtube channel series "Widget of the Week".- Dart is a fine language, I love the way it's implemented async/await for example, should be no problem picking up if you have Javascript/Java experience. The great benefit is that it's only being used by Flutter so there's a nice symbiosis between the two with a strong focus on making a language geared towards interactive/ui/frontend work.- No Android XML!Hope that helps some xD
 Thank you for that summary! ^^ That sounds like a great environment to work with. I will definitely keep a look on flutter.
 blululu on April 5, 2020 This is more a matter of taste than anything else. Compared to the Java I would say it's much cleaner (Personally I don't care for Java). Compared to Kotlin, it is more different. Flutter uses a declarative programming model so it is conceptually very different in terms of how you think about an application. There are a lot of nice things about this model for basic applications, but things get complicated for certain applications (AR/3d for instance). Also it is also open sourced (BSD) so the fear of Google dropping it is not as grave as the company's proprietary 1p product offerings.
 Taking a math course that attempts to teach some of the ways mathematicians approach their profession, which I hear is quite different than learning math or doing math the way it is taught in schools or utilized by other types of professionals (e.g. engineers). The class is called "Introduction to Mathematical Thinking" by Keith Devlin, and it's on coursera.org.
 Interesting. how useful you think it is for regular techies or let's say aspiring ML engineers ?
 I'm learning to teach people how to fly helicopters. I got my private pilot license, instrument rating, and commercial pilot license over the last couple years and now I'm knocking out the flight instructor rating.Tech-wise I'm digging into machine learning, particularly around natural language processing and sentiment analysis.
 Been learning Elixir. I loved Erlang and Elixir smooths out a lot of the rough edges for me. Planning to use it for a web-based multiplayer RPG.
 I am reading A Graduate Course in Applied Cryptography [1] by Dan Boneh and Victor Shoup, it's a work-in-progress theory and math heavy book. However it gives a deep understanding of what's going on and what can be assembled together. Unlike other crypto books, it isn't just glorifying DES, AES, and RSA.
 I am learning Elixir and Phoenix. And to be honest I am not sure I like either. The lack of decent resources (I mainly use Python and JavaScript with some C#) so I am used to reading a lot of blog posts, I don’t really like the documentation and the answers in forums are over verbose. And then there is Ecto which gives me new respect for SQLAlchemy or even solutions in C#. Debugging is a bit rubbish as well and to top it off it’s not typed. Pattern matching is kinda cool though.
 Maybe give F# a try. It's functional, strongly typed and since you already know .NET and C# the ecosystem and tooling will be familiar to you and could lessen the learning curve.
 The book "Programming Elixir" is by far the best resource I found for learning the language.
 I am going to read it, I have heard good things so will put it on the todo list for this week. I usually enjoy learning languages so I don’t know why I am hating on this so much ( last time I felt like this was with Ruby which was mainly due to the community )
 "Elixir In Action" is a very good book to start also.
 I spent a couple hours this afternoon trying to start a fire with a cheap magnifying glass. If I had a decent tinder bundle I would have succeeded. Amazing how easy it is to get something smoking. Burnt a whole bunch of stuff, just never managed to get to fire.
 I used to draw on planks of wood with a magnifying glass when a I was a kid. Could add another thing for you to do!
 May I suggest dryer lint as tinder. I keep all of mine in a bucket for just that purpose.
 I'll have to give that a try next time.We have some Lamb's Ear [1] in our garden that I had a decent amount of success with, but I used up most of the dead stuff from last year over the course of the afternoon.
 I am learning how to write. After seeing a few people with blog, I realize the importance of writing. It makes you think clearer and understand a subject deeper.
 Honestly, there's not much to learn there, you just need regular exercise to become better and better at it.May I suggest setting yourself a fixed schedule (let's say, one article published every two weeks or so) and sticking through it? Your initial articles will probably suck, but you'll gradually improve in the upcoming months.
 here's how I got started writing:1. take notes on a topic that has continuing relevance for you (like, you're learning something over a few days or weeks) 2. wait for your project to hit a milestone or for your notes to hit a critical mass 3. reorder your notes into sections, discard bad ones, and flesh them out with text 4. pick the best line, that's your title 5. print it out and leave it under your pillow 6. edit the next day 7. publish
 I want to learn how to build a phone, maybe something like the pine64 and librem phones. I'm a web dev so it's..challenging. How do I learn to:* understand the hardware components required in a phone?* understand the software components required? postmarketos and plasma mobile maybe?* How do I even start to build a prototype? What components would I use? Maybe start with using a raspberry pi to make a DIY phone?I know this is an open ended question, so any pointers would be appreciated.
 If you really have no clue about anything, then I might be able to help a tiny bit.Get basic hardware knowledge by doing nand2tetris [1]. It's about building a computer from the transistor up, all the way until you create your own tetris game.The Hardware Hacker: Adventures in Making and Breaking Hardware (manufacturing hardware in Shenzen) [2]This guy shows a cool couple of YouTube videos on hacking iPhones in Shenzen [3]. Hacking as in exploring and tweaking, not as in breaking in.
 Thanks, I have ordered the book and plan to start the nand2tetris. I really loved the way the guy explained the HDL. Very clear, I look forward to learning it and doing a lot with it.
 Learning the bond market, figuring out the different characteristics of all the different types of bonds, what the risks are, what the potential for gain is.I trade options on equities regularly and recently a friend has been looking for help on figuring out how to handle a large amount of money they came into, so I figured brushing up on bond investing would be helpful since their risk tolerance is substantially lower than mine.
 What resource are you using for bonds and what did you use for learning options?I've become interested in stocks/trading recently and have been wanting to understand it well enough before losing all my money. I started Financial Markets [0]. Just finished Week 1 and it seems a little too broad/dry so far. Any recommendations are welcome.
 I taught myself by reading a lot of articles online, basically. I start by googling something basic and clicking the first 4-6 results and reading them, opening a lot of extra tabs for things they link to as I go. If anything is unclear, I repeat the process, googling the unclear thing. I take notes as I go.Slowly a general understanding emerges and then I can flesh it out by seeking specific details once I know what I don't know. And by reading and comparing multiple resources I get a very full and objective understanding.Investopedia has been the single most helpful site by a wide margin. Their content is top notch.When I hit on something I can't find the answer to, I ask the customer service at my brokerage (Etrade) and they're very helpful. But if it's a very specific question, I've found I'm best off asking to speak to their customer service team for that specific thing, like their bond desk or futures desk, etc.
 Buy SPY and save a bunch of time
 I am learning how wireguard [1] works, and try to prove their claim that it is suitable for small embedded device, i.e. this one [2].
 I really think the idea of constantly learning (something new) is pushed too much in our field. I think we should encourage mastery in fewer topics rather than shallow superficial knowledge of lots of things.It's a balance I know, and we shouldn't be super focused especially early on in our careers. But at my current job we have a huge tech stack and a tiny team, I am constantly learning, but never in any depth, just enough to solve the last bug and then change to something different. It feels very like a very unproductive way of working. Very little of the new tech feels like it actually helps. Kubernetes while we don't actually need to scale for the foreseeable future. NoSQl when we don't actually need to scale. Asynch web servers when synchronous would be fine. A React monstrosity on our frontend, when server side rendering would be perfectly functional for the problems we are trying to solve. Google cloud - fair enough we actually do need that one or something equivalent.Edit: On looking through the other answers I see that a significant number are not tech related which is refreshing to see.
 Right, I think the key is learning something new in an area where you know the least. Even getting to know the simplest concepts can go a long way.My favorite example: cropping a photo to improve composition. It's simple and easy to do, but it can have a comparatively large impact on a photo.Learning more and more specialized tech can give diminishing returns.
 Yes that makes sense to an extent. The problem is that people were insisting on using MongoDB for problems better suited to a relational DB when it was faishionable, and now that decision lives on 6 years later.Or I see a lot of CV's where people collect web frameworks - which essentially do the same thing. Yet whenever I inherit Django code, it seems to be done by someone with only the most basic knowledge of how to get things done.
 I've been rebuilding the engine of a 1980 Honda motorcycle for the last while. Just following the manual and reading on forums and watching youtube videos. Yesterday, I finally got it fully back together and put it on the bike and reassembled everything else. It didn't start perfectly but it did start, which was really satisfying. There is a little more "debugging" left to do on it but I believe I will get it back in shape eventually. All this from no knowledge of engine mechanics a few months ago, I now feel like I can competently talk about the different parts of a combustion engine and do some basic diagnosis for vehicle problems.Doing this has been one of the best experiences in my life and it was a very cheap bike to buy and I only needed a pretty basic set of tools on top of it. I don't own other vehicles but I bet that, down the line, it will save me a lot of money that I may otherwise have given to mechanics. I would recommend doing this to anyone that has an interest in it, it doesn't take expert knowledge, just a healthy level of gumption :)
 I'm learning the ins and outs of WebAssembly. I just picked back up writing my compiler to WASM for my toy programming language (think JS crossed with ML). Right now I'm getting a feel for writing stack based bytecode and implementing basic features like local variables and control flow. It's not much, but I just got factorial to compile in my language which felt totally awesome.
 This sounds really neat. Do you have an open source repo for this? Would love to check it out. What framework are you using to write the compiler itself? LLVM, or something else?
 Here's the repo: https://github.com/nicholaslyang/saber Fair warning, the code is quite gnarly.I'm not using any frameworks. Took a bit to figure out code generating wasm, but once I got the basic emitter/IR working it got a little easier. Plus you start being able to read the binary format after a bit of practice.
 Nice! FWIW I've been solving some wasm challenges in infosec Capture The Flag events and it's a nice way to learn the bytecode.
 Cool! So far I've been reading the spec and looking at the output of wat2wasm.
 I really like using Firefox's debugger -- you can step through bytecode as if it was JS.
 Rhetoric, sophistry, debating. Politics. The goal is to establish UBI before the end of the year. If I had been smart enough I would have specialized in AI.I think there's untapped potential for techies and scientists to infiltrate the political landscape.I don't think I'll ever be famous but I'm arguing everyday and pushing hard for people to fight for themselves, and to push the ideas.
 Doing a deep learning course through fast.ai. Has been fun so far. For an ML noob, I like how we talk about deploying something end to end right from the first class and work our way backwards to the theory
 Porting http://imrannazar.com/GameBoy-Emulation-in-JavaScript to Typescript as a way to learn about how to write an emulator, as well as taking advantage of newer JavaScript APIs (e.g. requestAnimationFrame, ArrayBuffer etc) that were not available when this series of articles was written in 2010.We had a gameboy as a kid, but the ZX Spectrum (also Z80 CPU-based) meant more to me so hope to take what I learn from the great articles from imrannazar.com and apply to writing a ZX Speccy emulator (the gameboy had dedicated-hardware for sprites etc so not everything will be transferable).Yes both gameboy & spectrum emulators in javascript have been done already, but this is just for personal learning/fun/itch-scratching. It has been quite instructive both from a remembering-fundamental-cs-classes/how-computers-really-work perspective, as well as modern javascript
 I've been watching youtube videos about ancient cultures and sites. Some of them are lectures that are very well down, others go off on some pretty silly tangents but the videos of the sites they show are often pretty good and that's as close as I'll ever get to visiting most of them so I focus on that when they get to talking about aliens building them and what not. I think I've about exhausted that line though.I've also spent a bit of time watching youtube videos on a channel called "RÜNGE CARS". This guy hand forms aluminum bodies and builds his own chassis and they're pretty cool cars he making. The craftsmanship is impressive and so is the process. He pretty much takes you through it step by step. I still have quite a few of those to take in.Aside from that CouchDB 3.0 was release just a couple weeks ago so I'm learning about what's new and how it applies to my work. They're doing some impressive work on that.
 ancient cultures videos sound cool, and recs?
 +1
 I am a fan of old history docs. Search for mesopotamia on youtube for a fascinating one. I also like medieval ones. Check out A history of Britain. Any recs on your side? No aliens pls :)
 Trying to develop (ha) some web development skills and I was studying interview questions. I've never done anything web-related outside of making API calls, so I'm reading "The Little ASP.NET Core Book" by Nate Barbettini. I appreciate that the author is focusing on presenting the things one needs to know to do \$"{foo}" so far, other materials are either too wordy or are really childish/tasteless.I started doing Leetcode several months ago because I wanted to change jobs soon, but it's really exposing what not having a traditional CS background is costing me. I feel guilty looking at the answers on there and in Cracking the Coding Interview but I genuinely don't know how to make things faster. Seeing some of the answers in CTCI after attempting some of the string related questions made me ask myself "well, why wasn't that talked about in the informational section preceding the questions?"
 For ASP.NET Core check out Pluralsight. Got me up to speed in 2 weeks.
 I started hacking on a browser extension to inject source-maps into requests using HTTP headers this week. It's a dev tools extension which should allow full source-maps to be used in production sites without the usual comment at the end of the file. I've never done dev tools browser extensions before so it's fun to learn about.
 Computer networking. I’m reading through TCP/IP illustrated.Also learning about Linux. I used macOS for about a year and thought that I knew “Linux” but now I’m seeing how far the rabbit hole goes. I installed arch linux and am currently just customizing it and immersing myself in the community. Eventually I’ll pick up a systems or operating systems book.
 For playing with both networking and Linux, you should really look into dn42. It's pretty much an internet sandbox.
 I've been interested in the Tcl language since 2010 or so but have only written small scripts up to this point in time. I decided it was finally time to dive in so I've been working my way through "The Tcl Programming Language: A Comprehensive Guide" by Ashok P. Nadkarni as well as learning about the Naviserver ecosystem.
 Learning probability for strong foundation in ML. The books i am following are "First course in probability by Sheldon Ross" and "Probability and Statistics" Michael J. Evans and Je¤rey S. RosenthalThis is the first time i am studying based on the topics rather than following syllabus. I wanted to understand covariance for calculating similar interest b/w users to suggest the posts viewed by a user in the app i am developing. This took me down the rabbit hole and forced to learn everything required to define covariance. Its talking a lot of time but i feel it's worth it because now i have a strong foundation. Also its nice to follow more than one book because i have no attachment to any of the books. When in college i used to get attached to my notes or the first text book i follow, but studying a topic from many books have no attachment to either and its liberating.
 SQL.I'm writing a compiler for SQL that parses DDL (CREATE TABLE, etc.) and queries and outputs type-safe Go. It currently supports PostgreSQL, but the plan is to support more engines and more output programming languages.https://github.com/kyleconroy/sqlc
 I am trying to understanding more about why programming is so complex (it is some kind of calling after 25+ years of programming). I am doing this learning via working on projects in a diverse range of technologies (asp.net with c# & f#, js & typescript & purescript + node, js + typescript + react(native), haskell and clojure) and by working on proofs in tla+/agda/idris.My paid work is currently (inherited projects in) c#, so I try to mix environments by experimenting (and studying the runtimes / compilers at the same time) with little tools/libs [0] (not for production, but I keep wondering if there are ways to bring things that help me from in language A to language B).
 Basic Math and Pre-Alebra.I'm learning it in a way where I actually understand how things work rather than just the way I was blindly taught in high-school.Sounds boring but it's pretty interesting.
 Started working through the Coursera Machine Learning course By Andrew Ng. I’ve always wanted to understand ML better, and this seemed like the ideal opportunity to actually do it, especially as I might have some work coming up using ML.So far, I’m very impressed, very clear presentation style and he does a good job of explaining the fundamentals and maths (which is good as I’m pretty rusty at maths!) while still keeping it fairly concise - my main issue with learning from video is often that it “waffles” a lot and I could get the same knowledge from text much quicker, but it doesn’t feel like that here.I may switch to the deep learning specialisation or try to get my hands dirty with a more hands-on course after I understand the basic concepts but we will see, I’m actually enjoying relearning some maths more than I expected to!
 The assignments in the old course are in matlab. There are also unofficial assignments available in python. They can also be submitted for grades in coursera. You might want to have a look at them.
 Good tip, thank you!
 HTML/React/JS. Amateur hour I know, but all my previous efforts have been compiled code not web
 Audio programming and all jungles surrounding it - C++, plugin frameworks, Fourier transform, filters design etc. Step by step, often hard but also rewarding.
 You might be interested to check out sushi, which is a headless DAW written in C++.
 Thanks! Haven’t heard about it before, will check. Although I’v heard about Elk - looks like by the same guys. Recently started playing around with Bela as it has Eurorack kits.
 rust. the ownership system it embodies seems important and I want to understand it deeply. also, the language has momentum.
 Getting back into regular guitar practice (mostly classical). Also trying to broaden my musical horizons a bit: playing around with some virtual synths and my analog synth. I'm currently shopping for a hollow body or solid body electric guitar and amp, since I want to start getting into blues guitar. Hoping that I can meld some of the music production/synth stuff with guitar practice by laying down some backing synth+beat tracks and recording some guitar licks on top, hoping my little preamp buffer sounds okay.I'm also starting a Coursera course in audio signal processing. Lets me scratch the technical itch a bit while not distracting from music. My goal for later this year is to build a guitar pedal or 2 from scratch.
 Just ordered my first guitar and audio interface yesterday. Any tips for really starting from 0? I will be looking for some online courses, but there’s so much information online that it is hard for me to find out which is good for absolute beginners and which is not.
 Not sure what exists out there, I started over 25 years ago. A good first step is to learn chords, starting with major and minor versions of each chord. Get comfortable switching between them. This is where most people quit as a lot of chords are not friendly to untrained fingers.What can help with this is a concept called the "1, 4, 5" rule (it's actually called the I, IV, V rule but let's keep it simple). Basically, you start in a key, say the key of A, assign that to 1. The 4th and 5th chords from that starting chord always sound good with the 1st. So for the key of A, the 4th and 5th are D and E. Notes start over after G, so if 4 and 5 go past, like with G, you start over at A. In the key of G, the 4th and 5th are C and D respectively, for example. This is at the heart of blues music. For me, the easiest three-chord progression for my fingers to learn was G, C, and D.There are a lot of little "rules" like that in music theory and it can be fun to learn them and experiment. If you find that you are really getting into it, I recommend dropping \$300 or so on a decent acoustic guitar. There is something to be said about an instrument you can just pick up and play and not have to worry about wires and interfaces.
 thank you very much (to you and to all others who replied). i went with an electric guitar as it will allow me to play during the night, without bothering neighbours. when i will get better i would love an acoustic, especially for flamenco.
 As a beginner, I really like Justin Guitar (https://www.justinguitar.com/site-map-and-lesson-structure). But I'd love to know what other great resources are out there!
 dceddia on April 6, 2020 There’s a book called The Principles of Correct Practice for Guitar [0] that I found to be helpful. It’s not at all about playing specific songs or chords but entirely devoted to the mechanics of how to practice, how to hold the guitar, how to notice and relax tension, how to build speed, stuff like that. It’s a bit meta but I think it’d set you up with a good foundation.
 wkrause on April 6, 2020 Jamplay has a lot of traditional video tutorials for all levels.Yousician has some fun guitar hero-esque tutorials if you’d like more interactive feedback.
 Web app development using clojure/clojurescript. Also learning clojure itself. So far its been an absolute joy/blast. I'm really wanting to use this professionally but the amount of jobs using this tech stack is incredibly non existent.Hopefully that changes soon
 If you happen to get stuck on setting up a ClojureScript dev environment (like I did when starting out with the official docs), check out this write-up: https://danplisetsky.github.io/posts/2020-03-26-getting-star...
 I'm doing Harvard's CS50 (2020) and working through Steven Cochan's Programming in C (4th edition) alongside it. Coming from a JavaScript / front-end background learning about pointers and manual memory management is eye-opening.
 Doing this part-time studying + working thing right now, finishing up my first year of Informatics/CS after changing my major.For school, I'm learning networking. Finding it a bit dry, especially learning about packet structures and such. The book we're using, "Computer Networking: A Top-Down Approach" by Kurose & Ross[1] is great and the authors' personalities really shine through!For work I'm learning about databases and how to gain access to it from a web app. The world of databases (specifically PostgreSQL) and SQL is entirely new to me. Currently trying to figure out how to best connect my Flask app with my Postgres DB.Currently learning Rust whenever I have the time/motivation. It's a great language with some really clever design choices, but it's a pain in the ass to learn, especially without experience with lower-level languages. The incredible amount of other cool languages, such as Clojure and Elixir, can make it hard to stay focused!Also been meaning to get into vector graphics (Affinity Designer[2] is on sale right now) and philosophy, but you know...the usual excuses. Honestly, the incredible amount of CS-related topics I know nothing about, including some really basic ones, makes it hard to study anything else out of sheer guilt.As for philosophy, if anyone are curious, a book that was recommended to me by a philosophy major buddy is "The Problems of Philosophy" by Bertrand Russell[3].
 * Learning and building a more intuitive understanding of Projective Geometric Algebra (PGA). Looks very disruptive for all kinds of computer graphics applications. PGA replaces the use of Vectors, Quaternions, Dual Quaternions, and the entire machinery of Linear Algebra with a single unified, elegant framework that "just works." Feels a bit like magic.* Exploring and playing with new capsule routing algorithms in deep learning models for vision and language tasks. Particularly intrigued by routing algorithms in which output capsules seek to "explain" (generate/predict) their input data (e.g., EM matrix routing, Heinsen routing).
 Enki (the speaker in the video you posted below) is running a community called bivector for all GA peopleJoin the discord https://discord.gg/vGY6pPk.Check out a demo https://observablehq.com/@enkimute/animated-orbits
 Yes. These links are shown in the video :-)
 What makes it so disruptive?
 The following video has a good, developer-friendly introduction to the subject that should answer your question. Take a look in particular at the code snippets that are sprinkled throughout the video and notice how much cleaner, shorter, simpler, less computationally costly, and "universal"/"exception-free" the code becomes: https://www.youtube.com/watch?v=tX4H_ctggYo
 The Trickeration Routine, a solo jazz routine by the late Norma Miller, one of the original Whitey's Lindy Hoppers from the Savoy Ballroom in Harlem. It's one of the harder group routines out there because unlike the very popular Shim Sham[1], there are no repeating sections.Also just started trying to learn Svelte today. And I'm about to jump on the breadmaking bandwagon.Video here: https://www.youtube.com/watch?v=mIhi4BuDSf4
 Trying to learn or build my skill around music production with Ableton. I've been in a alternative metal band for almost 8 years, but electronic music has always interested me since I have quite a few ideas in regards to melody and stuff like that (I'm the singer in my band).I just applied to a course from Berkeley trough Corusera, and they are really great, but I'm not trying to rush trough, as this is my main way of trying to learn, making me lose interest because of the overflow of information.If anyone has any good books, courses or tutorials on this, that would be a great help too :)
 German, should lower the barrier to emigrate
 From where are you emigrating?It's not Germany, but if you happen to be from the US the Dutch American Friendship Treaty is worth a look. Relatively attainable bar, especially for people in tech.
 India, most migrations happen through intra-company transfers but that's not going to happen in a small startup where I work right now
 I'm a informatics student and am currently studying online. My focus is on embedded programming and I am currently working on a side-job, where I program an embedded device that is going to act as a wildlife deterrent to protect deer from ending up in wheat fields that are about to be harvested.I have many hobby projects next to that and can never finish any of those, but they are also only motivated by 'oh that might a cool thing'. I have not yet found a side project which solves a problem big enough to motivate me to actually finish it.
 Learning how to sing.Our voices are a beautiful, natural instrument we carry everywhere with us, from the shower to lonely business trips to walks in the park. I've always had the desire to put it to work. Singing is also an ancient tradition of bringing melody and lyrics to people. For me it's not about singing like a soul or blues singer (ie Joe Cocker) but more like Chet Baker: get the notes right (pitch) and building them into elegant phrasing, which needs control of tempo and great diaphragm training. Music is undeniably great for your brain, which can include learning and memorizing a ton of lyrics, tempo and pitch. As an art also very appreciated by most people, who really feel grateful by a (good) vocal performance, sometimes more than by any other instrument. Hearing yourself improve and sing well gives a high dose of happiness and confidence builder.It's also an excellent breathing and speaking exercise, which increases your ability to communicate effectively, projecting and modulating your voice effortlessly and making it easier to jump in into a conversation. Also gives your voice the stability to fend off your nerves or anxiety. For an introvert like me it's definitely a very effective tool, it makes me feel like "in the matrix" as far as speaking goes, as my brain thinks ahead of time or just in time, so my mind feels snappier. In other words, I feel like a more spontaneous person since I've started to sing.
 Would you mind sharing how you 'learn'?
 Not op though I’ve been doing it for a while now. A crap ton of scales and exercises. Lots of work to develop the many muscles in that area as well as teaching them how to coordinate together.
 Video editing (Adobe Premiere Pro + After Effects) and Video streaming (OBS + Twitch).I figure it's gonna be a while before we get back to normal. People will continue to crave attention and video is a more scalable way to disseminate your knowledge vs traditional meetings or Zoom calls.I'm specifically looking at doing more analytical video game streams and educational Machine Learning content for the advanced n00bs.Who we view as charismatic will change quite a bit in the near future since we can endlessly edit and improve our message before we share it with others.
 1. Woodworking / carpentry. Making custom slide out shelves for our pantry. 2. Flutter. Love it. 3. Cooking (I know how to cook already, but want to level up)- via Masterclass and a few books.
 I'm still in school and am just starting to get into more difficult math; right now I'm learning introductory odes, vector calculus, and introductory analysis. All three are really enjoyable, but in some ways vector calculus and differential equations feel like a review, in that the hardest part of each is just the calculus I've forgotten since Calculus I-III. I find analysis to be the most interesting course because of how novel it is. I remember at the start of the semester, it was so confusing; the concepts weren't difficult to grasp, but I just didn't understand why we were learning what we were learning, or what it had to do with calculus, for which we were supposedly trying to develop some theoretical foundation. But as the weeks went on, I began to appreciate the beauty of the subject, in small increments. I began to understand why the real numbers were constructed just so, and why we needed to understand ideas like compactness before we could talk about ideas like convergence.One quote about analysis that I read online somewhere is that you should study it until it starts to feel "natural." At the time, I guess it sounded true, but I didn't appreciate what it actually meant. Now, I'm starting to.It takes a lot of effort to digest each new lecture, but I'm excited to see what the rest of the course holds, and to graduate to "real analysis" afterwards.
 Cybersecurity! I just started on Hack The Box. I am not sure if I want to go all the way for OSCP. Regardless, it is really fun and I've always wanted to learn how to "hack".
 I bought the cheapest trumpet on ebay(\$65) and I'm learning the trumpet. It's a lot of fun. I'm slightly annoyed that I'm not programming as much, but this is fun too
 I'm learning how to do web development again. I've only been working on infrastructure tools/services at my job, and I'm re-learning concepts like how to authenticate users, and my first time seriously using React, Django and Typescript.My project is a hosted blog platform where you can edit a Google doc & publish it as a blog post, which is useful for publishing rich blog posts with tables, while keeping features like review/collaboration, tracking changes etc.
 Hey! Mine (https://docxmanager.com) is similar but for Microsoft Word on Windows :)
 Super cool! That looks professional. I have a landing page up for people interested in the idea and want updates - https://simpleblog.io/
 Great! I wish you will be success with your project.
 The current COVID scene has given me a new sense of what I want to be learning, and I'm using the enthusiasm to pick up a few things that have been on my bucket list for a while now:I'm learning:- Spanish with DuolingoVisited Spain last year for a few weeks. Loved the people, the culture and the food. And really really wanted to pick up a new language.- Music production/mixing with Ableton LiveThis has been something I've wanted to play with for a very long time, and thankfully there are so many resources on the internet to get started. Music has always been a constant part of my life, and production is basically coding with notes and sounds! :)- Just started getting my beak wet with investing in the stock marketI've always been skeptical of investing my \$\$\$ in the stock market, more so being the first generation in my family earning enough to afford (what my parents would call) "luxuries". But I want to be more invested (literally and figuratively) in making my money work for me. Thankfully, have built up more savings than I need for years and given the stock market scene right now, it feels like the right time to dip my feet in for the long term.I dunno how much of this will last over the next few months, especially once we start going back to office to work (I'm a person who LOVES going to office even though we have unlimited WFH), but one can hope! :)
 I've always had an interest in computer graphics, but never studied it in school. I found Jamis Buck's _The Ray Tracer Challenge_[1] and got totally hooked on creating a ray tracer. The book walks you through creating everything from scratch, starting with matrix multiplication all the way up through reflection/refraction and rendering (a useful subset of) OBJ files. The book gives you test cases in cucumber one at a time, and when the tests pass you have a new feature! It's super addicting. I've been learning Rust while going through it, too (repo: [2]). There's a forum associated with the book where people share images they've created and ask for help, and it's fun to see what other people have tried or what languages they're trying to learn while going through the book.I've enjoyed learning a programming language at the same time as learning an interesting subject so much that I plan on repeating it!
 The business side: How do you find your customers, position a product, and create demand. What about new markets, segmentation, downstream and upstream?Bad technology that gets this part right almost always does phenomenally, astoundingly, inconceivably better than great technology that gets it wrong.I'm tired of building things that only I and a few people really like, like some underground band only a few people know. It's nonsense, I gotta learn how to do the human part better.
 What are some resources you’re using to learn that stuff?
 Here's some bookshttps://en.wikipedia.org/wiki/Crossing_the_Chasmhttps://en.wikipedia.org/wiki/The_Innovator%27s_Dilemmahttps://www.davidow.com/books/marketing-high-technology/https://www.amazon.com/Four-Steps-Epiphany-Steve-Blank/dp/09...Each of those books are projects (the order I put them in is more or less recommended) ... that's probably a couple months of careful study.If you want to intersperse it with light reading, the following non-fiction novels are really good examples of the principles in practice (in not always obvious ways):https://en.wikipedia.org/wiki/Masters_of_Doomhttps://en.wikipedia.org/wiki/The_Soul_of_a_New_MachineYou can get used copies on ebay for about \$3 each.Thoughtfully engaging with the material is likely worth 1,000 times that.Also the commonly cited Reid Hoffman, Seth Godin and Peter Thiel books I think are mostly a waste of time. Al Ries is ok (and quick) and Jim Collins is good if you're trying to turn around a 5,000 person company, but oh, if only I was so lucky.Anyway, if you want to come back after reading those, I can give additional recommendations
 oh also, disrupted by dan lyons, although not as great, is good fun about the financialization and bullshit of modern tech life. https://en.wikipedia.org/wiki/Disrupted:_My_Misadventure_in_...For a 90s take on that theme, try this one: https://en.wikipedia.org/wiki/Barbarians_Led_by_Bill_GatesIt's worth quoting how microsoft responded to some groundbreaking technology from Go computing by Microsoft putting together a fabricated circus claiming they had matched the technology:`````` Eller's group kluged up this demo for videotape that showed how edit in place would work. He launched Excel with a chart in it. Then he launched Word with the chart cut from the Excel program. The smaller Excel window was hiding in the background, and the Word window was bigger so the audience couldn't see Excel. Eller drew a gesture on the chart sitting in Word, which called Excel to the top. As long as Excel was in the right place, it came right up on top of where Word was, and it didn't look like anything had moved. It looked like Word had just popped up the Excel menus right into the middle of the Word documents so it could be edited. Eller made the changes in Excel and closed it. He hooked up a software instruction that told Excel to move to the background and disappear behind Word. Then it looked like he was working again in Word with the proper Excel document embedded in it. It looked great on the tape, but it was total bull, pure smoke and mirrors, the apotheosis of vaporware. There was no linking or embedding occurring. Eller was simply pulling one application to the front of the other one. At the company meeting, executive Mike Maples stepped up to the podium. "Okay, here's this other thing we're working on," Maples said. "Here I have my document, and I have my tablet here." He held the pen up and waved it. "Now I can go into my Word document here, and I can write." While Maples was talking, charts and images flashed on the screen, and everybody thought he was actually writing on the pen tablet as he spoke at the podium. In actuality, he was just waving his pencil over blank paper while the videotape ran. `````` next up on that stack for me to read are Barbara Garson's The Electronic Sweatshop and Robert Cringley's Accidental Empires.
 Beefin on April 6, 2020 indiehackers is great for guides there
 Learning about health and covid to maximize chances of survival of me (27) and my parents (53).
 https://www.fast.ai/ Practical deep learning for coders. Also Synapse Matrix homeserver.
 I've been trying to build real systems with Microsoft's Durable Functions. I've been utterly fascinated by the patterns that have emerged on some of them.
 What are those patterns? I've used Azure functions a lot but never had (I think) a use case for durable ones.
 I’ve come up with the following:Watchdog Pattern: A orchestration needs to succeed. A watchdog entity checks up on it to make sure that failures are reported and dealt with appropriately (ie, refunding a payment if it fails catastrophically)Circuit Breakers: Polly has their own implementation, but I found it easy enough to implement my own (don’t recommend in production, just use Polly)No database: it’s a bit slow to get things done, but it’s amazing to create entities that don’t need to store state in a database. Paired with the watch dog pattern or preloading, you can have entities running “in memory” which may be faster than a dB lookup or the data could be projected to a db for analysis. I’ve been exploring this most recently.Aggregate entities: these just count things, or store references to important entities that they count. This works amazingly well instead of COUNT DISTINCT queries.
 awk.One too many times have I though to myself that a just little bit of awk might go a long way to help with extracting information from a pile of data.Now working my way through Effective awk programming. So far, no regrets.https://www.gnu.org/software/gawk/manual/html_node/index.htm...
 I'm trying to learn advanced Mandarin (while not living in PRC/Taiwan). I've bought some business Mandarin books whose content I wouldn't have sought out: international trade, shipping, etc.; I come from a tech background.Surprisingly, logistics (and the Mandarin around it) is interesting! Going through some of the "Incoterms" now. It's fun to learn something new and a language at the same time.
 What are some of the resources you used to get to your current competency? I took classes back in college so I have _some_ understanding, but I'd love to get to a conversational proficiency.
 I've been meaning to try and learn Lojban for quite a while. Now that almost all of my distractions are shut down for the forseeable future, maybe I'll be able to make some progress. I have acquired copies of "English Through Pictures" by I. A. Richards, and I thought I'd do something similar, only for Lojban. If I do make significant progress with that, maybe I'll post it somewhere.
 Been spending a lot of my time geeking out about fountain pens. Shocking amounts of information out there! Like this cartridge guide https://unsharpen.com/fountain-pen-cartridge-guide/Also learning about email parsing. Not something I had thought about before but there is a lot to learn and lots of edge cases.
 I'm learning how electronic music works and trying to merge it with the kinds of live music I've mostly played before. Sort of like, if someone were inventing the organ now, what would they do? Here's where I am so far: https://www.jefftk.com/p/rhythm-stage-setup-v3
 I've 2 main things going right now. IRL I am working on my culinary skills. Cooking has always been my passion but doesn't pay bills hence I write code. Been mostly working basics, learning proper knife skills, focusing on doing recipes from scratch and experimenting a bit to gain intuition about how things like emulsification work.On the code side I am building a logs database in Rust. I have previous experience building databases and in particular time series databases so most of the learning here is mostly about Rust which I have used before but not for this type of project. Also getting deeper into regular expressions, query languages (parsing/lexing/AST) and query optimisation than I have in the past.Rust is growing on me more than it did in the past. I think a) because it's a much better language than it was when I used it previously and b) my experiences since I worked with it last have garnered me more respect for it's design decisions and type system.Feeling like I am learning lots of stuff right now despite being trapped inside so that is good. :)
 Probably old news to most here, but: Systems Thinking. Am finishing Donella Meadows book and interested in going deeper into this particular rabbit hole.Also, related, found this in Coursera while looking for courses on Systems Thinking: Big History (https://www.coursera.org/learn/big-history)
 I'm learning sewing! It's very far off usual HN things but it's nice to do something completely different to what you usually do.
 I design board games for fun and unrealistic dreams of making entire hundreds of dollars. But the part I suck at is making art and iconography. So I'm spending some time learning how to drive GIMP and Inkscape. Just this week I have completely finished the game I've been working on for six months now: http://www.drtomallen.com/half-the-battle.html (unfortunately the manufacturer is in lock-down, so the only option to play it is to print your own...)I'm still awful at it, but I can now manipulate art from other sources fairly comfortably. And I'm at a point where I can make geometric types of shapes and patterns easily enough from scratch. It's already enough that I look at logos and things differently now, to see how I would go about building them in these tools.Unfortunately, I still dislike this aspect of game design compared to the fun of lying in a hammock and run thought experiments on the actual gameplay systems!
 Im learning Scheme/Racket. I started from HTDP and moving on from there, so far I am loving it, havent been this excited in a while. I am also ramping up on F# and the community is growing and quite nice. I recommend Scott Wlaschin’s Domain Modleling in F# and his website fsharpforfunandprofit.I am learning Latin and Spanish on Duolingo but thats more at the hobby level, about 10 min a day.
 I'm learning how to build 3d environments using three.js, specifically react-three-fiberFun way to jump back into React while also learning new concepts!
 How to solve the rubrik’s cube that’s been sitting on my desk for three years.
 At Miracle, Digital Marketing and Transformation Agency in Hong Kong, we help our clients improve digital services to make them simple, clear and fast. We help our client transform, create and improve their product in a digital way such as branding, web & app design, e-commerce solution, Digital Marketing strategy, Virtual Reality (VR) and Augmented Reality(AR), SEO. We are experts in their fields and enjoy challenging work. We work together to share knowledge and build our capability to improve user experiences. This helps us work smarter and more effectively. We are confident, capable and committed. We nurture curiosity and encourage our people to keep learning. We have flexible work arrangements and a supportive environment. We help our people balance their whole life and be the best version of themselves. https://www.miracles.com.hk/
 I've had a lot of fun learning offshoots from the function generator I'm working on building. (http://cushychicken.github.io/bfunc-quickstart/ if interested.)- Started learning about building versioning into firmware. Found some great posts from the Memfault Interrupt blog on GNU build IDs, and another one from the Embedded Artistry blog on adding more generic versioning.- Also learning about analog drivers and generic analog design techniques from designing the output stage of the next board revision.- Learning the most from building prototypes and selling them to people. It's given me a crash course in writing good, useful docs, and getting people up to speed quickly.If you want to get involved, there's definitely more boards, and plenty of stuff to be done. Feel free to email me at at gmail dot com to see about arranging a board for you!
 How to run as much Fediverse and and IndieWeb software as I can. I want to understand the entire scope of what is possible today for a fully personal federated cloud, homepage, and social network. Along the way I want to understand what holes there may be and what approaches could bring more people onboard.So far I’m having success and fun with Pleroma and Matrix.
 Spanish and how to play the guitar.
 Upping my game on Big Data (and incidentally ML) in the Cloud with "Google Cloud Platform Big Data and Machine Learning Fundamentals" (https://app.pluralsight.com/paths/skill/big-data-foundations)
 Norwegian!Originally, I was going to do a hiking and photography tour of Fennoscandia in the Fall. I'm not sure if that'll still come to pass with the ever-looming collapse of society, but at least it's pretty refreshing to learn a new (non-programming) language for the first time in over a decade, and for the first time in my adult life.
 I am a native Norwegian speaker! How is it going so far?
 I'm slowly going through the Duolingo tree :)Went into it with pretty much zero knowledge of the language, and the thing that caught me most off-guard were some of the non-phonetic spellings, like _jeg_ and _kjøpper_, but else the actual grammar is similar enough to English that it's not causing too many issues!
 My 6 year old daughter and I are building a quadruped walking cat robot. We are both learning a lot of new concepts as we go.Our robot is not operational yet, so I will include a YouTube link below of the creator with a couple of his own completed “cats”.https://youtu.be/OrYmIbtmmJI
 Did a deep dive on go templating systems to start adding more frontend web interfaces to my projects beyond simple json apis.Settled on pongo2, which has django-style multiple inheritance, which is IMO essential to keeping an html template hierarchy organized.With it, I’m writing an ActivityPub spider (code is messy and not fully organized yet):https://git.eeqj.de/sneak/fetaand also an HN transparency tool that highlights things for me to read that get nuked from the frontpage:Next up: rust. I have about 4 go projects I want to finish first, and having a good templating system means they will be somewhat polished when I shelve them.
 APL! I wanted something completely nutty that would change my way of thinking. The characters are kinda fun and you pick them up after really drilling them for 3 days or so. Then you begin to learn to read trains and things. It’s a really fun language.That and I’m learning condensed matter theory from Altland. Can’t recommend this text highly enough.
 I’ve started getting into Go. Looks good so far. Working on a side project, which is my best way to get into something new.
 Checkout the work of Alex Edwards [0] and his book on Go [1]. Great guy and he even helped me with a consulting project.
 I bought his Let's Go book last week. Pretty good so far and if you're building a web app, I'll throw my recommendation in too.
 what are your resources to learn the lang?
 I read “Effective Go”[0], but what really helps me is browsing through the sources of various Go projects and libs in Github. I also keep a tab of Go’s packages docs open [1]. And of course there’s StackOverflow. In general I prefer learning from source code rather than books.
 I’m learning go, too. Check this resource out. https://quii.gitbook.io/learn-go-with-tests/
 pizza234 on April 5, 2020 Although the question is not directed at me, I've found exercise websites to be extremely valuable. I value learning/gathering experience by reading code, but I find the hands-on approach more stimulating.My favourite resource right now is exercism.io. Although some tracks have too much of a high students/mentors ratio to be effective/practical in mentored mode (or to activate the mode at all), going through all the exercises (and community solution) is still a very effective way to learn a language (along with a textbook, of course).Codewars is another interesting idea, however, it's much more grounded on computer science, which is not very well suited to just learning a language.
 wegymoo on April 5, 2020 I've been using this https://www.youtube.com/playlist?list=PLVEltXlEeWglGINo25GxV...It seems like after the pandemic there will be a lot of new gophers
 eu on April 5, 2020 Black Hat Go is a good one
 Learning again, albeit temporarily, how not to live like an entrepreneur: it's pleasant, and my body is thanking me.
 As a native English monolunguist I'm learning Russian.Rust for a side project I've just started.Music production techniques and how modular synthesis works.I also started skateboarding a couple of months ago after around a 8 year break so I'm getting my flat ground practice on my patio haha (although I'm taking it easy for obvious reasons)
 Let me know if you have any question about Russian (email in profile) :-) And I am a Rust learner too!
 I'm about 3 weeks into Rust right now. You'll probably want to use it exclusively in short order.
 Could you say please what is the motivation to learn Russian?
 As I have a little time on my hands a few things.Non-technical: I'm learning to create music to help satisfy my creative side. I'm starting with the piano, and when I can get to a basic proficiency, I'll slow down and jump to some voice lessons I bought a while back. Then, I'll put it together with reaper, using some of what I learned as a teenager.Technical-Creative: I'm returning to my project to do a deeper dive on what makes programmers bad, mediocre, good, or great, and creating a track that others can follow. While I have the framework already, I am trying to learn a whole set of skills well enough to teach others.Technical: I'm patching up holes in my EcmaScript ecosystem knowledge. I never really took the time to truly grok Shadow Dom, the Redux patterns, and the like, even though I was managing a team who was working in it.
 Right now I'm learning Gatsby and re-learning React after having done one project with it and putting it down for 12+ months.I'm learning how to rebuild my 3d printer for the third(?) time. Each time something breaks it starts off as blind confusion, and over the weeks I figure it out and then I feel like a genius when it it works.I have a business I want to build, and I'm working on estimating what the cost of the individual items / products are, how long they take, and how long it really "costs" me. I'm working on fixing up the website and improving it.I have a wall of post-it notes in different colors I'm using to track all of this stuff. As a developer I hate time tracking and project management in general but I'm learning a lot by doing it myself. Progress is slow, but at least there is progress.
 Trying to learn some oratory and/or one on one communication skills and not having much of a clue where to start!My problems - I feel like I fail to quickly assess the other person and fail to adjust my communication - so I am either way too technical in the lingo or way too much of a layman talk that makes it feel like I am being insincere!I also fail to give up the 'problem solving' angle in communication - like I have to remind myself constantly that communication is rarely transactional or a means to an end.I am realizing what I am missing is that I fail to take interest in other people and their viewpoints and with some concrete strategies and practice I could do better.It's never been a problem as such - the few times it was a problem I managed to retry and resolve, but I want to bring joy and ease into my in-person communications.
 Go easy on the sauce and simply listen.
 Yeah - starting to incorporate the listen part but that is leading to awkward pauses as I listen too much - which is next on my list to tune :DJerry rigging this is hard - I think a more relaxed, in the moment and self-forgiving approach is needed.
 I'm learning how to keep my employees interested.We are a small IT consultancy, 20 years books and always had three months loot in the bank just in case. I could never have predicted this thing but I've always wanted to sleep at night so insisted on a war chest. Damn I'm boring but as it turns out boring is quite handy now. We have furloughed (UK) a few troops. We top up the extra 20%.The calls on the helpdesk are decreasing but at some point I will need to find more work for the kids. I see a major programme of updates in the near future. BIOS, switches etc etc etc ad nauseam. If it fails to move it will be updated. We do rather a lot of that anyway but to ensure that contracts are fulfilled, we need to be seen to be doing something.Any other employers here like to pitch in (be careful for obvious reasons)?
 Do you think now would be a good time to explore ideas for productizing any aspects of your business?
 I'm trying to get back into graph drawing [1] while learning to code in rust. I used to do some experiments in graph drawing a while back for my master thesis, but lost track. Now with the ACM archive [2] being open i got inspired to look into this again, even though many of the relevant recent papers would have been available anyway. Not the classics though.
 I enjoy learning, so I try to learn new things as part of my day to day routine to keep things interesting.I just started following OCW's Finance Theory class and I'm starting to read the text book on corporate finance and watching a lecture a day during lunch. I've always been interested in economics, so this is just learning for learning's sake. https://ocw.mit.edu/courses/sloan-school-of-management/15-40...I'm just about done reading "A Look at Boulder: From Settlement to City," about the history of Boulder County, CO. Again, in this case I'm interested in local history, so I'm just reading it before bed for fun.Two weeks ago I installed FreeBSD on a spare hard drive, and I've been reading through the handbook and learning how to do various tasks as they come up.I'm writing a Spotify client in Common Lisp, so I'm learning about the Spotify API and architecture. The beginnings of the library are on Github, but right now it's really just a utility library for making API calls, and not much of a client. This started as the thought, "It'd be neat to have a library to control Spotify from the REPL," and is turning into a full client because spotify-tui is the only client I can find on FreeBSD. https://github.com/jl2/cl-spotify/At work I've been helping the test team write functional tests for some Windows software, which I haven't used in years, so the past week I was re-learning "just enough" about Windows and Python's win32com library, and learning about AutoIt for the first time.I've been learning to track stand on my bike - it's something to do during stoplights.And I impulse bought a pot roast on Friday, so today or tomorrow I'm going to learn how to cook one.
 As my company is going to build a prediction app, I'm Currently learning Data Science, Big Data, Python and Sever Scaling. Because of the Corona situation, I'm currently working at Home. So, I have time to learn more, however, It is boring to learn while home.
 Golang!More specifically, trying to build a static site that has all the indexes of my programming books indexed and searchable using Bleve.Edit: If anyone has tips on how to extract text from indexes of books that'd be great. Currently thinking of using OpenCV as I'm comfortable with it.
 Reading various biographies!Some of the books on my list are: The Secret Life of Salvador Dalí Doctor Goebbels: His Life and Death I, Claudius by Robert Graves The Agony and the Ecstasy Lust for Life Carl Jung Memories, Dreams and Reflections. Stephen King - On Writing
 Haskell and compilers at the same time! Following Appel’s awesome Modern Compiler Implementation in ML: https://github.com/tdp2110/HaskellTiger
 GraphQL (advanced). Already been using it for 4 years now (yes back when there was no tooling nor best practices) but I decided to go further in the schema design thinking and bought Production-Ready GraphQL to help with it. Strongly recommend the book as it goes quite deep on the subject.Also experimenting with my 4th home-brewed beer."Soft skill"-wise I spend time helping people with good (so I hope) advice and recommendations and a bit of interview mentoring to enter the software development industry. Makes you learn a lot about yourself and how you can motivate and help people big time with only a tiny amount of your time and energy, just sharing stuff you know.
 Learning some Vue.js - struggled a bit to get into React (nothing against React, might try it again later), but I find Vue+Typescript with class components works well for me as a .NET dev.Web dev tooling really has come a long way in the past few years!
 Currently hacking up a prototype of a puppet-like system for automating host setup.So far I can parse a configuration file, apply rules, handle (manually specified) dependencies, and configure triggers to run on rule-actions.Not a bad state to be in for a few hours work. Of course the big decision is if I continue, and write modules for doing more than I have right now. I suspect the rational answer should be "no". But I kinda like the existing implementation, and being go it is trivial to install/deploy.https://github.com/skx/marionette/
 I am learning how to get better at writing short stories in April by participating in Camp Nanowrimohttps://nanowrimo.org/what-is-camp-nanowrimo
 I'm learning Rust language, I'm reading through the official Rust book at the moment. I have to say the book very well written and easy to follow. I'm looking forward to using Rust full time sometime in the future.
 Unity & GameDev. After work I'm a bit drained so it's slow but nice.
 I have always felt I have not really understood things from the bottom up in terms of CS- like how do we really get from bits to software? I have been building Ben Eater's 6502 computer, which has been mostly enjoyable (cutting/stripping wires and getting them into the exact right small little hole is tedious at best, hurts my back at worst).I have also been reading Modern Operating Systems by Tanenbaum- though a quite old edition from the early 200s- wondering if its worth putting on hold until I can get my hands on a newer edition.Next up, I'd like to do Ben Eater's 8 bit computer as well as nand2tetris.
 Studying general relativity, since it's the flagship application of my field of mathematics (differential geometry) and yet I only know the basics. It is, of course, the most elegant scientific theory of all time.
 I’ve been wanting to ask this a differential geometer - what do you think of Sussman and Wisdom’s book as a DE intro for an CS/applied math person? Thanks!https://www.amazon.com/Functional-Differential-Geometry-MIT-...
 Never read it, but the preview pages look pretty neat. I might pick it up for a fun read. Might want to pair it with something like do Carmo's Differential Geometry of Curves and Surfaces (which is quite accessible) for the mathematical side.
 Thanks for the recommendation. And yes, the lisp book should be fun. Sussman is a legendary CS educator.
 I got a new job not long ago which has given me a lot of time to both learn and come up with a new application; I'm learning a couple things on-the-job:`````` - Go & its entire ecosystem - Packaging & deployment via RPM - Layout & design a web ui (this was done by someone else in my previous jobs) - Personal project management (I'm a one-man team atm) - Code generation via Swagger - Architecture & technology choices and documenting them as I go - Working from home full-time (not by choice) and staying productive - Warhammer 40K <_<``````