Categories
Software development

Spring, Spring Boot, React and OAuth

Reading Time: 3 minutes

Baeldung : A Comparison Between Spring and Spring Boot

Tutorials from Okta
Working in progress

Identity, Claims, Tokens – An OpenID Connect Primer, Part 1 of 3 (Micah Silverman, below 2 and 3, are also by Micah)

OIDC in Action – An OpenID Connect Primer, Part 2 of 3

What’s in a Token? – An OpenID Connect Primer, Part 3 of 3

Secure Service-to-Service Spring Microservices with HTTPS and OAuth 2.0 (Matt Raible) : some errors due to java certs

Completed

Secure a Spring Boot REST API with JSON Web Token Plus references to Angular integration (Nouhoun Y. Diarra) : a small typo: the health check URL should be http://localhost:8080/actuator/healthTutorial:

Develop Apps with Secure WebSockets in Java (Jimena Garbarino): 

Secure Reactive Microservices with Spring Cloud Gateway (Matt Raible) link to my github

A Quick Guide to Spring Boot Login Options (Andrew Hughes)

Easy Single Sign-On with Spring Boot and OAuth 2.0 (Micah Silverman): note the need for JDK 11 (I used Amazon JDK 11), and please remove the double quotes around claim name and re-type (copy paste does not work well from blog post to okta dev console)

Build Spring Microservices and Dockerize Them for Production by Raphael do Vale. As I was finishing up the regular part (the exercise before docker), the service discovery reminded me of Hashicorp Consul tutorial I followed along a while ago. Note this tutorial used Netflix Eureka which is a bit more cool than pure command lines from Consul / Vagrant 🙂 Note this for Docker (quote the tutorial): You must store the file school-ui.properties in the same folder specified on the volume mapping (in the example above, the relative folder ./config-data). This is also my first complete tutorial on Docker container running java web apps (on my local MacBook and Windows 10). In the past I followed tutorial that runs Chef as well as Tomcat / Jenkins on docker (GCP).

Build a Secure Notes Application with Kotlin, TypeScript, and Okta by Matt Raible. Note the last part also talked about how to push code to Pivotal Cloud Foundry and deploy the apps there. This is interesting as I have done the PCF 15 minutes tutorial in the past (and recently).

Bootiful Development with Spring Boot and React (Matt Raible at Okta): I followed this tutorial until the point that I get the basic beer list (in other words, I made both the basics of Spring Boot and React work). This is my very first venture into React, and I had to install “yarn” as well using brew install. In the process I had to upgrade the Xcode via command line.

Also: Use React and Spring Boot to Build a Simple CRUD App (Matt Raible at Okta): I made small mistake when initiating the project with Spring website: I copied / pasted the dependency frameworks, which seems does not have any effect when the pom.xml was created. So I added the dependencies manually.

			org.springframework.boot
			spring-boot-starter-web
		
		
			org.projectlombok
			lombok
			provided
		
		
			com.h2database
			h2
			runtime
		

Also in my Eclipse, I need to install Lombok manually by following instruction here. Note Matt did mentioned the IDE cannot recognize some of the Lombok things if there is no plugin. In the past I used to install Plugin via the menu inside Eclipse. I noticed “Whitelabel error” when I was hitting the end points: http://localhost:8080/api/groups/ (this is working as expected actually, before I add any JUG meeting to the list, as I don’t have access to the default list).

Last but not least: I need to make a small adjustment in GroupEdit.js sample code

'X-XSRF-TOKEN': this.state.csrfToken, (it was just csrfToken and Yarn did not like it)
Categories
iPhone app

h2 database

Reading Time: < 1 minute

H2 Database – Installation

H2 Database – JDBC Connection (the only differs from the docs is we need to add “mem” before the “:~/test”. Otherwise it gives me error.

Mixed mode

Another Java H2 tutorial

Last but not least, how much time should a coding test be? I feel couple hours are probably the way to go (think of Filtered AI, Hacker Rank etc). The other approach is more like open-ended projects: those could take from a few hours to a few days 🙁 In some cases I was suspecting the hiring companies could use this opportunity to get some real work done (if they ask for source code 🙂

Something to keep in mind when doing code test.

Categories
iPhone app

Streaming data, data streaming

Reading Time: < 1 minute

Apache flink
SE-Radio Episode 346: Stephan Ewen on Streaming Architecture;
Software Engineering Daily Apache Flink with Stephan Ewen – Nov 2015; Spark and Streaming with Matei Zaharia – Feb 2018

AWS Streaming data

Categories
iPhone app

Database deployment automation

Reading Time: < 1 minute

DB deployment (schema or DDL, package)
Continuous integration and deployment of database is a main issue for many legacy monolithic web app. I came across this article recently, and I think it touched some good points.

On a related matter, Jeff Atwood (cofounder of stack overflow), has a good piece on database version control.

I understand the world is going microservice, and the monolithic relational database is not used as frequently as it’s being used in those legacy web apps. But nonetheless, it helps the dev team to be agile if version control / CI / CD can be applied to database update as well as the application update.

Tracking data changes in DB
This also reminds me of an app I worked in 2010/11, in which we have an DB audit log for many (if not most) database changes: add, update, delete. It’s usually achieved via trigger in Oracle, or interceptor in Java. I read an article from a startup engineering blog (credit karma? Or something like this), they detailed how this is implemented.

Categories
iPhone app

Working from home friendly companies

Reading Time: < 1 minute

Or companies that allows or encourages remoting.

Zapier (Emily Irish) The Remote Work Survival Guide: 9 Do’s & Don’ts Every Remote Worker Needs to Know

stackoverflow remote dev jobs:
e.g., MobyMax: this is very interesting because I learned about Mobymax because my daughter’s school has the subscription.

Top 30 Companies for Work-from-Anywhere Remote Jobs in the U.S.

Work From Home 2018: The Top 100 Companies For Remote Jobs

Last but not least, LinkedIn has the top startup list for 2017 and 2018. Note many startup like people to work onsite for more communication but there are some exceptions (InVision for one).

Categories
iPhone app

Webhooks

Reading Time: < 1 minute

(Update 03-21-2019) Add the Power of Webhooks to Your App with Okta’s System Log (Joël Franusic at Okta).

(Original 12-28-2008)
Webhooks
I heard webhooks from Zapier the first. Below is an good article written by the folks at Zapier.
What are the webhooks? (Zapier)

Was trying to follow the tutorial from the above
requestbin tool

requestbin works like described (encountered a few 500 errors, but mostly working)

It seems I could not open the hurl.it link from runscope community page.

I am reading this more technical webhooks blog by @brandur

My interest in webhooks is also inspired by this little JS program I wrote a long time ago. And this was rekindled recently due to the atomist-sdm (GitHub) (node.JS based SDM, automation, quick start here).

Categories
iPhone app

Node js tutorials and webtask

Reading Time: < 1 minute

(Original 11-30-2014, to be worked on)

I heard about Node js for a while, until recently I had opportunity to practice it. I used this tutorial from raywenderlich.com as a start, as I had good experience using the iOS tutorial on ray’s site. But I need to learn more. Here is another one (similar to Ray’s tutorial).

http://nodeguide.com/beginner.html (update 03-07-2019: it seems the site is no longer available)

How do I start with Node.js after I installed it?

Webtask (Auth0)
https://webtask.io/make (for me I used GitHub as SSO login)

If This Then Node.js

more about auth0 vs okta

JavaScript
http://eloquentjavascript.net/03_functions.html

Atomist: a SDM based on Node.js (SDM stands for Software Delivery Machine)
https://docs.atomist.com/quick-start/

I was also following the first few lessons of the advent of atomist automations. Got a bit stuck at the SDM team mode. Local mode seems working fine. I did receive the free trial for Atomist. Maybe I need to update the package as I downloaded Atomist a while ago (in August, I think).

Categories
iPhone app

Setup JBoss with Eclipse

Reading Time: < 1 minute

I have been doing this for a while, mostly for my new work (back to dev). My goal is being able to debug a Java web application, just like what I did for my previous work (Spring STS + Tomcat). The new work requires Eclipse + JBoss (some coworkers uses the not free Intelli-J).

Download / install Eclipse
link here, need to unzip, and install the Eclipse for JEE

Add a new server
I picked Wirefly 11. Read this post regarding JBoss EAP vs Wirefly. This has been helpful.

After that I was able to import a “maven project” (that runs on STS with vFabric server), and start the app in debugging mode. This seems like baby steps, but for me it’s a long time “not doing” 🙂

Categories
iPhone app

Paradigm shift

Reading Time: < 1 minute

(11-03-2018) Alibaba just reported a quarter in which its cloud revenue grew 90% YoY. It appears Ali Cloud is No. 4 in the world: behind Amazon AWS, Microsoft Azure, and Google Cloud Platform (GCP). Thinking Ali may challenge Amazon in not too distant future (note Ali started the cloud much later than Amazon).

About Alibaba Cloud:
高盛:亚马逊AWS和阿里云将成全球最大基础设施技术公司
胡晓明

(07-08-2018) Came across this multi-cloud article form Glenn.

(Original) Good old Oracle is shifting Java SE from perpetual license model to subscription based. Link here.

Note John Chen (CEO of blackberry) mentioned the subscription model makes more revenue more predicable for the business (video here, noticed he mentioned new accounting rules here).

Btw, heart broken to see the Blackberry phones go away.

Categories
iPhone app

Firebase – second take

Reading Time: < 1 minute

Two years ago, I was trying to migrate an app back-end from now defunct Parse.com to Firebase, I was not successful. I was able to make it work last night, after reading more about the data structure in Firebase realtime database. I was able to do it by following the examples in this tutorial page.

I submitted the iOS app myNestEgg retirement calculator, and the update was approved this afternoon.