In an effort to keep up with the explosion of browser-side single-page web technologies in recent years, I’m starting a side exercise to understand the differences in approaches of each.
Create a simple web program that produces a page that we commonly use at work:
A side by side Grid/form combination, that loads data from a web service. I’ll use whatever web service technology is complimentary to the technology.
It’ll look something like this…
- March: angular (I’ve been hearing about angular the most of late – I figured this would be a good leadoff)
- April: ember
- May: hoplon or pedestal (Whatever the clojurescript community is gravitating to more come May)
- June: dart
- July: meteor
- August: gwt (I know, I already work in this, but I figured I’d have some new ideas in it by the time I get through all these. Also my hope is that it will have lambda support to try)
I’ll try to use the most appropriate web service layer for the task. Some of the libraries above come with a web service technology, others I’ll use what seems to fit (angular->node)
The plan is to take notes and blog what I find, with the hope that others will find it of some use.
For those that don’t know much about Clojure, its a Lisp dialect – Lisp being a program language that’s been around for over 50 years. It seems the defacto development environment for Clojure (and other Lisps) is Emacs (as its Lisp based itself). So anyways, on my own time, I’m taking up the emacs editor and starting some Clojure hacking (hence the time machine needed). Since I’m a front end guy at heart, I’m looking at Pedestal – a new open source web app library built entirely in Clojure.
I’m excited about my dolorean trip. I think it’ll do a few things for me…
- Get me good enough at emacs to speed up my coding workflow
- Understand some of the ideas behind another web application library, and possibly feed back ideas in our current we app environment (and vice versa)
- Learn Clojure!
- Give back to open source (if I can get around my current company’s restrictions around it)
- Be fun
P.S. I see there’s a Clojure/Pedestal meetup this month… I’ll see if I can show up and learn from/with some folks that have been soaking in clojure a while….
Where are you your most productive? I feel I get in my best flow in a public place with wifi and some headphones. That mix of background chatter and lack of interruption really does the trick. It seems like research backs me up on this. So the nice little trick I’ve been using these days is a website called Coffitivity. It simply simulates noise from a coffee shop. Pair this with music just slightly higher in volume and you are good to go!
(written with Coffitivity and Pandora in the background
Ever since my heart was broken by Google, I’ve been looking for an alternative. I’ve tried a few, but I think I’m going to land on “The Old Reader” for a while. It has the features that Google had, plus it has social feature that google dumped, such as the ability to share posts and follow people. Anyways, just wondering if anyone else is using so I can play with some of the social features…
So its half way through the month of February and I wanted to get back posting to my external blog. One of my goals for this year is to get blogging externally, and that hasn’t quite happened yet, so I’m pushing myself to get off my rear to do so.
It’s been a productive year so far professionally I think. One of the focuses of my spare time is to get a UI asset sharing platform off the ground at my work. This has caused me to dive into customizing Jive to serve as a collaboration platform for UI developers looking to see what assets other teams are creating within the bank. Many of us develop similar types of web applications and there is some degree of duplicated effort. My thinking is a collaboration platform paired with distributed source control (Git), paired with a community that meets and discusses this stuff will go a long way.
I continue to look to consume knowledge, to grow as a developer. I’ve taken to listening to podcasts at night while I work out. Some that I’ve really enjoyed include Relevance, FLOSS, Pragmatic Podcast, and Software Engineering Radio. Its really interesting to hear about other technologies, as well as how others approach software development.
I feel like I have a lot going on and its a fun time to be a software developer. Now I just need to bring myself to work out loud a bit more;-)
In thinking about resolutions around 2013 (assuming there will be a 2013;-), I want one of my focuses this year to be around improving my craft as a software developer. I’ve been reading Apprenticeship Patterns by Dave Hoover, and its got me thinking about my path as a developer, and motivated me to think bigger picture. Here’s a list of things I want to do next year around improving my craft…
- Participate in an external industry group - Believe it or not, there are some really good ideas out there, and companies that do software much better than we do. I’d like to seek this out and get to know others in the craft.
- Contribute to or create an externally open source project - I see this as a way to grow my software development skills, as well as to get to know others working in the same technology domains.
- Blog more externally - I’ve picked up my internal blogging this year, but I’d like to test my ideas on a bigger scale.
- Go to a development conference - I went to a couple of software development conferences while I was at IBM, and they ended up being great opportunities for inspiration and growth. I am likely not going to get this paid for by DB, but it may be worth spending my own dime. Doesn’t mean I won’t lobby for it though:-)
- Expand mentoring and coaching - To me this is important. Meeting with someone regularly is a great way to accelerate and focus learning. I would like to continue investing in others, as well as find others that challenge me. I’d also like to encourage is more in the lab. We have some pretty awesome professionals around here in Cary, as well as some excellent new grads… Seems logical to pair!
- Spend dedicated time per week reading and learning - This is a responsibility of a professional software developer. Uncle Bob gave the analogy of a doctor – you’d hope that your doctor is reading medical journals and researching on his down hours – so should we. When things get aggressive, its easy to drop this activity… You have to be disciplined in your planning and time to keep this.
I’m pushing a grassroots effort in Deutsche Bank to promote GWT widget sharing. There are many teams that develop web applications using Google Widget Toolkit. At the same time, there are UX teams designing great widgets to solve problems and producing common style guides and other efforts to get look and feel common across the bank. This is great, but it shouts for code sharing of Ui artifacts so we aren’t duplicating effort all over.
There’s been attempts to have internal groups provide widgets to the company, but this approach is wrought with problems. The same thing was done at IBM and I saw the same issues with the approach. Team depend on an external group responsible for a toolkit. The toolkit faces headaches for teams, such as lagging behind the latest technology, being in conflict with, or not going far enough to meeting team needs, development standards not enforced, the internal budget issues, and differing goals from dev teams that use it, just to name a few.
I think the solution is something more grassroots from the project teams. How about a marketplace of assets and ideas. Each team can browse it and pick what would benefit them. Here in RTP we have several teams that develop GWT and have begun doing just this: meeting and talking about the UX design problems we are tackling with GWT. We are showing off the widgets we created, and we are now putting together a platform to share GWT widgets within the company. We want to make the platform the right way, using many of the same reusable artifacts we are sharing.
These widgets would be as-is at first, but an open source model may be a future expansion. I’m also pushing for the platform itself to be open source. Since this is a grassroots thing (started by us, the developers on our off hours and spare time), it would be cool to give back and see it benefit others.
We are still in early stages, but I will keep you posted.