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 . 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 :)
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.
That 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.
Sheldon Axler's acclaimed "Linear Algebra Done Right" is freely available as a download  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.
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.
Seconded. Highly recommended.
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.
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:
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.
Seven Sketches in Compositionality: An Invitation to Applied Category Theory
Applied Category Theory mini-course:
Programming with Categories mini-course (with Bartosz Milewski):
* 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/ .
There is also a playlist on Youtube
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.
That being said, when you explicitly model side effects, you invariably end up with some kind of monad in your model. Food for thought: in a logic programming setting, where your domain is some flavor of partially ordered set, monads are closure operators (a kind of monotone function). Closure operators give a cool foundation for the semantics of certain kinds of logic paradigms, such as concurrent constraint programming.
I come from the other side, Milewski's book is to me "Functional Programming for Category Theorists".
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`.)
That being said, it's true that I'm using `T` itself in a function-like way. Category theory does blur the lines between the two ideas: monads are "functors" with some extra structure, and functors are ("just") functions between categories that preserve categorical structure. But it's critical to notice here (and it's apparent from the type `f : A -> T(B)`) that `T` is not the same kind of function that `f` is. `f` lets you move from one type to another, by mapping each value in one to a value of another. `T` lets you move from a whole category to another category, by mapping each object/type in one to an object/type of another, and mapping each arrow/function in one to an arrow/function of another.
In other words, monads occur at the type level, whereas functions occur at the value level . That means that, colloquially, you can't just use a monad "instead of" a function, any more than you can use "Integer" instead of "42". But as I alluded to above, monads over partial orders are closure operators, and we can often model the evolution of data over time as a partial order. So in that domain, monads literally are functions, and the "side effect" of a closure operator is mutably updating a cell by moving its contents up in the order.
If you model the evolution of data as a partial order, you can indeed obtain monads that more closely resemble normal functions. But a partial order is just a particular kind of category, so even here we've built a separate little domain over which our monad exists. (Of course, functors are all about crossing those domains in principled ways.)
 That's why it's not "IO ()" or "Maybe Int" that are monads; it's "IO" and "Maybe" themselves, which are well-behaved functions from types to types.
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.
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.
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)
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 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!
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.
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.
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?
May I suggest welded mesh?
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.
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.
I've done a fair amount of experimentation on on bread making, and a very important step in bread making is autolyzing 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.
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.
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.
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 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.  It's a small "magic town" in the mountains in Jalisco. 
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.
80g hot water (steaming)
Twice as much baking powder as what you see in salt (it weighs less so I don't see it registering on the scale)
Depending on your location, you may use 120-125g flour, 80g water because the water/environment is just different.
1. I typically place a pan on a scale and then put in 35g lard (pork and duck have worked well for me), then I put the pot on the lowest heat to melt. Fat is key, I tried using oil, butter, etc in the past and it didn't work well for me. It's also possible because I was butchering all the other steps too, this is what I call my cracker tortilla days :(.
2. Next I put on my kettle for hot water (80+ grams worth), it's fine if it boils but you mostly just want hot steaming water.
3. I put a bowl on the scale and pour in 130g of flour. Flour of course is another key element since not just any flour gets the job done, I've been experimenting and having some success with flours in Europe though that are more artisan bread friendly. Here are some Mexican ones https://allofeverythingblog.wordpress.com/2014/04/16/autheni... that you want to look for and you can also try to order some online (white sonoran wheat flour). Weirdly enough, there is a difference with El Rosal in America vs the ones from Mexico, the American ones are enriched and bleached which gives it a slightly diff dirt like smell and flavor. I recommend finding a way to get the flour from Mexico if possible.
4. I take the pot with fat off the fire, let it sit for a 1-2 mins.
5. I take the hot water off the fire, and pour it into a mug on my scale, looking for 80g of weight.
6. I put the baking soda and salt into the fat, along with the hot water from the mug, stir it up so it's all mixed.
7. Pour in the flour and mix it a bit with a fork, then knead it like you're folding the dough on itself for about 5 minutes. At first it may stick to your hands but after a minute or so that should go away, if it doesnt you need to add a tiny bit of flour, or water if its too dry. This is hard to explain since its more a feel. After 3 sessions or so you start to understand the consistency you're looking for.
8. After 5 minutes you should have a smooth dough that you can then pinch off into 8 tiny golf balls. If you let the dough sit here, which isn't necessary, (I've tried as long as 4 hours) it becomes quite elastic which makes it harder to press/roll the tortilla to a manilla folder thin thickness.
9. Roll them into a ball and then I recommend using a press with baking sheets so they dont stick, but you can also use a rolling pin.
10. If using a rolling pin, roll it up and down into a rounded button like shape, then turn that horizontal and do it again with equal pressure on both sides of the pin, this should result in a circular shape. I don't recommend adding flour since that will result in a more floury taste, but I'm still trying to figure out how to get around this without a press, since the tortilla will stick to your surface without baking paper. I don't recommend foil/plastic because the creases will reflect in your tortilla. At the end of rolling, they should be pretty thin (manila folder thin)
10. Make sure your pan is on medium high heat, takes about 5 minutes to get there, sometimes longer if using a cast iron. Then place your tortilla on the pan, it should bubble within 20 seconds, then you can flip it wait another 15-20, then flip again. This is pretty crucial, if the heat is too low its undercooked with no bubbles, if its too high it burns and the little brown spots will crack as you try to roll your tortilla. Heat's probably one of the most important parts which took us about 50 tortillas to learn.
11. After that you can place it on a plate or in a tortilla warmer.
Hope this helps! In the future I'll probably look into corn but that's definitely once I perfect an entire taco first.
For those of us in Europe can you recommend your choice of flour (and perhaps some other replacement ingredients)
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.
Get it at your local delicatessen, or your local Hyper Market.
I was introduced to them by a friend who was helping them build an open platform , 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.
That's some freaking "kit" !!!
https://open-data.karuna2020.org this is game changer. I wish more NGOs in India would do it.
And good luck!
750 INR = 9.84 USD
It would be nice if you can make it easy to provide donations from outside India.
I wish you all the best!
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:
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.
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.
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.
A vegetarian diet may be the healthiest there is - I don't know. But Greger is biased for sure.
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.
Bw: push ups, pull ups, crunches, supermans, squats, calf-raises, planks, wallsits, HPUs or easier variations
Weights: bench, rows, deadlifts, squats, OHP (google 5x5), pull ups, calf raises
run, bike, or swim
Just something to keep in mind as minimum.
Alongside that, I am also watching Disney's Imagineering-in-a-Box, which describes how they develop lands and rides for their theme parks:
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
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.
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'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.
The class assignments are missing a more thorough look at optimization. Might have to rely more on the lectures for that.
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/.
If you understand this, you are a genius:
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.
"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'm currently working through the Algorithms chapter, which builds up from Deutsch's Algorithm  all the way to Shor's Factoring Algorithm , but I will definitely end up going through most of the chapters.
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.
I think my favorite moments were learning that v uses the motif from Beethovens Vth and `!` = Candy+mustache
Brilliant 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 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.
To 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 . My household is also using this technique on things like incoming mail, etc.
Bravo on your work - stay safe!
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:
I'm also going to learn to airbrush. I've had the gear for some time, but now I'm seriously putting the time.
It’s been around for at least 15 years, but looks like the author has recently started updating the feature again. Check it out!
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 :)
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.
Any tips for communications with partners?
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 :)
when i was still stuck in relationships that didn't work, most discussions were always about "who did (or did not do) what and why that was terrible".
these days we talk about what problems we face, what we tried, how they didn't work and ask each other advice on how to deal with the situation.
i had to learn to be more humble and own up to my faults (that was hard). i also had to learn to reign in my temper when i was getting frustrated. (that felt impossible, but turns out to be easy when the discussions are not personally directed)
and another thing that has a huge impact on our communication: we validate, compliment or appreciate each others efforts constantly. we talk more about the good stuff than about the bad stuff, and that really makes a difference.
and lastly: allow each other personal space when needed
i know this is not really "new knowledge". every talk or tutorial about communication will tell you similar things. but it is what works for us.
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.
John Gottman has a number of books on this topic and I'd highly recommend them.
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.
My 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.
For no apparent reason ... sigh
Are you using any resources that you'd care to share?
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?
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 :)
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.)
I can't believe I listed diapers twice and left out "Does the baby want a BOTTLE" - D'oh!! :)
(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.)
For the first few months I found this book great:
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'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.
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.
Hugo Award for Best Novel three years in a row!
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.
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 was thinking about doing an interactive online version now that we're all stuck inside.
: 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
Is your startup a game studio?
https://youtu.be/J5xU-8Kb63Y How to build a classical solar system
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.
(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/
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.
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’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.
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:)
Davinci Resolve is a surprisingly good tool and for a non-professional it would be my no. 1 recommendation.
Learning even the simplest things in another area can be very empowering and rewarding.
Super slow intro to the tool itself:
Simple but effective techniques:
I 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.
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!
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.
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.
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 :)
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?
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.
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.
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.
Case in point: The comment below mine...
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.
All 3 are a mind expansion coming from other tech. Cannot recommend them enough :-)
> 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
The kit I got for those curious: https://www.guitarcenter.com/Alesis/Nitro-Mesh-8-Piece-Elect...
Each of the 24 characters follow very logical rules and build onto each other to build "blocks" of syllables. Each block must start with a consonant in the top-left, always followed by a vowel, and sometimes ends with a consonant. So the block always reads left-right, top-bottom and must always contain at least one consonant and vowel.
In addition, each syllable block has a phonetic sound. This means that it's really easy to read and pronounce, since there are no silent letters, with the one exception of single vowel syllable blocks. Which must start with a silent ㅇ(ng), for example the character ㅣ(i). So following the rule of a syllable block needing to start with a consonant you can't have a single ㅣ since it's a vowel, so you need to use ㅇ as a placeholder, thus creating ㅇㅣ(i).
Now if you want to create a word, like "child". You can put together the character ㅏ(a) and ㅣ(i). Since you can't have two vowels in the same block, we must use two blocks to create the word. This gives us ㅇㅏㅇㅣ (a-i).
The vowels consist entirely of horizontal and vertical lines, with a dash or double dash off to the left, right, top, or bottom. It's a very simple alphabet and an extremely interesting language. If anyone want's to learn more, feel free to checkout the Wiki page on Hangul for the full set of vowels, consonants, and double consonants. It's often said you can learn the Hangul alphabet in 90 minutes. If you want a solid intro course to Hangul, checkout this video https://www.youtube.com/watch?v=s5aobqyEaMQ
I made it as a side project :
And i am writing a guide about what i learned :
I had an older version but wasn't using reactive. Definitely, this looks promising.
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.
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.
How is that tendonitis?
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.
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. Later, I found it again on a code golfing website.
I thought it would be fun to learn as the language only had 8 commands! I learned it and wrote a tutorial on my native language for my best friend so that we could have some fun together with it :D
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.
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'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.
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."
Sneak peek of the code: https://twitter.com/daniel_c0deb0t/status/124224838155819008...
Regardless, my goal was to learn some SIMD and Rust (first time for both), so I did not read many background papers.
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.