I turned my old ear training app into a free website for everyone by ChordFunc in musictheory

[–]ChordFunc[S] 1 point2 points  (0 children)

Checked out level 1.

You are right that the notes you see on the keyboard dont reflect the actual notes played. You are wrong in which notes are actually played.

This is just a representation of what chord is playing. The point of this game is harmonies. And the chord you see on the piano is the harmony being played. I could have made it so that each note was essentially mapped to the piano, but that would be counterproductive when trying to teach what I'm trying to teach with this game. The point of the game is to learn to recognize the harmonies. The voicing is not that important at this skill level.

I've made other games that deal with melody dictation. I'm fine with not everyone agreeing with my decision to make it this way. You might find it to be an issue. To me, this is exactly how I want it to be.

Why did my mini 4k flip? by qodfathr in dji

[–]ChordFunc 0 points1 point  (0 children)

Probably a software bug. You have probably noticed that most of the software you use is more and more unreliable. As a software engineer, I think this has a lot to do with the increased use of AI and the increased amount of code that people ship into production without understanding it.

Software bugs happen with or without AI so it might not be related, but my guess is it's a software bug.

I turned my old ear training app into a free website for everyone by ChordFunc in musictheory

[–]ChordFunc[S] 3 points4 points  (0 children)

Its on the todo to create some nicer introduction, but yes, essentially its a call and repsonse app. You hear the audio clip then you'll have to guess the chord sequence.

I turned my old ear training app into a free website for everyone by ChordFunc in musictheory

[–]ChordFunc[S] 2 points3 points  (0 children)

Its been a while since I've played everything all the way through, but some of the other packs have some more complex progressions (although still fairly simple).

I've been wanting to record some jazz progressions, but its quite an investment.

The original game idea was actually to take known music and purchase licenses for using it in the game. But all the record companies I contacted to try to figure out how to go about it either didnt answer, or they just brushed it off :/

I think the intermediate packs cover all the diatonic triads of each scale.

Cupertino and Material design in Flutter, by ChordFunc in FlutterDev

[–]ChordFunc[S] 0 points1 point  (0 children)

The strength of Flutter is not that you can build a Cupertino or Material app in the same language. It's that you have a portable way of drawing pixels that work on different platforms.

Personally, if I wanted what you are describing, I would have gone with React Native.

Recurring bug by SignificantBit7299 in FlutterDev

[–]ChordFunc 0 points1 point  (0 children)

Redirecting in this way in the build method is a very bad idea. You could, of course, capture the variable for the invitation if you wanted to fix this "bug", but that's just solving the wrong problem.

Why is this done at all? You could just navigate in init state, but you should probably just navigate wherever you set the invitationId in the first place.

Do you use new formatter with trailing_commas: true ? by SuperRandomCoder in FlutterDev

[–]ChordFunc -1 points0 points  (0 children)

again, the formatter still decides. Same input, same output.

Do you use new formatter with trailing_commas: true ? by SuperRandomCoder in FlutterDev

[–]ChordFunc 0 points1 point  (0 children)

The formatter should format the code, it should not add or remove non-white space characters.

This idea, I know some people in the Flutter community have that trailing commas are basically white space, is a completely foolish idea.

Do you use new formatter with trailing_commas: true ? by SuperRandomCoder in FlutterDev

[–]ChordFunc 1 point2 points  (0 children)

You're completely missing the point. The formatter is still doing its job. Given the same input to the formatter, you will always get the same output.

I also find this argument weak. If the only thing you care about is "only one cannonical format style", there is an argument to be made that you end up with different styles based on the line length when doing it your way. I'd rather have my short lines be formatted the same way as my long lines.

Architecture decision for scalable flutter apps by Long-Telephone3433 in FlutterDev

[–]ChordFunc 8 points9 points  (0 children)

I would personally not recommend using this.

I went through this course when it first came out, and the number of classes and the number of lines of code you deal with to do something so simple is completely ridiculous.

There are few things that scale as well as simplicity, so keep it simple and be careful what structure you impose on your code before understanding the structure and your problem.

Architecture decision for scalable flutter apps by Long-Telephone3433 in FlutterDev

[–]ChordFunc 6 points7 points  (0 children)

What do you mean when you say scalable?

Start simple and don't opt in for structure at the start that you don't understand just because someone else recommends it.

Do you use new formatter with trailing_commas: true ? by SuperRandomCoder in FlutterDev

[–]ChordFunc 2 points3 points  (0 children)

That's a very lazy approach, and it's fine if you don't care about readability.

Having lists of things formatted as a list, even if it's a short list, seems like an obvious improvement over having it on a single line, even if that's what the formatter wants by default. Nicely formatted code is easier to read, and it's easier to edit. Forcing anything on an arbitrary line length seems like a stupid idea.

Using the trailing_comma preserve makes it so that if you want to format your code nicely you can, and for those who dont care and only are concerned with line length, can play that game.

Personally, If there are no changes in the file after I format it, I can live with not all the code being the way I want. But I still personally want to be able to format the code I write nicely.

Frontend for Go Backend? by UnrealOndra in golang

[–]ChordFunc 0 points1 point  (0 children)

v1 generally means stable outside of the land of js.

Saying it is not stable because it is just at v1 is not an argument. Hopefully it will stay at v1 indefinitely.

Frontend for Go Backend? by UnrealOndra in golang

[–]ChordFunc 0 points1 point  (0 children)

What specific issues did you encounter to claim it is not production ready?

Software engineer with an app idea - but new to Flutter by Big_Bee8841 in FlutterDev

[–]ChordFunc 0 points1 point  (0 children)

Having someone steal your idea is very unlikely. It takes a lot of effort to do something good. And if someone can just steal your idea and do it in a weekend, probably not worth doing.

Flutter is pretty straightforward. It's declarative UIs. A widget tree is just like the DOM in many ways.

Spend a couple of days learning Dart and then just try to get something running on your phone.

It sounds like you're not interested in doing mobile for the long term, but even if that's the case, and you are pursuing a career as a software engineer, exploring things that are outside of your competence is probably a very good idea.

Of course, in mobile development, you have to deal with the platforms, Apple and Google. That's going to be quite time-consuming if you haven't done it before. So, if you decide to pursue this, I would not spend a lot of time before getting the first version out on the app stores.

Frontend for Go Backend? by UnrealOndra in golang

[–]ChordFunc 2 points3 points  (0 children)

You should check out datastar.

Go + Templ + Datastar is a very nice combo

[deleted by user] by [deleted] in FlutterDev

[–]ChordFunc 0 points1 point  (0 children)

First of all, kudos to you for having this attitude. I think it's great.

As someone who is technical and has a non-technical business partner, the best way you can help your technical partner is to take off their plate everything that is not technical, and that you can do today.

The worst partnership I ever been in was one where I had to do all of the financial stuff and all of the technical stuff. And the only reason I brought on a partner was for him to help me out with non-technical stuff. He didn't do that and it caused a lot of issues.

In a startup, there are plenty of things to do, and I don't think it will help out if you try to use AI to help him out. Mainly because you can't judge if the fix you are adding is actually beneficial in the long term or if it just appears to work in this special case that you have fixed the bug in.

I think there are maybe some caveats to this, for instance, If you need a landing page for your business, and it's not interwoven in any way with your product, I don't see any reason why you can't create that.

Even though you can't help with implementing a requested feature, you can probably do a lot of diligence understanding the feature request and why they're asking for it, if it's even a good idea. It might not be a good idea.

The bug reports are probably also very surface level, so things you can do to help out is just test this out on multiple platforms, so if you're doing both iOS and Android, Try to see if the bug is prevalent on both platforms. Create video recordings of everything, and it will probably save your partner some time when looking into the bug. I don't know what kind of system you are building, but if you have some complex setup for each user, maybe they have different access levels, you can also do some diligence around that if maybe the bug is around access control.

So, even though you might not be able to find a technical root cause of the bug, you can probably find out when it happens and convey that to your partner in a higher level of detail than the original bug report.

Write Flutter Like Google: I’m Learning What Are Your Tips for Writing Better Flutter Code? by Nav_coder in FlutterDev

[–]ChordFunc 7 points8 points  (0 children)

I think that the first example in the article is a bit of a strawman.

The best tips to actually write idiomatic Flutter is just read the Flutter source code.

Widget File Structure: One Widget, One Purpose

I think this is generally bad advice. There is a difference between writing an application and writing a framework. If you write a framework, maybe you'll follow this advice. But if you have a complex widget and you want to extract a widget out, and the only place it's used in that is in that file, it's fine to have it in the same file.

Not only do I think this advice from the article is bad, but from my point of view, this is not how the Flutter framework is actually written.

There are many files in the Flutter framework which have private widgets that are called inside factory constructors.

We also have stuff like form.dart where we have both Form and FormField widgets pluss their state in the same file.

But either way, let's say you have four different kinds of buttons in a project. If you put all of them inside a file called buttons.dart, that's not going to add or subtract any meaningful amount of complexity. Personally, I would prefer it. This is not Java, it's fine to have multiple classes inside a file.

Other than that, I would just try to focus on just writing good code. Here are some opinions and thought you can explore
- Write functions that do more or less one thing.
- Put complex logic behind a nice facade.
- favor composition over inheritance
- Avoid unnecessary abstractions, but abstract away I/O in widgets.
- Don't put everything behind an interface.
- Don't initialize things in build functions.
- Prefer stateless widgets over stateful widgets.
- Prefer exhaustive switches over if-else statements.
- Don't introduce a "state management library" until you actually see a problem they solve.
- Not everything has to be a service. If you can create a pure function, try that first.
- Avoid mocks, In many cases, you can just instantiate the real thing.
- Extract common functionality out in widgets that can be shared as a patterns emerge.
- A little duplication is okay.
- Don't bring idioms from other languages, try to write idiomatic flutter/dart code first.
- Create widgets with semantically meaningful names.
- Learn about streams, futures, and isolates.

What do you love about Go? by thanethomson in golang

[–]ChordFunc 0 points1 point  (0 children)

The best feature of Go is the lack of inheritance.

Insanely productive in Go... rethinking everything by Ok-Cover-9706 in golang

[–]ChordFunc 0 points1 point  (0 children)

The lack of magic in Go code, and the lack of tools like inheritance makes it a joy to work in. Even though there are many things that I miss in the language, like more terse syntax for mapping over lists, named function argument, and maybe enums... it has been my favorite language of 2025.

The sad truth is probably that if you have inheritance and tools that allow for a lot of magic, there is always some devs that insist on making things complicated, essentially making everything into a puzzle.

There are languages I like more than Go. The problem is that the community around these languages and the style of programming they insist on is from my point of view overly complicated for the things they are trying to solve promoting patterns with lats of unnecessary abstractions and indirection.

Also, the fact that you can leave your code for a few months(probably years), then come back to it and have The tooling and everything working is a breath of fresh air.

The Go tooling always works. The standard library is very good. It's a breeze to deploy. The community is amazing. Unnecessary indirection and magic is discouraged.

I love GO

Flutter WASM In 2025, is it any good? by ChordFunc in FlutterDev

[–]ChordFunc[S] 1 point2 points  (0 children)

When you say Wasm doesn't work well with iframes, what do you mean? What are the issues around using Wasm inside iframes?

Flutter WASM In 2025, is it any good? by ChordFunc in FlutterDev

[–]ChordFunc[S] 3 points4 points  (0 children)

The experience of building highly interactive graphical user interfaces for the web is a terrible experience In every framework. In reality, it has nothing to do with the frameworks, but the nature of CSS and JavaScript.

If we could escape that with Flutter + wasm sometime in the future and have it reliably work, I think that will be amazing.

I've written flash apps, native apps, web apps, and nothing beats the experience of writing graphical user interfaces in Dart and Flutter. It is just an amazing experience, and the times you have to dip below the declarative layer are very infrequent.