Posts

Showing posts with the label code

ChatGPT Codex

Regarding: ChatGPT's recent release of Codex I can see so many ways in which this can go right and wrong and in between. Ways it can go right: Vibe Coding : Developers are starting to learn how to incorporate and use LLM's with coding software. This whole "vibe coding" movement is another tool, not a replacement to writing code. There are far too many edge cases and problems with Vibe Coding that warrants a skilled developer to be able to troubleshoot issues and offer a creative hand where LLM's cannot provide. Developer Workflow : I've seen where folks are starting to learn how to spoon feed the LLM a prompt about a specific context, let it work on that context, review the changes, then work on the next context as completion runs along. This isn't new. I've seen devs plan out their functions before filling the body of them with the operations they should consume. This results in more efficient development and hence the reason why TDD ( Test Drive...

The Messed up Part About AI Nobody's Talking About

The messed up part about AI that nobody's talking about is how it slows down senior engineers. While it may be great at "Hello world" and simple algorithms, many times, senior engineers are way past this, and don't really need help building boiler plate code because it just doesn't scale. I find myself more often than not, fighting with AI in some cases rather than using it to write stuff for me that I need done quickly. From custom algorithms or complex situations where scale, multiple contexts or hidden details about how computers and coding works that you don't gain from the RactJS tutorials, even design patterns that are gained from learning other languages cannot be captured and implemented by AI just yet (learn how C and C++ works and then tell me you know how to code properly in JavaScript) to its inability to write in Angular vs ReactJS or even use a different language other than Python for a product solution. We all know JavaScript and Python are not...

Scope Creep

Scope creep: When the scope of the project exceeds the original instructions and additional features get added in the sprint. Be mindful of this because its very common in various places. Ways to protect yourself: Document every meeting. Don't just take notes, identify action items, who's responsible for them and a summary of what's expected. I usually email them to the team as well, so I have a paper trail of the discussion to be referred later. Identify the full scope to the best of your ability. What will it take to get started? What will it take to completion? Are there any blockers? Are there any dependencies? Where are the blind spots in the project? Stick to the immediate task of the sprint. I have historically been really bad about this because I want to be able to do everything including deliver the moon! However, when assigned a task for a sprint, its important to stick to the ask at hand to avoid having added responsibility mid-sprint and then being ...

@tslint: Type trivally inferred from a literal

Dear TypeScript... My thoughts on this directive about no-inferrable-types has made me realize something: it doesn't serve me and I'm going to show why: export class TransactionsListComponent { addOnBlur = true; readonly separatorKeysCodes = [ENTER, COMMA] as const; #transactions: Transactions; @Input() get transactions(): Transactions { return this.#transactions; } set transactions(value: Transactions) { this.#transactions = value; this.refresh(); } @Output() transactionsChange = new EventEmitter<Transactions>(); @Input() showFilters: boolean; @Input() filters: TransactionFilter; @Output() filtersChange = new EventEmitter<TransactionFilter>(); @Input() showPaginate: boolean; @Input() txShow?: TransactionShowHeaders; @Input() editable: boolean; @Input() showHeader: boolean; @Input() showTags: boolean; currentlyEditing: EditPlaceholder; txns: Transactions; accou...

Yaba-2.0 Architecture

Image
Yaba-2.0 is still in the works. This will come with an overhaul of the platform. I will still maintain yaba.markizano.net as a public interface to the app for you to be able to "try it before you buy it". However, I am going to expand on how the architecture will lay out with regards to a self-managed vs a hosted version of this application. Ideas keep coming on how I can manage this and I am so excited to share my designs with you and get your feedback on the direction being taken. This is still something we can construct together and build a team behind the project if it becomes useful. Yaba Recap If you're completely new to the project, welcome! Yaba is Yet Another Budgeting App. I got sick and tired of downloading CSV files from all my banks and managing them in complex Excel books just to be able to visualize my data around my spending so I can budget more efficiently. I built Yaba as a means of organizing my transactions in a way that's different than m...

Circular Reference

Intro I just recently ran into something that had me stumbled for quite a while before it smacked me in the face like a ton of bricks. It'd be better to explain with examples, so excuse me if you're reading this and you're surprised to see some gobblygok and you're just looking for techno-gobblygok to look at, okay? For those of you familiar with software languages such as C/C++, Java, and Basic, you may be familiar with this concept of passing variables by reference and by value. For those of you that don't know, this will be good exposure, and an awesome lesson to learn at an early stage to prevent hours of FaceDesking . :P What's a Reference? In many languages, you pass by reference by using the ampersand (&) operator. Like so: function myAdd(&$var, $amount = 0){ $var += $amount; } $toAdd = 5; $amount = 3; var_dump(myAdd($toAdd, $amount)); Normally when you pass a variable in a function, you are passing the value of that va...