2,841 karma · joined January 25, 2016
I am happy not knowing the truth if my hunch proves right.
Or that FP purists don't know how to actually build useful things? Trololol it took Haskell until the mid 90s to figure out how to do Hello World with IO
To be honest FP is a moving target but I see it as one of the mainstream frontiers of PLT crossing over into industry.
I can accept that to some, exploring FP is not a good for their business requirements today but if companies didn't keep pushing the boat with language adoption, we'd still be stuck writing fortran, cobol or even assembly.
Once upon a time lexical scoping was scoffed at as being quaint and infeasible.
Ruby and Python were also once quaint languages.
Java added lambdas in Java 8.
Rust uses HM type inference.
So what was their point? That FP people spend too much time thinking and don't know how to ship? In which case - I'm grateful that there are people out there treading alternative paths in the space of ways to write code in search for improvement.
In any case their example was pretty spurious, anyone who's written real code in production knows IO boundaries quickly descend into a mess of exception handling because things fail and that's when patterns like railway oriented programming assist developers in containing that complexity
I'm back to writing imperative after years of functional. I think it is a very pragmatic choice today to go with an imperative language but I find class-oriented programming to be backwards and I think functional code will yield something more robust and maintainable given how IO and failure are treated explicitly. I'm not quite sure where the balance tips between move fast but ship something unmaintainable vs moving slower but having something more robust and maintainable.
Programming in a pure language is quite radical, it's a full paradigm shift so it feels cumbersome especially if you've invested 10+ years in doing something different. I'd liken it to trying to play table tennis with your off hand in terms of discomfort. There are plenty of impure functional languages around - OCaml, Scala, Clojure, Elixir.... And Javascript (!?!?)
FP is relatively new as a discipline and still comparatively untrodden. What if equal amounts of investment occured in FP - maybe an equivalent of that ease of led.turn_on will surface.
And tbh it probably just looks like a couple of bits - one for each LED and a centralised event loop. Which so happens to have been a pattern which works quite nicely in FP but emerged in industry to build some of the most foundational things we rely on...
A pixel array can be trivially modelled as a pure datastructure and then you can use the whole corpus of transformations which are the bread and butter of FP.
A screen is as IO as it comes for the most average consumers of a screen, we aren't peeking into its internals.
And for me, that's the point of FP - it's not that IO is to be avoided, it's about finding ways of separating your IO from the core logic. I loosely see the monad (as used in industry) as a formalised and more generic "functional core imperative shell"
Now when it comes to pure FP languages, they keep you honest and guide you along this paradigm. That said, it's perfectly possible to write very impure imperative Haskell - I've seen it with my own eyes in some of the biggest proprietary Haskell codebases
But imperative languages don't generally help you in the same way, if you want to do functional core imperative shell, you need a tonne of discipline and a predefined team consensus to commit to this
Spending hours on the road alone in your own head knowing you've inflicted extra suffering on yourself through the personal choices of drinking gives you lots of time to reflect on your priorities.
For me at least, preparing for some kind of sporting competition makes it really easy for me to fix any drinking or eating habits as it becomes so obvious how much of a hindrance those activies are on my progress.
All this did was make it more annoying for criminals and maybe make it easier to catch dumb criminals - who would have been caught by other means anyway.
By the time I was 18 I had that reckless abandon and confidence that only an 18 year old can have - that feeling of invincibility and that belief that anything is possible.
Fast forward 10 years later after years of working super hard and not doing much exercise and accruing postural issues, I went skiing and felt very vulnerable and mortal - a stark shift from the me of 10 years prior!
When I hit my 30s I made reacquiring that fitness again and started exercising super hard. Like 10-15 hours a week of intense physical training. To my surprise, I actually started to feel almost like an 18 year old again. I couldn't believe my subconscious outlook on life could be so malleable.
What does this have to do with hitting kids and toughness? I've digressed a bit - I guess having some of that stoic grit is worth developing in children but I am undecided whether hitting children builds it in them.
Maybe tough is a dirty word. Not tough in the toxic masculine sense but tough as in resilient.
Being physically tough can often build a self confidence and mental strength that many people underestimate.
You'll never get me to agree that people don't need to be tough. Just as you should wear a seatbelt even if you're the safest driver in the world, you should be tough because you never know when adversity may come. Just like how you can't control for drivers around you. Maybe in a world only operating self driving cars can we stop wearing seat belts - and yet random failure will still happen. Bad weather, network failure, cosmic ray bitflips take your pick.
Given you are 45, people of your parents' generations came from truly tough times. Plenty of people I know from my parents' generation remember what was like to be truly hungry.
I've seen the UK slowly become more violent and dangerous in my own lifetime.
We're facing increasingly unequal times, geopolitical tensions are high as world powers go for hegemon. We have a displaced workforce - much like the run up to WW1. Climate change may well bring even greater hardship.
Summer lasted all of about 1.5 generations, I hope my children will be tough so that they have the resilience to face whatever the world throws at them and pick themselves up and always move forwards when they navigate the world we leave behind for them.
The other is softer - I am curious how normalising pain may positively benefit a developing child. Could it build toughness? Might my child be more likely to stand up to a bully?
From a self defence perspective, a big part of personal development is overcoming aversion to pain - eg not flinching in boxing/mma.
In any case I think there are alternatives to learning these lessons and disciplining your children and I think in our environment it would do a lot of emotional damage that isn't worth the benefits - hence why I probably won't hit my children.
That said, I find it curious that only one to two generations ago it was fully the norm.
They did their best with the tools and knowledge they had available to them.
Would I hit my kids? Probably not, I can see some value in it, but I think ultimately your parenting style shouldn't deviate too much from their own surroundings - that is what causes more harm IMO.
YMMV
So what does this statement reveal about me?
I have family members who work in compliance. Everything is fair game for surveillance. I know of someone who got fired for accidentally uploading his whatsapp chat history via work email (this is how chat history backup used to work) and they got fired from JPMorgan for having references to drugs.
You can choose not to work for companies like this (indeed I have always fully owned my machine at work) but you're just kidding yourself if you think bigco aren't monitoring everything you do.
I am not a nutritionist but I'd probably choose something akin to blood glucose over calories for food consumption.
If I had to go so simple I'd probably optimise for sugar reduction. And after that carbohydrate reduction.
You'll find you can eat a lot of food and food will be filling if you have a pseudo keto diet. You have to work so much harder to get your calories and fats (when not mixed with sugar) is much more satiating.
Calories are not just calories. That level of reduction is pseudoscience to the point where it's not really science.
It's better than nothing, sure, but hair's breadth.
Food is insanely complex and messy. The body's digestive chemistry is messy - a process of soups of enzymes, acids and bases. Metabolism is messy.
Imagine the difference between chewing a stick of celery, a nut, drinking honey and drinking soda.
Mechanically, the breakdown process of these differ wildly. Celery and nuts will be broken down very roughly. Honey is nice and viscous. Soda is lovely and runny.
Now take those mechanically broken down food items and then pass them through a base bath and an acid bath and you'll unlock x% of compounds ready for metabolysis where x will differ wildly thanks also to the weird and wonderful world of solvation chemistry.
THEN those compounds of varying energy richness will get broken down.
The "calories" of an energy dense nut really aren't the same as a fructose-laden drink
This thread is about how Spotify seemed like magic in the early days. The original iPhone seemed like magic. Netflix seems like magic in how fast it can stream. Similarly, early google and amazon were always fast.
I believe our subconscious values speed as an indication of quality far more than our product owners know how to measure for.
Music is really just a non-verbal language. If you become fluent in the language, you can appreciate music in its textual form just like you can appreciate Shakespeare for its literary value.
To my mind, this is why notational representations still persist, even in the age of media recordings. That higher level of abstraction still carries plenty of value and its compactness (over performance) is convenient to creators and academics who wish to reference them with fast read access.
Cue the Arabic name "Amr"
The thing is with this types of systems that are deeply ingrained in our lives, we create the possibility to make people's live profoundly miserable because of an "edge case"
And for that individual who is many times removed from the reason why their life is being wrecked by software it can be next to impossible to even feed back that their life is a misery, let alone get recourse.
It's not like if you have a large enough sample size you won't discover alpha females in even the human world when it was dominated by physical violence prior to the invention of the gun.
When push comes to shove I wonder whether people who are anti public-schools would welcome this style of government - in a country where people are free to do what they want, people will spend a huge amount of money for their children to get advantage/opportunity.
How do you negate this? Should you negate this?
Skill acquisition for something you don't have a good foundation in is hard. I have the perspective of being very good at a few things and spend the rest of my time learning new things some of which I suck at. I also know people who are in the top 0.0001% at things. Interestingly they find certain adjacent things super easy and other "easy" things very hard.
It's all relative, but getting "pretty good" at something isn't as hard as much people realise in the grand scheme of things - I think the problem is not many people have ever gotten good at one thing: go deep to go broad
Hard is a relative concept - watch a one year old try to walk or a two year old try to climb over obstacles. Yet we take these tasks for granted.
Mandarin is "hard" I'm assured by many people I meet who try to learn it as a second language, and yet almost 2 billion people can speak it...
Take any <skill> that you have zero background experience in and it will feel hard. If don't have the prerequisite coordination, something like belly dancing will completely melt your brain just the same way programming will.
I happened to find programming relatively straightforward (compared to other people) but I spent a lifetime in front of computers and videogames and then studied hard STEM at college.
Just in the same way a gymnast would find snowboarding much easier than your average joe.
Personal development is an individual journey, measure your progress against yourself and approach things without ego and your progress will be so much faster.
Just to add some flavour to this, recently a celebrity on a reality TV show complained that 650 RMB (~100USD) per day isn't even enough money to eat and was lampooned on social media for being out of touch with money.
Meanwhile parents in the school rat race are forking out millions of USD in Beijing to try outmanoeuvre each other. That's how BIG education is in china
Although the prevalence of old housing across the UK suggests (to me at least) that something systematic has changed. The fact that people can have an obsession with tudor, georgian, Victorian style housing tells me that things were built to last in a way that might be less true today.
As you say, the technology to build so high is a recent one, I note the Empire State Building is only 80 years old which is pretty young when compared against Notre Dame for example
Build new housing development
Sell all properties on it with 99 year leases
When 50 years to go on lease conduct on block sale (maybe developer pays)
Demolish and rebuild and restart 99 year lease cycle
This keeps construction industry active on scarce land resource
Keeps buildings fresh with latest materials and engineering principles
Gives property owners an exit on their 99 year lease so household wealth doesn't evaporate
Strategy folds when Singapore is no longer a desirable place to invest/build
I foresee collapsing buildings becoming more and more of an issue for fast erected buildings from the past 50 or so years
Slightly an aside but I believe that is part of the reason why leases in Singapore are often 99 years - because the government doesn't plan for them to last beyond then
As a software engineer I live by the ethos that coupling and dependency is bad, but if you unravel the layers you start to realise much of our life is centralised:
Roads, trains, water, electricity, internet
These are quite consolidated and any of these going down would be very disruptive to our lives. Connected software, ie the internet, is still quite new. Being charitable, are these just growing pains in the journey to building out foundational infrastructure?