Skip to main content

Posts

Moving away from Blogger/Blogspot for blogging

Hello everyone, in recent years I didn't have time to actually blog and the reason was not only the lack of time. The real reason was that personal blogs are no longer this viable as ones were. In the current time, most people read medium or ghost or very development-aligned websites to get their content. In the past years when this blog was created, dzone.com was actually a blog aggregator, where you put your blog and people can vote for it, in a way similar to Reddit.  It was AWESOME having a front and back page and the blog links having a lot of votes sometimes made it to the front page. There was RSS for both pages and it was so so awesome and  Javalobby was a forum back then. I don't know how these guys fcked up that much but shame.  Anyway, all is over ... dzone is completely different, javalobby doesn't exist and to have a personal blog and just rely only on your Twitter or Reddit presence is just too much work for a developer, after all we have to als...

NestJS + Mongo + Typegoose

The current state of Mongo with NestJS ( and Node) . Currently you have 3 options to use Mongo with Node (and NestJS). 1)  NestJS + Mongoose  where maybe the best tutorial I have found is here  https://scotch.io/tutorials/building-a-modern-app-using-nestjs-mongodb-and-vuejs  the issue is that I hate the fact I had to write the schema definitions and the typescript interfaces. If you are fine with writing everything 2 times ones the Schema and ones the Document as Typescript Interface maybe this is the best way to go. 2)  NestJS  + TypeORM where you can actually use TypeORM with MongoDB, however I do not recomment this if you want to learn more I would ask you to write this blog post  https://medium.com/articode/typeorm-mongodb-review-8855903228b1 3)   NestJS  + Typegoose - basically what it does is it uses your domain objects to get the schema from them. And this is what this post is all about. There is a lot of documentation h...

Use Multiple JVM versions on Mac OS and Linux

Linux Download multiple Java versions and put them into /opt/ If you already have some JDK from ubuntu repo or etc not a big deal, just fix the paths bellow Register them as alternatives sudo update-alternatives --install /usr/bin/java java /opt/java-8-oracle/bin/java 1081 sudo update-alternatives --install /usr/bin/java java /opt/sap-machine-jdk-11.0.3/bin/java 1080 Edit your ~/.bashrc file alias java11='sudo update-alternatives --set java /opt/sapmachine-jdk-11.0.3/bin/java;export JAVA_HOME=/opt/sapmachine-jdk-11.0.3/' alias java8='sudo update-alternatives --set java /opt/java-8-oracle/bin/java;export JAVA_HOME=/usr/lib/java-8-oracle/' SAVE and start a new bash terminal execute java8 to use java8 java11 to use java11 the latest version you have set stays as system wide, but the JAVA_HOME is not :( you can put java8 or java11 as a last line in the bashrc but since it is sudo it will always require password when start and is not gr...

Use Client Certificate Authentication with Java and RestTemplate

As a follow up of the  http://gochev.blogspot.com/2019/04/convert-pfx-certificate-to-jks-p12-crt.html  we now have a keystore and a truststore (if anyone needs) and we will use this keystore to send client side authentication using Spring's RestTemplate . First copy your keystore.jks and truststore.jks in your classpath, no one wants absolute paths right ?:) Again a reminder  The difference between truststore and keystore if you are not aware is(quote from the   JSSE ref guide ) :   TrustManager: Determines whether the remote authentication credentials (and thus the connection) should be trusted. KeyManager: Determines which authentication credentials to send to the remote host. The magic happens in the creation of SSLContext. Keep in mind the Spring Boot have a nice RestTemplateBuilder but I will not gonna use it, because someone of you might have an older version or like me, might just use a plain old amazing Spring. If you just want to use the ke...

Convert PFX certificate to JKS, P12, CRT

I recently had to use a PFX certificate for client authentication (maybe another post will be coming) and for that reason I had to convert it to a Java keystore (JKS).  We will create BOTH a truststore and a keystore, because based on your needs you might need one or the other.  The difference between truststore and keystore if you are not aware is(quote from the JSSE ref guide : TrustManager: Determines whether the remote authentication credentials (and thus the connection) should be trusted. KeyManager: Determines which authentication credentials to send to the remote host. Ok that's enough what you will need is openssl and Java 7+ ;) ! First let's generate a key from the pfx file, this key is later used for p12 keystore. openssl pkcs12 -in example.pfx -nocerts -out  example .key   Enter Import Password: MAC verified OK Enter PEM pass phrase: Verifying - Enter PEM pass phrase: As shown here you will be asked for the p...

Youtube video channel of the Bulgarian Java User Group

Bad news everyone, as you already have noticed I do not have time to write blogs :( However I would recommend you to check and keep an eye on the youtube channel of the Bulgarian Java User Group ( http://jug.bg ) which is https://www.youtube.com/user/BulgarianJUG/ You can enjoy all the jprime conference video recordings at  https://www.youtube.com/user/BulgarianJUG/playlists but also checkout the videos tab since we have a lot of non jprime videos uploaded as well and maybe at some point you can even see me ;)

jPrime 2018 videos freely available

Good news everyone, the videos of jPrime 2018 are freely available at  https://www.youtube.com/watch?v=xs3heuY21Z0&list=PLcqA4DRMgIYvGPZfrK0EcMxEQCrtSl9A3 Also in Youtube Bulgarian Java User Group channel you may find a lot of helpful Java related videos from jPrime 2017, 2016, 2015 or other Bulgarian Java User Group talks and activities :  https://www.youtube.com/user/BulgarianJUG/ Hope to see everyone of you at jPrime 2019 ! Or some of the Bulgarian Java User Group ( jug.bg ) or java beer events ( http://java.beer )

Bulgarian Java User Group in Java Magazine

Bulgarian Java User Group ( http://jug.bg ) in Java Magazine. I am very happy that the Bulgarian Java User Group now is on a page at Java Magazine - http://www.javamagazine.mozaicreader.com/MarApr2016/Facebook#&pageSet=19&page=0&contentItem=0

jPrime videos 2015

JPrime 2015 videos are now available at http://jprime.io/nav/article/40 . jPrime is a one day conference with talks on Java, various languages on the JVM, mobile, web and best practices. This year it was held on 27th May 2015 in Sofia Event Center. It's run by the Bulgarian Java User Group and backed by the biggest companies in the city. jPrime features a combination of great international speakers along with the best presenters from Bulgaria and the Balkans. More info for 2016 at http://jprime.io

Spring one 2gx conference review

Last week I was able to visit the Spring One 4gx conference in Washington, D.C. SpringOne4gx is an annual conference made by Pivotal usually held in September each year but on different location in USA each time. I have to share that this was the BEST conference I have attended to in my whole life. The conference was taking place at Marriott Marquis which was a cool place, the only big minus was that it was extremely cold, but I believe this is an issue about US in general (very warm outside and cold inside - yes it was strange indeed). This was my first visit to USA so I had to say that I am not impressed, many poor peoples sleeping on the streets and at least 1 different crazy day each day (shooting with virtual rifle or talking to strangers and etc.) anyway if this is capitalism I don't like it. About the conference itself: the conference was in 4 days, the first day was mostly only, a keynote and registration + a diner. I have to say that the conference tickets was coveri...

Introduction to Spring MVC (In Bulgarian)

This is video from the presentation I did for Software University  at Sofia, Bulgaria. Camera : Screen capture : All demos can be downloaded from here https://github.com/gochev/examples/tree/master/SoftUni%20Spring%20MVC%20June%202015 If you missed the event .. don't miss the next one. In Bulgarian Java User Group we do events like this one every month. Information about past and future events can be found here http://java-bg.org/events/

ORM в Java: Hibernate и JPA

A talk about Java and ORM I made at Software University in Bulgaria few months ago. It shows Hibernate (old school stuff) and JPA to as ORM. The talk is in Bulgarian Examples on github can be found here : Hibernate example JPA example

What is jHipster at SoftUni Conf, March, 2015

This is a small 10min talk that I made about jHipster. JHipster is a yeoman generator that can create a spring boot/jpa application with angular and bootstrap for a minute. I am not fan of code generation but .. its something that may help us doing presentations or preparing an example. The talk is in Bulgarian again

RAD with Spring @SoftUni Conf, March, 2015

This is a video of the presentaiton about Rapid Application Development with Spring that I made at SoftUni conf. The video is in Bulgarian :( ... again :( Example can be found here : Example on github

Software University : Fast REST API with Spring

This is video from the presentation I did for Software University   conf  at Sofia, Bulgaria. And here is the presentation (slideshare) only. All demos can be downloaded from here https://github.com/gochev/examples/tree/master/SoftUni%20Rest%20Spring If you missed the event .. don't miss the next one. In Bulgarian Java User Group we do events like this one every month. Information about past and future events can be found here http://java-bg.org/events/

Software University Conference Presentation about Java 8

This is video from the presentation I did for Software University   conf  at Borovetz, Bulgaria. And here is the presentation (slideshare) only. I recommend to watch the previous video in my post bellow since it has more content (but I speak a bit faster there :) )

My Presentation about "Beyond new things in Java" which I held at javaday.bg event.

My Presentation about "Beyond new things in Java" which I held at javaday.bg event, organized by trader.bg. (IN BULGARIAN) And this is the presentation only:   Lecture from javaday.bg by Nayden Gochev from Nayden Gochev

Patching a Maven library with your custom class.

Sometimes you use a library that has a bug. Or maybe it doesn’t has a bug but you want to change something. Of course if it is an open source you can get the sources… build them … with your change and so on. However this first takes a lot of time and second you need the sources. What you usually want .. is to just replace one class.. or few classes with something custom… maybe add a line .. or remove a line and so on. Yesterday… I had an issue with jboss-logging. The version I was using was 3.2.0Beta1 and it turns out that using this version and log4j2 2.0 final basically meant that no log is send to log4j2. The reason was a null pointer exception that was catched in jboss logging class called Log4j2Logger. The bug I submitted is here https://issues.jboss.org/browse/JBLOGGING-107 and it was fixed at the same day. However I will use it as an example since I didn’t knew when this will be fixed.. and I didn’t want to wait till it is fixed. So I was thinking what I want.. to take the j...

spring-loaded rocks !

Today I found spring loaded ( https://github.com/spring-projects/spring-loaded ) in short this is a java agent that enables class reloading of already running VM. Simply this means zero deployment time (in many cases). It is like a free and open source alternative of JRebel. Spring Loaded allows you to add/modify/delete methods/fields/constructors. The annotations on types/methods/fields/constructors can also be modified and it is possible to add/remove/change values in enum types. There is a preliminary java8 support. There is also another project DCEVM ( which is also great but supports only till JRE 6 update 26). More info here http://ssw.jku.at/dcevm/ But lets stop speaking and show you how it works. In short you just need to pass the agent when starting the vm and that’s it. >java -javaagent:D:/Downloads/springloaded-1.2.0.BUILD-20140409.201438-12.jar -noverify org.gochev.MainClass I am using this Build since I am running Java 8 and this is currently the latest . The ...

Google Reader alternatives ?

None .. no really there is NO Google reader alternatives simply because Google reader is THE BEST. However since google reader will be shut down in few days and we don’t have a choice and we have to switch somewhere. So what are the alternatives one day before the google shutdown ? 1) Feedly : http://cloud.feedly.com/#latest I hate it .. no really it is HELL of a BUGGY .. it doesn’t mark my blog posts as read.. it requires some crappy plugins that will fetch the articles in the background otherwise it is not working, the android app is peace of buggy shit with some promotional popular craps and no real full article view for tablets. It is amazingly bad.. it looks shiny but it is shit, it requires login on all your machines each time when you make changes between the machine (work, home, phone). It is unusable even when it looks good : It looks good but it is not an alternative.. no my friends its peace of crap that just wants to steal some google reader users. 2) AOL reader : h...