Wednesday, 21 January 2015

Light Table

Ok after some work with it I have to say that it's really one of the easiest IDE to start with Clojure.
The auto complete is very well done and is the only ide that make possible to start trying clojure without any issue with the IDE.
ps: if you create a leiningen project LightTable will use the clojure version that you set in it, by default it will instead use the clojure 1.5.1

Monday, 19 January 2015

Clojure Ide: LightTable

Ok it has been some time since I start using clojure.
I have to restart... and what is better than starting with the IDE.
I want to give LightTable a try again, it was interesting last time I tried it.
It's open source (under MIT) and I like the design.
Here the first problems I find, I'm used to projects, so I would like to see a "Start new project" or something like that. Instead in LightTable you don't have that. Actually you don't have either a way to start easily a clojure project....
Ok let's read docs..
"With Clojure...
  1. In the view menu click the commands item (or press Ctrl+Space)
Where is the commands item....., ok I go with the Ctrl+Space, but I don't like when they point me to something that don't exist...
Ok after a little (10 minutes... not so little) I was able to figure out how it works, you create a folder, then you open the folder and it become your workspace.
Actually I would have like a way to create a workspace (also if is a folder), it not so intuitive to open a workspace "folder", just remove the workspace name and I will be happy :D
But ok I have created the first 'workspace' now I will have to refresh my clojure memory. See you soon.

After a while:
Delete file --- double confirm by default.... not user friendly

ps: I will do the cms in a way that people that are reading a post will be able to see if is a 'Real Time post', I like to write while I'm doing things, it helps me  remember things, and this can be interesting if I also have a chat on right where people can ask me for things... I will do that

After another half an hour:
Sorry, LightTable is out, I want to change the clojure version, I can't find a way.
Sorry for that, I like the design but is not user friendly.

15 minutes after:
Installed Leiningen, created a project, opened the folder with LightTable, ok the clojure version is the one I set in the lein project file.... let's go ahead and continue with LightTable (it remains that it's not very user friendly)

Clojure + Clojure Script CMS

Ok after some feedback on my journey I have decided that I will go with a Clojure + Clojure Script site. Stay in touch I will try to do little steps each day to obtain the result. The things I will use to start:
  • Compojure (first I thought ring)
  • Bootstrap
For now I will go with this. I will try the best approach I can think:

Do easy thing first, cover everything with tests, use more tools only when needed

Every comment or help in any post will be accepted with gratitude. I don't think there is a full written history of a new clojurer that try to do something, I hope this will help understand what can be improved in Clojure to help people start using it.
Have a nice evening, post to you soon.

Friday, 16 January 2015

Clojure in a working from home company.

I'm happy to see that some experts are starting reading my blog. This is why I started this in first place. Now I would like to raise a question for anyone that is reading. In normal company is easier to check how people work, help them improve in the way code is written and help them improve as programmers by making in-company seminars and things like that.
Working in a remote company I have the feeling that this is very hard to accomplish. This is why, even though my love for clojure became bigger every day, I feel that static compilation is great when you work on a remote company. For example the biggest problems we have are on our front end, build on groovy. Groovy really is great for front end and thanks to its DSL is also great for database querying.Its dynamic nature help a lot when you need to customize it for clients.
The real issue is that it isn't compiled, this cause often problems because people don't test their code (actually they don't ever navigate in pages they created sometime).
This is why I was investigating on a full stack of technologies that are statically compiled (Scala has also a way to create front-end in a static way, and its Objects can be even more restrictive than Java).
I will start this projects using Angular Js and Clojure-Scala-Java to see which one will be easier for people to mantain and read also from a remote location. What do you think about this? I really would like to listen from people that works every day with Clojure / Scala if they feel that these languages can help also in a distributed 'work' environment.

Thursday, 15 January 2015

Clojure, Scala, Java 8

Here I am, back finally after an interesting year. I changed my job, now I'm working for jBilling from home. Working in a remote company is a challenging experience, and in particular it let you understand that clean code (well written, full tested and easy to extend and change) is something that you can't live without. This year I want to start a project to search for the perfect software combination to create a complex project. Until now I have never started working on a personal project, now I think I'm ready. I will create a CMS. The idea is to try to reproduce the same things with 3 different languages, Java 8, Clojure and Scala in the backend. For the frontend I will go with Angular JS, that will communicate through Rest services to the backend. If you have any suggestion on the framework that I will have to use feel free to comment here. I would like to do something that will be interesting for anyone that is going to read this. Talk to you soon.

Sunday, 17 November 2013

Functional programming and Assignment 2

I've solved the assignment 2 in Scala, now I would like to prepare the same in Clojure but I'm a little disappoined. Reading inside the assignment 2 classes I can't find any without a mutable state.... where is the functional programming? I'll write the assignment 2 in a functional style way. But it will took me some time. Meanwhile I'm disappointed, the first Scala course was all based on functional programming and now after only one week it is disappeared. Can we use functional programming style, or on the first simple project we do we will use only imperative style and forgot about the functional part?

Tuesday, 12 November 2013

Week 2: Circuit Simulation, Functional Wires

Mmm actually I think that write Protocol and Record is not so so "Clojure's Style".
What do you think about this implementation?
I'm learning Clojure.. I'm not a Guru so I'm trying to always improve my "Clojure Functional Style".
I'll really appreciate any opinion you have on this!! :D