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!

Categories
Oracle Cloud Infrastructure

Resetting Cloud Shell

I’ve been using Cloud Shell a lot recently and found it very useful for many use cases. Preinstalled and preauthenticated cloud tools (OCI CLI, terraform, kubectl…), programming languages and simply its immediate availability at any time are great for occasional or not so occasional use!

The user directory is persistent as far as you log in at least once every 6 months – and this is great, but what if I want to get a clean brand new Cloud Shell like it was on the very first connection?

I prepare and conduct lots of training sessions, workshops and seminars where it can be useful to start from a clean slate to be sure I’m not relying on something that isn’t available to a regular new user – maybe I’ve installed some binary in the past or modified something, and my workshop is only “working” for me but not for everybody else?

The answer to this question is a little utility delivered in the Cloud Shell and called csreset.

Categories
Oracle Cloud Infrastructure

OCI Cloud Shell announcement

Have you seen this – OCI now has its own Cloud Shell – a Linux shell in the browser!

More in this announcement: https://blogs.oracle.com/cloud-infrastructure/announcing-oracle-cloud-shell

I’m preparing a small article about the Cloud Shell, stay connected 🙂

Categories
Hybrid Multicloud Oracle Cloud Infrastructure

Deploying K3S on Oracle Cloud Infrastructure – part 1

“Installing your own Kubernetes is hard!”

Everybody

“Hold my kubectl!”

Rancher

Who is this article for:

This is written for those of us who’s interested by Kubernetes and would like to install and run it easily and cheaply anywhere. You may already know that installing and running a “full” Kubernetes all by yourself can be rather difficult, the learning curve is really steep.

There are many alternatives out there – one of the solutions to the complexity is subscribing to one of the managed Kubernetes offerings in the cloud, for example Oracle OKE. Rancher Labs came up with another interesting solution, modifying and considerably slimming down a standard distribution.

K3S is a lightweight Kubernetes distribution made by Rancher Labs, targeted to edge computing, IoT devices and ephemeral infrastructure deployments (for example created in CI/CD pipelines). It can run on Intel and ARM processors.

I would say it’s a great case for learning and development environments too. It even runs on Raspberry Pi! Should you run your critical production workloads in k3s? Not sure this is a good idea, Rancher certainly doesn’t position it like that.

In this article I’m going to describe the installation steps needed to install K3S on OCI in an Oracle Linux VM, but pretty much any cloud or local install will be very similar. Was it as easy as advertised? Keep reading 🙂

Categories
Blogging

vim-quickui: turbo for your vim

You like and use vim; you liked old turbo IDEs made by Borland: this fun project may suite you well!

https://github.com/skywind3000/vim-quickui on Github is the place you didn’t know you needed so bad then!