My online name is Sapphire. I program and I post my rambles here.

9,339 words

You'll only receive email when Sapphire publishes a new post

Thirty Ninth Ramble

This has been a very busy time for me starting a new University experience.

I'm going thru alot of change and haven't had time to continue developing SNAT.

However, I am going to continue to develop SNAT and it's my goal to resume development of SNAT by this Saturday when I've gotten more used to University life and feel like I've regained control over my life again.

Here's the only major hurtle that I've reached with SNAT. 

In Java you're able to interact using command line input. I'm not sure if that's possible with JS, but I just realized that I  can use inputs thru windows just like JDialog in Java!

Wow, sometimes actually writing out the problem allows you to get the solution!

Anyway, that's it. I'll ramble again soon. 

Have an awesome life and keep going!

Thirty Eight Ramble

This ramble is on human kindness and my own mistakes.

I lost my phone earlier today and when I got home that's when I realized it. I launched find my samsung on my computer browser and tried to find it. It reported the device as offline. I tried ringing it. That was reported as offline. I then decided that I would do a partial retrace of my steps and hope to find it. It was when I was coming back from this partial retract that I realized with growing horror the mess I had gotten myself in. The reason that I coudn't locate my device was because of a firewall tool I was using called "No Root Firewall", the tool itself is great, just for people like me who don't understand all the services and which ones are safe to block it's not a good tool. I wasn't able to locate my device at all. I decided to check to see if I could locate it with google services. I was able to which was lucky because google had been smart enough to bundle their location and remote control services directly into google play which on most people phone would be granted mobile data and wifi access. (Which I did). So I went off to collect it and it was in a location I hadn't been. Turns out someone else had found it, emailed a message to the email address I had on the phone lock screen and then decided to drop it off at Verde Juice Bar.

I wanted to thank that person for being honest and kind and turning my phone in and thank google for designing idiot proof software so that I could recover my phone.

Thirty Seventh Ramble

What is good programming practices and ethics?

I recently met a person that for the sake of this post I'll call Steve. He's an all around great person except for one thing.

He want to sell software except with two major caveats:

    He doesn't really do any of the work, he just doles it out to programmers in other countries.

    Secondly it's designed in such a way that he'll still have a job, so it will automated other people's jobs but due to the complexity or something similar they will need to have him.

I think that's really bad, first of all having software that's designed to be confusing so that you need to stick around? That's locking people in because of need not want. Having people using your platform or software because it's the best, not because they can't migrate away from the platform because it was written poorly and in such a way that ensured your job security.

Unfortunatly, it's easier to compete by having clients locked into your software instead of your competitors and maintaining clients because your software is the only thing that can read their notes, than compete on quality and user experience.

So the moral of the story is develop software that competes on quality and user experience (like Standard Notes) and not because user's can't migrate away from it.

Thirty Sizth Ramble

Hey. Long time no see. 

First off, I'm really proud to have done programming almost every day of the summer. I'm also looking at starting a company but that's another problem and I'm getting ahead of myself.

Anyway, I got a the parts in place to begin building SNAT and have begun to do so. There are only a few problems that I have right now. 

First I'm taking the TDD approach (or trying to for the most part)

My code is getting very long and it's difficult having all my code into a single file. I haven't found a comprehensive way to "modulize" it like you do in Java or Python. UGH.

Second I'm bumping up inablity to navigate in certain parts of JS, however that just means I need to learn more which isn't a problem at all. You can check out my progress at

However please ignore most of the files and just look at jsExecutor.html and DoublyLinkedList.js

By the way, if you want that DDL (the actual double linked list code) take it. That's something that I spent alot of time porting over from Java. That itself was fun. There are still a few many bugs but as long as no data that is passed is null or undefined it works for the most part. I understand how difficult it is to port now since you're not just porting the actual logic but porting to the different features of the languages. For example Java had a feature called "method overloading" which allowed you to have two methods with the same name as long as the parameters have different lengths, different data types or different order of the same data types.

JS doesn't have that and will accept something that's suppose to have three paramenters with no parameters and itself will pass the value "undefined" for all three. This makes error checking different than in Java, where Java enforces much more strictly regarding parameters and doesn't allow you to skip passing parameters to an object.

Anyway great to be back in the city. SN just keeps improving. Ramble later!

PS. Just realized the guest book feature. That's an awesome listed feature!

Thirty Fifth Ramble

                  _  /)
                 mo / )
                 (    )
           _____/      \\_____
          |  _     ___   _   ||
          | | \     |   | \  ||
          | |  |    |   |  | ||
          | |_/     |   |_/  ||
          | | \     |   |    ||
          | |  \    |   |    ||
          | |   \. _|_. | .  ||
          |                  ||
          |   Allen Denton   ||
          |                  ||
  *       | *   **    * **   |**      **

Someone that I worked for died. He was approaching 93 this august. Very still with it. He will be missed.

Anyway, I got alot of programming done! 102 minutes!

I had trouble with Regex white space problem, took close to 45 minutes but I solved it. One of those great, great feelings! Anyone who's been stuck on a problem for a long time and finally gets it knows the type of feeling I'm talking about.

Now since I'm going to Maskwa this summer, the wifi will be bad. I'll only be able to upload once a week or so. However, expect a massive upload each week of code, journal and anything that I think is awesome or cool.

Anyway here's the amount of backlog code that I owe myself: 580 minutes.

I'll be back down to zero in 11 days. (I'll be doing an extra 45 minutes aday instead of 30 minutes.)

What else will I do with no internet. In a way no internet will mean that I will accomplish alot.

Stay awesome,
     )      (_
    ((    /{  "-;
     )).-' {{ ;'`
    ( (  ;. \
BTW (That's a wolf.^^^)

Thirty Fourth Ramble

Hey, I've failed badly and not coded for several days.

I'll make it up and begin having my actions reflect my goals.

Anyway that means that I'm up to 517 minute of owed coding time.

I got 94 minutes done today. Learned about regex in Javascript.


That's it for me.

Stay awesome, I'll write alot more tomorrow.

Thirty Third Ramble


Hey! Good news, today I didn't rack up any more minutes. I managed to reach my goal of 90 minutes of programming. What's more I actually managed to do 1 extra minute. Doesn't sound like much but after the day I had, it's means alot symbolically. 

So currently I owe myself 251 minutes which will take 9 days to complete since I only work on 30 minutes max on backup work, (any more time and I would just be spinning my weels, not getting anywhere).

I went shopping today and visited my elderly neighboor who was in the hospital. I'm begining to plan for my university timetable which is exciting. In 3 days I'm going to be graduated which is something that I can't wait to get over with. I've been ready for a while.

I'm going to be able to look at the Simple Task list with more understanding within 2 weeks after I've completed the freecodecamp learning.


that's it for today. I promise that one of these days I'll write about something that is slighty less on code and more about other things.


Thirty Second Ramble

I failed Project Fox yesterday. However, my streaks are now becoming six day streaks, so I'm failing less often which is good.

I got 1 hour and 18 minutes of programming done today! It felt good after going several days without coding. Currently I owe myself 252 minutes of makeup code. Assuming that I don't miss any more days, it will take me 9 days to drop back to 90 minutes coding sessions instead of 120 minutes.

Anyway, I'm back from my Thompson road trips, find the wolves was an awesome thing and one of those memories that I will treasure.

I didn't get as much programming done as I wanted today.

Sorry that this is such a short and useless entry.


Thirty First Ramble

This is for 20180622

I know that I didn't do 90 minutes yesterday and no 90 minutes today. Tomorrow since I'll be getting home chances are that I won't be able to either.

Anyway I'm in Thompson doing the Spirit way along with Wolf Geocaching. The wolf geocaching is why we're here.(Going to 34 geocoordinates and recording the concrete statue's name). Each statue was beautifully painted. If I didn't already tell you, wolves,nature and( I learned this), small towns with lots of nature, make me happy and relaxed. This location checked off all of that. Plus within ten minutes of walking you'd see something wolf related or within 2 minutes of walking you'd see nature, trees and large patches of green.

Instead of a new phone or something equally short lived I wanted to create memories and find be in the wolf capitol of the world(that's their goal).

Anyway I learned that I'm a small town person. I really like how slow everything is here. NO whizzing cars, no endless houses, constant sound and speed along with flashing neon signs. Our here its slow, peaceful and for the most part cool.
Plus its close to nature with lots of greenery and parks, you don't have the crushing weight of skyscrapers.

This also translates into programming. I know it may sound counter intuitive but by spending less time programming and less time on the computer, but more time outside and with family and friends. I'll be more successful,happier, my code will improve faster and I'll learn more.

Anyway this was an amazing graduation present.

Code owing 120

Thirteith Ramble

Got it up.
Here's the link.

Got 30 minutes done before we're leaving. I know that I will miss programming tomorrow and the rest of todays. I'll make up the times as I've outlined.


Twenty Ninth Ramble

Today was an awesome day. It didn't start out like that, however it ended like that.

I've been struggling recently, that why I havn't journalled or done programming. However that ends tomorrow.

Starting tomorrow I'm going to do a 90 minutes of programming per days, days that I can't I will make up the following day (up to 120 minutes programming). So if I miss 1 day of programming I owe that 90 minutes to myself. However, since I'm limiting it to 2 hours of programming max per day (I have a job that I will need to go to, people that I will need to maintain relationships with...2 hours of programming is that max that I will be able to do each day)

Here's my goal for the summer. Develop an Advanced Task List extension. Now you make ask "Why isn't it developed yet Sapphire?! You promised it, you even wrote it up several times". Here's why, first of all, I underestimated how difficult it is to learn a programming language, truth be told I though Javascript was going to be a cinch to learn, being a "web" programming language and all. I was wrong. I'll repeat that, I was wrong. Very wrong. It's difficult. Probably if I really wanted to, with google and copying and pasting code from stack overflow, I probably could create an advanced task list. Would it be maintainabe? NO. Would I be proud of it. NO, I would want to deleted it off my harddrive, burn my laptop and then burn the ashes to make sure, finally, send the ashes into space so that they wouldn't hurt me.

Here's what I'm going to do. Every day I'm going to program for 90 minutes (hopefully), I'll upload the code that I did, along with a writeup of what I learned, how I can apply my new knowledge and what I'm confused about. I'll post the link of where its hosted on github tomorrow. I'm going to work on building a solid JavaScript base, learned SN api's and by the END OF THE SUMMER, have rolled out the Advanced Task list.

If 3 days goes by and new code is up, I want a gentle reminder to get back to it. That is all. Last summer, I undertook an equally ambitious project, did it for three days and didn't touch programming for the rest of the summer, because I was scared I was going to fail, scared I didn't know what I was going to do, scard to ask for help. Scared that someone would mock my code. The problem that I caused with that is all my friends have advanced in their coding abilities, their creating really cool projects while what I'm doing is very simple. I don't want this summer to be a repeat of that. I won't let it be.

My time's almost up. I had an awesome time mountain biking w/ my Mom. It was exilerating. Tomorrow I'm going on a small graduation trip. So I won't be bringing my laptop. However, I'll only be gone two nights, which means I'll end up owing (180 minutes of programming). I'll be able to do some programming before we leave tomorrow.


Twenty Eight Ramble

Hey! I went a day went great. I watched my dad complete his first marathon. I got SN development done. For any body reading this that is interested in developing for SN, hop right in. The developer is more than happy to assist you. This (in my case at least) makes it harder to walk away since you don't want to have wasted the developers time. This allowed me to stay with it thru the difficult parts (difficult since I'm making newbie mistakes).

Good news, I got the extension that I'm developing (Goal: Have an extension, that reads the current text in the note and set it to something like "Hello World".)

Right now the extension causes SN to ask if you want to allow the extension to access your notes. It's not actually changing anything....However, I'll solve that before the end of tomorrow.

Sapphire out.

Fox Streak: 1 Day
SN Average Dev Time: 90 minutes

Twenty Seventh Ramble

I failed Project Fox yesterday and the day before.
Got some JS programming done. What I realized was that my planning phase was too naive. It's taken a long time to learn JavaScript but the actual extensions development shouldn't take more than 3 weeks (I hope) @ approx 90 minutes per day...

Once I got the basic features working,I'm going to see if I can connect it my remote tasklist. If this works, a big problem can occur, SN developers could abuse their capabilities and transfer unwanted information. Therefor, perhaps a later extension that could be built (or possibly integrated directly into the SN Core API), is a "firewall" system that can alert when an extension attempts a connection to an unexpected host for the first time, or unexpected protocol.


Twenty Sixth Ramble

Wow! Today was a very productive day.
I finished my final piece of work for school.
I also realized that I didn't want to go to safe grad, as much as I wanted to spend time with this fellow nerd girl. So I decided to ditch safegrade altogether and we'll going to a game shop instead. Much less noise and much more to my taste.

While I was learning JavaScript, I realized that I needed a different JavaScript resource the book I had was too tecnical and causing my eyes to glaze over. Basically I realized that it was going to take me forever to bring my JS skills up to par to develop the advanced task list. I also realized that I may not as I was previously thinking build off of the simple task list codebase, because my first extension will be mediocure at best and making the application as simple as I can will still delivering my promises (very late). However, this is because this is the first time that I've jumped int code that I didn't create in a language that isn't java. I'm not having the help of any IDE, the reason for that is twofold, first I learn better when I have to pay attention to the nitpickey details, secondly, I don't know any JS IDE's.

So the reasoure that I stumbled upon and would suggest anyone who's interested in learning JavaScript to start here:
They ask you for a monthly donation (optional, every few questions until you do a donation).
However since the material is topnotch and 300 hours of materials is provided (I'm going to finish it closer to 100 hours I think or maybe even 50 due to my experience in JavaScript for close to 3 years.)
I donated 5 dollars monthly, the most that I can afford since I'm a student.

However, this makes you realize that coding unlike most skills you don't need expensive gear. You just need a computer, internet (for knowledge and tutorial) and a desire to learn.

Day 3 of 365 Completed JavaScript and SN Learning
Current Average Programming Time:85 Minutes
Fox Streak: 1

Twenty Fifth Ramble

Today was an awesome day for four reasons (in no particular order):
SN upgraded and provides new under the hood feature improvements!
Basically asked a fellow nerd out for Safe Grade. She's someone that I've admired and like for awhile. (Not official until I can actually verify that I can get the tickets.)
Had both my English and Family Studies presentation today, which was a bonus since I got two stressful projects done.
Finally had dinner w/ my Grandma with my Family.

Goodnight, today was an awesome day.

Twenty Forth Ramble

I failed Project Fox for the Second day in a row. This end of the school year is really getting me off the game...
However, I DID manage to get 29 minutes of programming in. So that's good. Tomorrow my goal is 90 minutes:

Change the selected list item to change colors while running (it won't save to SN yet, a "live" change.

Expected Completion: 90 minutes.

Keep you updated.
Stay awesome and don't be me...that's my right now there's a major updates that need to be installed (first downloaded, then compiled and then installed.)

Will be excited to journal tomorrow.

Twenty Third Ramble

Didn't get any programming done. Was too nervous about school work that I need to get done.

That's it.

Will begin programming by Thurday when my school work is mostly finished.

Twenty Second Ramble

Hey! Got some programming done today.

Begun working on changing the task list.

Tomorrow I'm going to a developers retreat which will improve my coding skills.


Twenty First Ramble

Very Exciting to have deployed my first extension. (Was just simpple task edit.)

Thats it.

Sapphire Out.

Day 2 / 365

Twenthyth and a Half Ramble

Today was good. I've begun developing the hosting side.
I'm happy that I learned that task editor doesn't need grunt. Not sure how long it would have taken me to skip that step.

Anyway, I've hosting a version of SN Basic Tasklist on github. I'm struggling with the releases side of things (hosting it on github).

When I enter the generated listed link it allows me to install the extension. But the first time I use it, it asks me where I want to save a .zip file.

Anyway, I'm learning and it's good to be back programming!

Day 1 of 365 days of Awesome SSNE Development!

What does SSNE stand for? Sapphirian Standard Notes Extension!

PS Thanks Bitar