HN user

thosakwe

1,024 karma

Software engineer in the SF Bay Area.

Bootstrapping a micro-SaaS business.

Twitter: @tobebuilds Blog: https://tobebuilds.com

Posts39
Comments342
View on HN
news.ycombinator.com 3y ago

Ask HN: Which tech newsletters are you reading?

thosakwe
3pts4
thosakwe.com 6y ago

Writing Your Second Operating System

thosakwe
2pts0
thosakwe.com 6y ago

Contribute, or Die: An Open Source Mantra

thosakwe
1pts0
news.ycombinator.com 6y ago

Ask HN: C/C++ AST generation tools?

thosakwe
1pts0
news.ycombinator.com 6y ago

Ask HN: Best design course(s) for people who already know programming?

thosakwe
1pts2
thosakwe.com 6y ago

Open Redirect Vulnerability in Hangouts

thosakwe
1pts0
news.ycombinator.com 6y ago

Ask HN: Is a JIT Necessary for a JavaScript Runtime?

thosakwe
4pts2
github.com 7y ago

The Future of Typelevel Scala

thosakwe
1pts0
thosakwe.com 7y ago

AOT Compilation, Kernel, and Other Dart Hackery

thosakwe
4pts0
angel-dart.dev 7y ago

Show HN: Angel 2 – Dart on the Server

thosakwe
2pts0
github.com 7y ago

Show HN: Complete GraphQL Server Implementation in Dart

thosakwe
2pts0
github.com 7y ago

Show HN: Flutter Plug-In for Vim

thosakwe
2pts0
www.reddit.com 7y ago

Flutter Create (Contest)

thosakwe
3pts0
thosakwe.com 7y ago

Deploying Dart Apps to Linux

thosakwe
2pts0
github.com 7y ago

Show HN: Pitch Parfait – Perfect Pitch Test/Trainer (PWA)

thosakwe
2pts0
chromium.googlesource.com 7y ago

Chromium: [Media Session] Enable API on Desktop (all)

thosakwe
1pts0
www.youtube.com 7y ago

Rebuilding Optimizing Compiler for Dart

thosakwe
2pts0
flutter.thosakwe.com 8y ago

Flutter is not React

thosakwe
27pts32
github.com 8y ago

Show HN: Jael, a Powerful Server-Side Templating Engine for Dart

thosakwe
3pts0
github.com 8y ago

Show HN: T2b – A wicked-powerful text macro language for building binary files

thosakwe
117pts52
angel-dart.gitbook.io 8y ago

Angel's docs have a fresh, new look (Dart language)

thosakwe
1pts0
news.ycombinator.com 8y ago

Ask HN: Why is there no real programming community?

thosakwe
41pts30
github.com 8y ago

Tensorflow Dart port

thosakwe
2pts0
github.com 8y ago

Show HN: Strongly-Typed Parser Combinators for Dart

thosakwe
1pts0
github.com 8y ago

Tensorflow API for Dart

thosakwe
2pts0
thosakwe.com 8y ago

Why Net Neutrality Died

thosakwe
3pts0
thosakwe.github.io 8y ago

Show HN: Pong Remade in Dart

thosakwe
1pts0
thosakwe.com 8y ago

Pong Clone in Dart

thosakwe
1pts0
thosakwe.com 8y ago

Can We Ever Truly Escape Passwords?

thosakwe
1pts0
thosakwe.com 8y ago

JavaScript Fatigue – a Sonnet

thosakwe
6pts2

I remember being 11 or so and installing this homebrew onto my DS...

I had NO IDEA what Linux was at the time, but DSLinux helped me deepen my interest in computer science.

So, thanks to the creators, and everyone who contributed code.

In my humble opinion (I'm still new to Haskell), the best way to do that is to contribute to existing Haskell tooling.

That's something I'm looking into doing myself. It would be great to help improve tools like cabal and the haskell-language-server.

I think that will go a long way towards making Haskell more beginner-friendly, and easier to use in production.

You make a valid point about the added complexity of combining parser combinators with functors and other concepts.

Honestly, if I were writing a compiler, I would go with your approach as well.

Correct, that function doesn't have to parse immediately, but it does have to be aware your monad exists.

This isn't a problem if you're the one writing the function, but if you're using a 3rd party library that doesn't know about your monad, then fmap can be very useful.

Yes, but if it we're talking about parser monads, then usually you can't apply a function directly to a parser's result without either:

1. Being within the same monad. For example, you can `bind` a `Parser a` to a function only if it returns `Parser b`.

2. Performing an actual action and breaking it out of its monad.

For example, if you're using the Parsec library, and you have a `Parser Int`, you can't get to that int without using a function like `parse`, performs the actual action of parsing input text.

With a functor, you can compose a `Parser a` within an `a -> b` function, instead of having to return `Parser b` in your function.

So if you have a `Parser Int`, and you want to turn it into a parser that multiplies its parsed input by 2, you can write `fmap (*2) myParser`, instead of having to write `myParser >>= \a -> return (a * 2)`.

Parsers being functors means it's easier to compose them with other things, without having to actually perform the parse until you need to.

I learned Haskell this year.

After reading this article, the conclusion I drew was, "Cool, so I can `fmap` over my parser now and transform what I parse using functions."

To answer your other questions: I'm not sure it means much for the code that does the actual parsing, nor how you specify the grammar's rules, it's more about being able to transform the output using functions.

If your static analyzer is a function, you could now write `fmap staticAnalyzer myParser`.

Another reason is that imperative languages have a lot of business inertia around them. It's expensive to rewrite existing code or switch to a new language, and most businesses can't justify this cost.

I love functional programming, but I doubt most companies that sell CRUD apps care about it.

Tree Shaking 5 years ago

I wonder why tree-shaking wasn't always the default for, say, JS bundlers. If a compiler/analyzer knows what the entry point of a program is, as well as any symbols it exports to the outside world, isn't it relatively simple to figure out what's not being used?

I could be misunderstanding something.

Thanks for the sources. I can concede that most people do not support a reduced or lower-funded police presence.

As for the second part: someone simply choosing to be a police officer doesn't mean they should be demonized. Complying with the "blue wall of silence" by refusing to take an active stand against police misconduct, however, I believe warrants public backlash. The thing is, far too many officers are content to not say anything. And that is a large part of why they have seen more backlash recently.

I am not an activist, and this is not a manifesto. I don't understand why you brought that up.

Anyways:

The fact that most modern countries have police is not evidence that police departments are necessary.

In addition, the article is about the American police, which are notorious for their history of racial profiling, cover-ups, and numbers of civilian shooting deaths every year. Does most modern countries having police mean this is justified behavior?

If you could, please provide a link to a survey or study indicating that people who live in "high-crime" areas want more police.

And even if they did, that doesn't change the reason for the widespread backlash against police in the United States. It's not simply people "demonizing" a profession (which again, people choose to work in).

Police are a necessary part of modern civilization. Full stop.

Are you sure? Lots of causes for crime (i.e. poverty) can't be solved by arresting or shooting people. I am convinced that part of the reason police reform is so difficult in the United States is that most people have never questioned neither the history of American policing (which started as slave patrols in many states), nor the necessity for heavily-armed police at all.

If they have no repercussions for bad actions, then implement them.

This is not so easy, when both of the parties with political control in the U.S. receive donations from the prison industry...

EDIT: Lastly, in reference to your original point, the argument that police officers are being simply "demonized" is missing the bigger picture. Police aren't individual actors - they protect each other, even when they have crossed a line. And it's all by choice.

I'm busy learning art. All of the things I want to make (mostly games) will require good art, so this is as good an opportunity as ever to focus on that.

OAuth 3 6 years ago

Yeah... This is the same sort of thing you see with, say, ActivityPub, that makes it a massive pain, if not totally impossible to implement it in a statically-typed language.

Blender 2.83 LTS 6 years ago

I never got the hang of Blender in my previous attempts, but I started again with 2.8 in 2019, and the interface made a world of difference. In the past 8 months, I've gone from literally zero knowledge of box modeling to being able to create assets for indie games. I haven't seen any issues with the manual. Actually, combined with the official YouTube tutorials, I've found it extremely easy to find the answers to my questions.

One important thing you should also consider isn't just the fact that the community mostly stays together, but instead also that there's something to be said about who leaves, and which voices are subsequently never heard again.

Many of my friends who left this site did so because of how alienating these threads can be to people not represented in this community. I think that's been overlooked.

Hit the nail on the head.

This site is incapable of having nuanced conversations about this, because opinions that the loudest voices disagree with are downvoted + flagged into oblivion. This is significant when talking about diversity, because it means minority voices are silenced, and without those voices, such a conversation is meaningless.

For example, look at the comments thread whenever "James Damore," "cancel culture," or "affirmative action" comes up. That should be proof alone that HN is never going to have an actual impactful conversation about this... Ever.

I'd prefer if the mods just banned these discussions forever, because it's exhausting, and forever doomed to end up as a "diversity is bad" conversation.

HNers don't seem to get it, but the average, non tech-savvy really doesn't care whether an app is native or not. It just doesn't really matter, unless of course you're doing something performance-intensive.

But most people are probably not saying "ugh, Slack is made with Electron, I should completely avoid it."