9diov | 2 years ago | on: Dart 3.1 and a retrospective on functional style programming in Dart
9diov's comments
9diov | 2 years ago | on: Dart 3.1 and a retrospective on functional style programming in Dart
9diov | 6 years ago | on: Ask HN: How to rediscover the joy of programming?
The paper also discusses that you can separate a program into
1. state (data that changes over time)
2. behavior (computational logic)
In order to reduce the accidental complexity, you can use functional programming (which is purely behavior, devoid of complexity due to state mutation) for the behavior part. For the state part, you can use a relational database to manage it in a more systematic manner. They call it functional-relational approach to software design.
If you do game development, you likely heard of ECS (entity-component-system) and data oriented programming which in a way promotes this approach to software design.
9diov | 6 years ago | on: Ask HN: What has your work taught you that other people don't realize?
9diov | 6 years ago | on: Google to Acquire Looker
- Its use of LookML provides a steep learning curve, yet provides a maintainable and reusable data modeling
- Looker's drill-down ability is decently powerful and easy to use once you are familiar with LookML.
- Looker does not have its own storage layer but instead relies on customer's data warehouses
- Looker, in essence, is a SQL query builder engine that converts business users' drag-and-drop inputs into SQL queries.
- Looker provides highly flexible and sophisticated access control and permission management, sacrificing simplicity for power.
- Looker has limited data preparation capabilities compared to other tools, delegating this task to its partners to provide these capabilities.
9diov | 7 years ago | on: DigitalOcean launches its container service
9diov | 7 years ago | on: DigitalOcean launches its container service
9diov | 7 years ago | on: Ask HN: What discontinued company/product do you wish was still around?
9diov | 7 years ago | on: Ask HN: How do you organize/track your personal goals?
- Mission: This could be specific like "bring humans to Mars" or it could be vague like "accelerate space exploration".
- Strategy: This should be the principles and methods used to implement the mission. Example: "Starting up a private company that works on rocket technology. Sell electric cars on the side to make money."
- Roadmap: This should be actionable, measurable and time-based such as "build a reusable rocket by 2016"
9diov | 8 years ago | on: Why Choose Vue.js
9diov | 9 years ago | on: Programs that have saved me 100+ hours
9diov | 9 years ago | on: Vim Anti-Patterns
Any extraneous cognitive load just takes focus away from what I'm actually meant to be doing.
And Vim is the tool to do just that. It saves your cognitive load spent to edit text so you have more for thinking.9diov | 11 years ago | on: Vim After 11 Years (2013)
The major feature is that it can install plugins in parallel. I've switched from vundle to it and have been quite happy.
9diov | 11 years ago | on: Emotional Intelligence is Overrated
9diov | 12 years ago | on: TextTeaser – An automatic summarization algorithm
9diov | 12 years ago | on: The Best Programmer in the World is the One Having the Most Fun
The best programmer I know in person agonizes over his approaches until it satisfies his high level of standard. He is a professional, not an amateur who does his work for fun. Does he have fun when he works? Yes, sometimes, but not all the time.
9diov | 12 years ago | on: CSS Zen Garden relaunched
9diov | 13 years ago | on: How I Failed, Failed, and Finally Succeeded at Learning How to Code
Think of it as acquiring an addiction rather than "learning" something. Look for the most addictive component activity the subject involves, that can be repeated with minor variations and increasing complexity as rapidly as you can go.
In math for example, this is graded homework problems of increasing levels of difficulty. For programming, it might be little coding problems. For people management, it is running effective meetings.
No individual instance should take more than an hour on average, for a meaningful "hit."
Now do this activity repeatedly. "Learning" is merely a supporting activity required to keep the hits coming. You'll find that you are endlessly resourceful while pursuing the next hit, just like crack addicts can be quite clever in finding money to buy the next hit.
Some people are serial addicts and can learn one thing after another, learning many things very quickly. Others get addicted to just one thing. Others struggle with even one thing. For the last category, the problem is often patience until the first hit. Once you have your first hit, the addiction begins.
9diov | 13 years ago | on: Forget self improvement
What I want to say is that loving something is hard work and usually the initial period is the hardest. If you don't grind your teeth to overcome this, you will never find what you love.
9diov | 13 years ago | on: Vim clutch
> The Visitor pattern is really about approximating the functional style within an OOP language (source: https://craftinginterpreters.com/representing-code.html)
The expression problem is one of those "mathematical duality" or yin-yang thing in software design that are less well-known for some reason. People keep pointlessly arguing in favor of one or another without knowing this duality.
Another favorite of mine is SQL vs NoSQL which Erik Meijer mathematically proved to be dual of each other using category theory (https://queue.acm.org/detail.cfm?id=1961297).