Threads for emsal

  1. 12

    From the readme,

    Each commit of this project corresponds to a section of the book. For this purpose, not only the final state of the project but each commit was carefully written with readability in mind. Readers should be able to learn how a C language feature can be implemented just by reading one or a few commits of this project.

    1. 2

      On GitHub is there an easy way to view the commits of the project in chronological order?

      1. 1

        I’m not heaps familiar with github’s web interface. I know you can do this from the git cli with git log –reverse

    1. 2

      I’m not entirely sure what the author thinks precisely is wrong with recruiting but I definitely see the frustration with engineers being consistently lowballed on salary and other scummy deceptive tactics and the overimportance of a person’s existing network. One can really see her experience dealing with this system.

      There’s something seriously wrong with the incentive scheme here, is my non-expert guess as to what’s wrong. Recruiters are supposed to bring in the most monetary value in the form of good engineers for their clients on a consistent basis, and once a person sees their job from that lens they might make some serious missteps in terms of other considerations. Discrimination isn’t protected against when the possible candidate is one of a multitude of options that the recruiter sees online, for example.

      What alternative recruiting strategies have we seen that might be more equitable to the candidate? Things like TripleByte?

      1. 6

        One section I strongly agree with is “Don’t research forever”! I’m extremely guilty of this. I could use a little more advice on how to avert this tendency, though. As a recovering perfectionist, I struggle to do anything if I’m not absolutely certain I’m doing it “right”.

        How do you break out of researching and actually start trying stuff?

        1. 3

          Define “right”. As long as the program does what you expect of it, it’s “right”. It might not survive garbage input or thwart dedicated attacks, but that can be rectified once you have a program that works. A few stores. Twenty-plus years ago I started writing a blog engine. I took over 18 months to write it, as I was constantly paralyzed by design choices and how to handle some very obscure corner cases. I finally had enough and “shipped” what I had, and in the long term, the obscure corner cases were never a concern and in fact, some of my initial designs were downright incorrect (but never implemented). Also, the code you see now is not the code I initially released—every bit of code has been rewritten over the past two decades although it was never a full rewrite.

          Several years ago, I wrote my own gopher server. It served my purpose, but it was absolutely not fit for anyone else to use. I rewrote it so it’s usable by other people, but it took me a bit of time to all the pieces (domain knowledge about what I want for a gopher server, better modules, etc.) into place for that rewrite to occur. In this case, a rewrite was the right choice.

          Also, Steve Jobs always said, “Real artists ship.”

          1. 3

            I’m going to echo the advice I received as a pretty theory-minded engineering student: the map is not the territory. Researching helps you draft a map of your trip to whatever it is you want to achieve, and it’s absolutely true that the better you plan, the better the trip goes. But a) planning is no substitute for the trip and b) there are a myriad obstacles that you won’t encounter by researching and planning.

            Also: imho “doing things right” is overrated – it’s finding out what “right” is that’s actually hard, and that’s often orthogonal to the programming the goes into it. Lots of things are done according to tradition or spec and therefore considered “right”, even though they’re actually pretty awful. Some things you just gotta invent for yourself.

            1. 2

              My experience is obviously different from yours but I also struggle from this to varying degrees, periodically. I tend to break out of it when I’m able to focus on just enjoying the process of programming without thinking of the result of whatever I’m doing. That’s sort of key, actually: in those moments I don’t think about “oh, this might turn out bad, but that’s okay”; the evaluation thing just doesn’t come into my mind until the latter stages of finishing touches and what not.

              This results in a pattern of me having side projects that might be good proofs of concept but are hilariously unpolished, and long stretches where I felt guilty about not producing good, polished projects thus resulting in a dearth of side projects at all. I’ve sort of learned that it’s important not to judge yourself for not being able to get started on something as easily as others can, as the adjustment process for learning how to start earlier is best approached without that extra self-inflicted baggage. Indeed, that might be good advice not just for software but for many other areas of life as well.

              It’s also a good idea to read blog posts from a wide variety of perspectives outside of hyper-productive FOSS developers just to get a better view of what the reality of software is. One of the pieces I’ve seen quite recently, either posted here or on The Dreaded Orange Website, was “It’s OK for your open source library to be a bit shitty”. It helped me feel re-validated in my love for my craft, even when I’m having a dry spell of productivity.

              1. 1

                Developing thick skin is what I’m trying to do.

                Every time that I do anything, it is inevitably terribly embarrassing! I’ve done too much research and can see how badly I did this thing but without practice what can I expect? or I try to emulate something and it just ends up like it’s made by a four-year old.

                So, thick skin. Keep trying while holding a steady gaze on imperfection without casting judgment, I guess this is what meditation is supposed to teach you.

                One really good hint: “Make smaller circles” which Joshua Waitzkin talks about in The Art of Learning.

              1. 1

                What are some unique features of this library that aren’t in, say, Turing.jl?

                1. 2

                  Was just kinda messing around, had a bag full of: [220Ω,100Ω,33000Ω,47000Ω,3300Ω,1Ω,2Ω,3Ω] and tried a value of 100.3 and it froze the page.

                  Cool tool though!

                  1. 1

                    Thanks for this! I’m taking a break from this since I just released it but this’ll be fun to look into when I open it up again.

                  1. 4

                    In my experience, learning to get used to asking dumb questions in public (and the skill of being able to know what you want to ask) was also a big part of attaining success during internships. In a 3-4 month time span, there’s not a ton of time to get acclimatized to all of the nuances of who on the team knows what, so the most time-effective way of getting all the knowledge I needed was to put myself out there early and ask whatever stupid questions I needed to early on. It was initially very difficult, especially when having to ask a question to someone else in person. However, I have been fortunate enough to be placed on teams where people in general don’t mind receiving basic questions, which really helped me get over the sense of embarrassment and just focus on being able to retrieve the answers and get unstuck.

                    1. 8

                      learning to get used to asking dumb questions in public

                      Of all the times people I’ve been in a meeting or a one-to-one conversation and someone’s said “can I ask a dumb question” and I’ve thought the following question was actually dumb… hardly ever? People who think they’re asking dumb questions very rarely are.

                      I’d really hope that your experience is more common than it seems like you think it is. The idea that interns are being put on teams where people don’t have time for their questions just kinda makes me sad. We were all beginners once.


                    1. 4

                      I’m trying Alex and Happy (and Haskell) for the first time in a side project; trying to make a really minimalistic query language for CSVs. I’ve gotten up to generating some small parse trees from strings.

             (I’m sort of embarrassed)

                      1. 17

                        Having a cozy Christmas with my parents and next-to-immediate family.

                        For those of us who happen to be feeling lonely this season, don’t despair – if there’s anything that’s true about the world, it’s that things change, and perhaps things will change for the better for you, and quicker than you may think. In any case, I share my warmest regards and I’m sure many of us will too.

                        1. 4

                          This piece was beautiful. I’ve perennially been chronically impatient with my own mom, and this reminded me once again that a little patience can go a long way.

                          I’m definitely going to start rethinking my attitudes about many of my interactions now.

                          1. 4

                            One important takeaway from this, which Brie Code also makes is that videogames aren’t very accessible. I really want them to be so because I want to share the stories, music, and artwork from videogames with more people, but it’s difficult to do so if they can’t get past the accessibility issues. I’m also kind of surprised the author’s mom wasn’t completely put off by Cindy, because I certainly am, and I know many people who just don’t feel like the game is for them when a character dressed up like Cindy shows up.

                          1. 10

                            For more about the misuse of data-driven algorithms in scary places, I highly recommend reading Weapons of Math Destruction by Cathy O’Neil. It itemizes a number of different places where these algorithms end up harming people and notes some patterns in judgement errors that lead to these things become widespread.

                            1. 5

                              I’m reading Oathbreaker by Brandon Sanderson, it’s not networking, it’s not sci-fi, but it certainly is good!

                              1. 3

                                For more fantasy, I’m reading the Malazan Book of the Fallen series by Steven Erikson. It’s ten books and I’m currently about to finish the sixth. Definitely a great read for anyone who loves good worldbuilding or fantasy characterization.

                                1. 3

                                  This series is the only fantasy blockbuster series I’ve finished. Good quality right up until maybe the end. I especially like the shift to an entirely different continent and system of magic around book 5.

                                  1. 2

                                    I got to 6 or 7 in the series and started to lose track of what was going on. I absolutely love the world though, and definitely intend to pick them back up in the future.

                                  2. 2

                                    How are the other books in the series ?

                                    1. 3

                                      I really enjoyed them. I’m a big fan of Sanderson’s work generally, and this series seems to be one of his best so far.

                                      However if you’re considering starting the series, you should know that it’s only 3/5 complete, so you’ll have a long wait to finish it!

                                      1. 2

                                        I waited for “The Wheel of Time”. I just hope it is fun to read!

                                        1. 2

                                          I’ve not read it, I’ll stick it on my list :)

                                    2. 2

                                      it’s not networking, it’s not sci-fi,

                                      Honestly, I’m really eager for that kind of discussion around here. I get tired of everyone recommending the same circle of tech books or science fiction.

                                      Thanks for the suggestion, I’ll take a look!

                                      Edit: Oh… it’s fantasy. Erm, I suppose the tribe doesn’t wander far from the community-approved genres.

                                      1. 2

                                        If you like history, I’m still chewing on Empire of the Steppes. The book is always described as “majestic” and “sweeping”. I’ve never read another history book that provides such an encompassing view. Its scope extends from mainland China, to the silk road oasis kingdoms, to Persia, to Kiev, to Attila’s march on Rome. It’s fascinating how a military campaign in China can set off a chain reaction like billiard balls and cause an invasion in Europe.

                                        1. 3

                                          Another amazing history is Jonathan Spence’s God’s Chinese Son, but really, you cannot go wrong with Spence. He is a magician.

                                          1. 2

                                            Oooh, that does sound great! Thanks, I’ll definitely look for that one!