Categories
Development

oci-bucket-gui MVP: First mockup

Even if this is my personal hobby project, I’ll be trying to apply some “real” software development practices. First thing to do is to describe the scope of the first “Minimal Viable Product”. So far, I’ve noted these MVP limitations I’ll be trying to stick to:

  • Windows target only
  • Javascript (no Typescript yet)
  • Single thread uploads and downloads, no parallelism
  • No simulated folders in Object Storage
  • Simplified choice of compartments and buckets, probably using setup files / environment variables
  • Single file up/download (no bulk operations)

These will be good enough for the “alpha” versions – once this one is working I’ll think about moving further.

This is my mockup for the MVP:

Not sure yet what exactly will be happening when pressing the “Setup” button – either loading a file or opening a dialog when the fields will be entered (to be saved in a file?) Will think about that some more.

Keep hacking (•̀ᴗ•́)و ̑̑

Categories
Blogging Development

Yak Shaving is real!

In my quest for Electron.js app development mastery, I’ve discovered that my own company (Oracle) publishes own frontend javascript toolkit that’s opensource and it actually is looking nice and useful! Whole lot of prebaked components you can just copy and paste and data binding looks simple enough.

Welcome Oracle JET – Javascript Extention Toolkit: https://www.oracle.com/webfolder/technetwork/jet/index.html

Also has both Javascript and Type Script versions. Couldn’t find much examples for it’s usage in Electron apps but I don’t see what could prevent that. I guess mine will be the newest example when I finish it 🙂

Categories
Development

oci-bucket-gui: alternatives?

Continuing with this personal project of mine.

Tried to look into other alternatives for a desktop multi-platform application. In a very distant past I developed a bit in Java – so the first thing I wanted to see is the old good Swing. There was also a GUI builder in Netbeans IDE as I remembered – for sure this was updated since then, right? Having a visual GUI builder could be nice, it speeds up development quite a lot, no?

By “then” I mean early 2000’s, so roughly 20 years ago! (Time flies…)

And so, I’ve downloaded the latest version of now-Apache Netbeans 12.1 and fired a sample project called “GuiFormExamples”…

What can I say… this looks exactly like what should’ve been a new modern app built in 2001 for Windows XP 😁

Well, this doesn’t look very inspiring to me – some searching suggests that there are ways to squeeze more modern look and feel from Swing components, but I don’t know if it makes sense for me to invest more time in that. The attractive part of Electron was that it’s built on the web technologies that are useful anyway for a foreseeable future, because most of the application development is happening for the web anyway and I would like to refresh my knowledge of web development that’s starting to be a bit dated with me doing mostly infrastructure these days.

It looks like his project is going to be a classic case of “Yak Shaving” where I would need to go deeper yet, every time I need to advance. So far, to master Electron I’ll need to be at least half-knowledgeable in at least one web framework.

News to follow, stay tuned and as always:

Keep hacking (•̀ᴗ•́)و ̑̑

Categories
Development

oci-bucket-gui – Electron / Node.js shenanigans

Still fighting with the tech stack selection – from my first noob looks, the Electron ecosystem seams somewhat sparse and lacking detailed successful tutorials. Especially for people developing on Windows.

Node.js is the main piece of the puzzle and this isn’t easy either. The versions are advancing very fast – even the LTS versions are created every year (twice as fast as Ubuntu for example). And the whole life of the Node.js LTS version from start to EOL is 2.5 years only.

A fun fact – current LTS as of today is 12.19, but the 14 LTS is starting in 5 days – should I wait? 😅

With this in mind, a need for easy version switch is there – and there is the project called “nvm” – that’s the Node version manager. The problem is, it doesn’t work on Windows that I wanted to use as my dev platform! An equivalent windows project exists, it’s called “nvm-windows” but it doesn’t work properly on my machine (and I see I’m not the only person who has the same problem, without clear resolution – the incidents are mostly closed by the project maintainers saying “check your windows security” – not terribly helpful). There is possibility apparently to develop in WSL, but again the problem is I don’t have WSL2, only WSL1 because my Windows build is too old. So basically I can’t use nvm or nvm-windows, so will have to stick to locally installed LTS Node.js and hope I don’t need to develop in different versions at the same time.

All of this isn’t very reassuring, I should’ve probably just go with JavaFX or .NET Core/C# – both have supported SDKs for OCI and much larger community support for desktop apps 😅.

Let’s see how it all advances,

Keep hacking (•̀ᴗ•́)و ̑̑

Categories
Blogging Development Oracle Cloud Infrastructure

oci-bucket-gui

In parallel with regular work, I’ve spent the week since last blog post trying to discover resources for electron.js development newbees.

The situation is “interesting”! On one side lots of simple easy to put in place “hello world” samples, on the other side a number of very advanced open source projects (like VSCode) but not much in between! It’s kind of assumed that the developer interested by Electron already has extensive full stack or front-end experience using popular frameworks like React or Vue. I am not such developer 😅. Back end – yes a bit, but front end – not so much!

Am I abandoning this idea – hell no! I’m searching and I’m looking and I will find a way.

Keep hacking (•̀ᴗ•́)و ̑̑

Categories
Blogging Development Oracle Cloud Infrastructure

I’m back?

2020 wasn’t an easy year! Forgive me if I wasn’t particularly active since April, lot’s of things happened that weren’t conductive to prolific blogging 🙂

I have an idea finally that I’d like to develop – this may change the blog’s subject a bit. I’d like to learn a new language or a framework while developing something useful at the same time. This something will be a file manager / file transfer client for OCI Object Storage.

So far I’m thinking to develop it as a cross platform GUI application, most probably using ElectronJS. Another somewhat close variant would be a plugin for VSCode – this should be simpler to develop in theory but I’m not really looking for simplicity, for the moment I’d like to treat this as a learning project. My Java Script / Type Script aren’t great, what’s better than something real to build – the best way to learn for me!