emidio
emidio
Emídio Cunha's Blog
340 posts
The finest collection of #GOTO advocacy posts on the Web.
Don't wanna be here? Send us removal request.
emidio · 3 days ago
Text
Tumblr media
Podcastle is now adopting the iOS 26 new design language. It took a couple of hours to figure out the HIG but most of the work was already done when my own guidelines seem to be in line with Apple's new love for Menus.
0 notes
emidio · 29 days ago
Text
Tumblr media
🎉 I’m Open Sourcing Podcastle!
I’m excited to say that I’ve just open-sourced Podcastle, my iOS podcast player, that you can find at: https://apps.apple.com/us/app/podcastle/id6450795970
This being my first open source project, and also still learning Swift (mistakes have been made!), I think it’s really important to contribute something meaningful and simple to the world. So here we go.
🎧 Why I Made Podcastle
I built Podcastle because I wanted something that just… played podcasts. No servers, subscriptions, telemetry, ads, invasive analytics. Just podcasts on a simple interface.
A lot of podcast apps out there are polished, and full of features that this app does not have, and that's OK.
Podcastle is different. It’s a lightweight app that respects your privacy and does what it’s supposed to do — nothing more, nothing less.
Also, not that it matters to anyone these days, but it can be under 2 MB in size.
💾 MIT Licensed and Open for Everyone
Podcastle is released under the MIT License, which means:
You can use the code however you want!
Fork it, remix it, build something new!
Build an Android version!
Even use it in your commercial apps!
Just keep the license notice
I want this to be something people/AI can learn from, build on, or make better.
🧠 I’m Still Learning
I don't code for a living now - I used to: when it was fun! - and this project has been a way for me to keep writing some code. So please don’t expect perfection — but do expect sincerity.
This project has been trying to:
Explore and push SwiftUI
Pick up on the concurrency model of Swift 6
Try to avoid delegates, callbacks, goto statements (you can fake them https://emidiocunha.com/post/101705970335/goto-swift), and singletons
Use both file system storage and Swift Data for our model.
I’m sharing this to:
Learn from the community
Welcome contributions, and maybe get some bugs fixes (I think background downloads don’t work!)
Make something open and respectful
🔗 Check It Out
📂 Source Code: https://github.com/emidiocunha/Podcastle
If you’re into podcasts and privacy, or if you’re learning Swift and want to dig into a real project, take a look. Feel free to star, fork, clone, side load it, break it, improve it, or just say hi 🙌
1 note · View note
emidio · 4 months ago
Text
Programming languages are dead.
As interesting as the debate can be about moving from C to Rust, or how the hell is Python the official language of AI, what I think the question should be is whether any of that matters now that we can instruct the computer to write code, any type of code.
Tumblr media
The future programmer, reviewing and testing code written by itself. (image generated by Grok)
I started to ask various LLMs to write assembly code and to optimize it to specific hardware, and they seem to cope really well, to the point where I'm thinking about the idea that we should just kill all languages and stick with assembly, now that the majority of hurdles are removed:
Assembly is hard to learn, and time consuming to write - That's ok because we're not typing it all by hand.
Assembly is a low level language, difficult to read, without abstractions - True but that was only valid when people were writing and most importantly, debugging that code. We now live in the most abstract of concepts, human language!
Assembly implementations can be quite fast and the benefits can be even greater if we can further tune it by hand to be even faster.
Also, why say that Assembly is great when most of the training has been done on a multitude of languages? Why can't the binary code of all software be used to train it, or in other words, since the output of all different languages is often assembly code, and if that is fed in to training data, can't it be even better than using GitHub repos?
Then, if AGI is something that happens, then why won't the machine invent a new and better programming language that all AI's will use to write code, which in turn, will end up as assembly opcodes anyway.
Why bother with computer languages, and the so called stacks, if the new programmer is a manager first, a quality control technician second, and a production sysadmin in total.
In sum, I question if the time where we invent new programming languages has indeed come to an end?
0 notes
emidio · 6 months ago
Text
Tumblr media
2025 !!
Resolutions? Nah. Wishes? Not really. Objectives? The same!
Family first.
Fly more.
Ride more MTB. (I just changed the back tire, things are looking good!)
Work / Life separation complete. I have a new work laptop, I need to solve the phone issue.
Sell, baby sell!
0 notes
emidio · 1 year ago
Text
print is the only debugger you'll ever need
Tumblr media
Regardless of your fancy IDE, trending language, and hipster frameworks, there's nothing like leaving breadcrumbs along your code to confirm or deny a given problem, and by that I mean using print.
What if you only want it during debug builds, where you can watch it on the console, but maybe you need to keep a log file in production code? Just overwrite print. Here's my latest incarnation of print in Swift:
public func print(_ items: Any..., separator: String = " ", terminator: String = "\n") {     let output = items.map { "\($0)" }.joined(separator: separator)     #if DEBUG         Swift.print(output, terminator: terminator)     #endif     let dateFormatter = DateFormatter()     dateFormatter.dateFormat = "HH:mm:ss.SSS"     dateFormatter.timeZone = .current     let currentDateTimeString = dateFormatter.string(from: Date())     DispatchQueue.main.async {         Shared.log.append("\(currentDateTimeString) \(output)")     } }
0 notes
emidio · 1 year ago
Text
Sherlocked!
Sherlocked, I tell you! It's not the second or third time I had a feature that I considered different, sherlocked by Apple.
I had just launched my own impression of a podcast app called Podcastle which featured exactly the ability to locally transcribe a podcast and then allow you to search, skip, and share that transcript.
It's ok though, it validates my idea! No offence taken.
0 notes
emidio · 1 year ago
Text
The case for native, offline capable apps
Exhibit #1 - Ever had the experience of trying to watch a movie or some tv show and it's no longe available on your streaming platform?
Exhibit #2 - How about that web app that went out of business and you lost all access and functionality. e.g. Google Reader just to point an innocent and harmless example?
Exhibit #3 - Are you ok when you try to access some service it because of reasons, it’s down?
I'm sure you either had one, two or all of these experiences happening to you.
This is just the current reality of computing in general, it's either streaming and subscription based, or the common Software as a Service modality. Either way, you have the freedom of choice, the freedom of using whatever device you want, but also the complete lack of control over what happens if for some reason, your provider ceases to exist, or, if any of the conditions of the current contract change.
There is a movement about combating this sort of thing, starting only on some intellectual fringe - AKA Geeks - that actually care about such things.
Disclosure: being a 47 old computer geek, you know where I'm coming. I was born with cassete tapes FFS. But even when the internet started to appear, it was just a way to ease the distribution of software that you ran and managed, on your own computer.
Skip a couple of decades later, yada, yada, yada, SaaS is king. You rent software, you rent music, you rent movies. There's no digital owning anymore. Anything you do is just within the bounds of a monthly subscription fee and while a lot of this makes sense from a ease of use and sometimes, even economically, it hides the truth about our lost of owning anything.
Even the phone or computer we use today is limited in what it can do, just look at iPads, you can only install whatever goes through the store, as we have all been deemed as incompetent to manage what runs on our own hardware.
You might guess where this is going to now... I'm in favor of apps, apps that we can freely install and keep to use, regardless of a company's business goes down, of if the internet has been hacked again and there's a fucking DoS on your service.
The internet was designed to be resilient to attacks and still keep going, but what you do have today is that all aspects of your life are in fact tied to specific services that rely on the internet working, and the company that owns your app paying the data center bills.
Thing is, we are now in the passenger seat.
If any of your service is not like an E-mail app,(not your Gmail), and by this I mean you have an IMAP client, you have your email with you. you can use it offline, and you can even change the servers it talks to, in case you move from provider.
See the diference? It uses the internet, but it is resilient to downtime, you own the app, you can use it whenever you want, and you're not tied to a single provider.
Thoughts? I'm going to be thinking about this in 2024.
0 notes
emidio · 2 years ago
Text
First, a rant:
Sometimes I think SwiftUI is the greatest thing ever, but in fact, SwiftUI is a piece of crap!
Swift and SwiftUI compiles slower, it bogs down the computer even if you have the M class processor, all with no noticeable executable speedup.
Why did they do this?
Was it because Obj-C and Storyboard were old?
Maybe it didn't have latest syntactic sugar from functional languages or conformed to the latest and greatest idiomatic flavour that young fashionistas push in order to work for said tech companies, I don't know, but it was a lot more deterministic than this!
youtube
Here we are now, 32 years after this legendary Bill Gates VB demo on Windows 3.1 no less!
Welcome to designing apps with declarative syntax, in text, where suddenly we find tons of hard stuff turned easy, and some impossibly easy things hard!
Now that my introduction is out of the way, I’ll state the bug I’ve been hunting for the last couple of months (I programmer’s time)!
In short, my app has a permanent .sheet (like Maps).
Any time this App was called in the background for an .appRefresh for instance, the sheet would be dismissed, even though the condition for that to happen was never, ever met.
I knew it had to do with background processing, because it would go away when I turned it off, and so after a long while, I tried to run the app with the "Launch due to a background fetch event" setting in the Schema menu.
With that I found out that the sheet was being executed, as if it was being shown when the app is active, but it never did because the app might not have a proper view hierarchy set up... The parent view however, was not executed (rightly so) and I think this in fact is a bug.
What did I do? When the app goes into the background I dismiss the .sheet, and when it comes back up, I make it appear again. (disabling animations in order to cause a less visual impact!)
The app in question is now live on the App Store, and it's called Podcastle.
0 notes
emidio · 2 years ago
Text
Oh, you caught in my latest flight, FR24!
This was the anual renewal of my PPL-H license. LPJB to LPCS for circuit work, mostly 90º autos, hover autos, hydraulic failure, and stuck pedal. On the way back also landing at the heliport with governor off. (As depicted on the video)
Particularly challenging day with a 20 knots wind from the west at ground, but 40/50 knots at altitude, which allowed for a hover at 1000' with just 15" of manifold... lovely!
0 notes
emidio · 2 years ago
Text
youtube
Hello and welcome to another #goto post!
This time you can check some of the source code for Windows Task Manager, especially around minute 16. Dave's channel is definitely one to subscribe!
The usage is a classic 'goto cleanup' to avoid further logic and nesting as it should be.
The author is cautious to point out that these days he uses another method, maybe to avoid the anti-goto mob in the comments section.
An interesting fact: He’s browsing the code on a Mac… which brings me to a specific complaint: why the fuck does the OS-X's “Task manager” take forever to display when it launches? It’s gotten worse with every release and I've checked with M2 brand new laptops and it really is slow!
0 notes
emidio · 2 years ago
Text
youtube
Some 360 video from our last flight from Comporta to Lisbon
1 note · View note
emidio · 2 years ago
Text
Leaked WWDC keynote highlights:
Apple is famous for dropping products and replacing it with something new and great. They will kill Siri and come up with something akin to chatGPT, filled with an API for iOS Apps to embrace and extend.
Let OS-X run on iPads. Call it boot camp again, but this time along with OS-X touch capability and a refreshed UI!
A my ass Apple Silicon Mac Pro. By that I mean modular, with the ability to pop an RTX in it or even M baby boards. 
Open up iOS to side load and run other app stores and or browser engines.
Hint iOS for foldable devices, and then introducing an foldable iPhone/iPad Mini.
Another thing: A kick ass Oculus clone with an amazing App Store and a couple of killer apps. It looks like the Matrix!
This is however, not the WWDC 2023, but a future one.
0 notes
emidio · 2 years ago
Text
On “AI”, and the first wave of products.
It occurred to me fairly quickly when using some of these new generative AI products, such as DALL.E, a feeling of deja-vu. It seemed that, however impressive these things are, that I already experienced this somewhere else, maybe all my life! 
If you know anything about sleep, its stages and especially the REM part, you know that we can pull some really amazing shit out of things that maybe happened that day, and throughout your life... dreaming is like a generative process, acting on the so called learnings, weaving schemas and building long term memories by this process. I highly recommend Huberman’s Podcast episode with Dr. Gina Poe to get a better understanding of sleep and maybe reach the same conclusion as I did.
Dreaming feels like using these products, or maybe it’s the other way around, these products tap into the dreaming part of our brains, mimicking the greatest source of innovation we possess.
Has AI started by building the cleaning process that we use in our brains? Is this why the General Artificial Intelligence, or in other words, the real cognitive part of our brain is still so far off? 
My inclination about this all is that it seems like the Internet is about to become a giant ML database, not to be used by people, OR designed to be SEO bait for Google, but as training data or storage of facts, for these systems. 
Siri, Google assistant, and even Alexa seem to be a first draft that had no brains (maybe just prompt engineering), and something else is about to take their place.
We’ll ask them to handle our email, search for THE one thing we want, based on our criteria, or just get a quick answer without formally using a search engine, parsing all bullshit, ads, and all the things we know about the Web today. 
That’s the reflection I’ll be pursuing in the coming months.
PS: This post was not assisted in any way by a chat bot.
#AI
0 notes
emidio · 2 years ago
Photo
Tumblr media
0 notes
emidio · 2 years ago
Photo
Tumblr media
Primeiro voo do ano. Bom voltar a ver todos os amigos do ar! (em Aeródromo Municipal de Cascais) https://www.instagram.com/p/CnXrn1HjBYG/?igshid=NGJjMDIxMWI=
0 notes
emidio · 2 years ago
Text
New year’s resolutions on eliminating distractions and other types of bullshit
Tumblr media
Image: My new year’s eve house in Alsace - France
Things to improve in 2023:
Stop using Twitter. In spite my best efforts, the timeline is tainted by Musk’s bullshit. It is a distraction to him, and it’s getting contagious! It’s Trump doom scrolling all over again. Going back to RSS for news!
Avoid the short video black hole of Youtube, Instagram, etc. These things are all the same now and pose a big distraction. Unfortunately, this crap is impossible to turn off and requires attention and discipline. I still very much like Youtube for normal 8-10 minute videos on my subjects of interest - Keep the Premium subscription to avoid all those nasty ads. I think Instagram is the social network for light sharing, of mostly positive things. Will post and check friend’s content, but won't doom scroll.
Improve podcast selection to have at least 140 minutes of quality content per week. All but one of my interests is fulfilled by now, all I have left is to find a good helicopter Podcast.
Consider Netflix and Spotify alternatives. It seems neither is providing the satisfaction they once did. Now that Apple Music is available on Tesla, maybe!
Find more time to fly. In 2022 I have logged about 18 hours of flight time, most of it, recurring training, but I want to make it at least to 50 hours in 2023. 
More app development. I do have an RSS app in the works, probably will launch in the month of January, but will have to keep at it, especially the Helipad app!
No more wasting time with potential business buyers. I am committed with companies and will not support any proposal LBO or other types of deals. It was a fun 2022 with due diligences but war and changing economics changed people’s minds, including mine! I’m not a seller anymore.
Blog more. Blogging is like a mental cleansing process. A lot of it ends up in the Drafts folder because after I write it, it becomes obviously shit, and that is more important and contrasts with all the impulse tweeps/ toots.
Get back into markets. I exited the markets yearly in the year and then right after summer to preserve capital and take on the existing profits. As expected, markets have been correcting/anticipating a shitty 2023. I think there are a couple of factors that might signal a right time to get back in:
Approaching maximum interest rates.
End of war prospect.
You gotta stay relaxed.
Things not to change:
Time with family. I am a family guy, spend most of time with them and will keep that.
Exercise. I am committed to at least 30 minutes of workout each day to counter my age.
Menorca. I love the island and will try to live there for two months each year.
It seems I have more things to improve and change than things to keep. Seems about right. Have a good 2023 everyone!
By the way, it wouldn’t be a 2023 post without some GTP3 help:
GPT3BEGIN--
A new year is a chance to start fresh and set new goals for ourselves. It's an opportunity to make positive changes in our lives and work towards a better future.
While the past year may have had its challenges and difficulties, it's important to remember that there are always good things happening as well. Look for the positive moments and focus on the things that bring you joy and happiness.
Being optimistic can have a positive impact on our mental and physical health. It can help us cope with stress and challenges in a healthier way, and can even improve our immune system and overall well-being.
Staying optimistic can also help us build resilience and strengthen our ability to bounce back from setbacks. It allows us to see challenges as opportunities for growth and learning, rather than as insurmountable obstacles.
GPT3END--
0 notes
emidio · 3 years ago
Text
Long time, no post!
Crap! It’s been almost an entire year since I last posted something on this Tumblr... Wassup? 
Doing Swift again, and I’m not talking about getting one on Ticketmaster!
Swift and SwifUI... here’s my latest “let’s see what I can come up with!” - Inspired by non other than Twitter starting to become a shit show, and RSS reader from Google long gone, AND the web is impossible to surf especially since the introduction of GRDP. 
So I wondered what’s up with this RSS thing, and maybe I can get my own RSS reader for iOS done in less than 500 lines of spaghetti code?
TL&DR: Looks like a possibility! 
SwiftUI and Swift let you think like in the old BASIC days. A single file program can go a long way!!
It will begin to look messy after a while, you get addicted to the Previews, make changes, add .something() and suff happens and you can get carried away as much as locked into a ONE way of doing things... 
After a while you don’t care much, you like the outcome, it looks like you wanted it to look, so fuck it.
You wonder if you’re really a programmer at this stage, much like you use the prompt on the stable diffusion AI to generate an image will make you wonder if you’re really a designer.
It seems like a lot of knowledge you have is no longer necessary, things have become much more complicated and also simpler at the same time, depending on where in time you got into this game.
One thing is for certain, things will get complicated again from here, the house of cards just keeps getting higher.
About RSS... holy shit!! Each feed I test presents a new challenge. I’ve seen mixed RSS, JSON, and some really weird stuff. It’s not an easy thing to parse.
Tumblr media
Work in Progress... I’ve put some hard coded feeds, and it loads, sorts by date/time and shows them to me, kind of what I would expect from an RSS reader.
If you insist, I’ll let you take a peek at the source code so far! 
0 notes