deps.edn and monorepos V (Polylith)
This is part of an ongoing series of blog posts about our ever-evolving use of the Clojure CLI, deps.edn, and Polylith, with our monorepo at World Singles Networks.
This is part of an ongoing series of blog posts about our ever-evolving use of the Clojure CLI, deps.edn, and Polylith, with our monorepo at World Singles Networks.
Last year, AMD-based instances came into existence on Amazon Web Service’s (AWS) Elastic Compute Cloud (EC2). AMD brought a slight performance decrease and a reasonable price discount. CF Webtools is mostly website focused, and almost all of our servers have no problem going with that decreased performance metric. Since EC2 was created, they’ve used abbreviations, […]
From: Chris Tierney
With the recent release of tools.build, I wanted to provide a quick example of using it for a CI-like pipeline.tools.build is focused on "building" things and when the subject has come up on Slack, the feedback has been that the CLI already has a good story for running tests etc, and the consensus seems to be that running multiple CLI commands is the intended usage.
It's been a busy month here at CF Webtools. We have an abundance of opportunities and we are currently hiring at least 4 or 5 folks right now. If ColdFusion is a core skill for you we are probably interested regardless of what else you bring to the table. Here's is just one of the projects we are working to fill. Coldbox Conversion Take an existing legacy site running Fusebox 5.5 and migrate it to ColdBox. Along with the migration you will need to build a data mapping and migration tool allowing the customer to move customers in a granular fashion from one schema to another. All this to enable seemless operation for the customer as they upgrade. So this task will need ColdFusion (of course) Coldbox (natch) and at least a passing familiarity with the later version of Fusebox - or enough confidence to be able to unpack it. You'll also need some UI skills and some MSSQL server skills. Speaking for myself I used to dig this exact sort of thing. If it sounds like your jam send a resume. Don't let that stop you Hey if coldbox isn't your deal but you are still a core developer in ColdFusion send your resume anyway! We have a wheelbarrow full of opportunities here and we are ready to hire - good pay, good benefits, incentive programs, fun atmosphere, good work life balance and a company who cares about developers. You could find a home here! More of the Skinny There's some stuff we need you to be able to do in order to be hired. Must be able to set up and maintain your own dev environment including stuff like apache or IIS. In many cases you have to set up more than one environment. Must be able to set aside your tech dogma and do things as required sometimes. If you are a "only this way is the right way" developer, we may be a bad fit for you. We work with dozens of clients who have succeeded using all sorts of approaches. Our eyes are open. You should be able to work with SVN or GIT and possibly a few other source control products. Yes we are aware that one of these things may not be like the others. Thank you Grover. You should have a gentle sense of humor that blesses and encourages people. We interact with respect and good natured ribbing, but we don't cross the line - indeed we try to stay a good ways back from it. We love and encourage each other. We are striving for an inclusive and caring culture. You should routinely maintain and enhance your skills set - you will be given the opportunity to work on lots of code, different versions, platforms, integrations, libraries, and SDLC organization and procedure. Every one of these is a growth opportunity. If that just made you say "ooh!!" then we are a good fit. You should either have or be seeking balance - We like devs who have a full life. If you enjoy fencing, equestrian sports, skydiving, guitar playing, dog training, macrame, Golf, racquetball, Mandarin, Politics (careful!), family outings, child-rearing, school plays, choirs, baking (all activities enjoyed by folks on our team) then we think those things make you a better developer! We are not looking for folks who can't put down their laptop and smell the roses. It's not about our profit margin, it's about creating margin for YOU to enjoy life and family. Contacting the Muse If you want to take a shot send your resume to jobs@cfwebtools.com or call (402) 408-3733 ext 105 and ask for the Muse or ask Rachel (who will probably answer) how to apply. She'll fill you in. Meanwhile, here are specifics on some other jobs we are trying to fill. ReactJS and Golang We have a high-quality 4 person team working on a great product. React and Go are a part of the product stack and we are looking to add some additional devs to that team focusing on react/go. If you have both of those - your hired! Wait... I'm being told by my exec team I can't say that. We have to interview you first. Still, it will be a real plus if you have both. But even if you only have one of those languages in your toolkit, give me a shout and we'll chat about it. Some additional info: ReactJS 16.8 - experience using React hooks would be a major plus. Main dev environment should be a MAC or Linux Docker expertise (for Golang especially). Experience writing Golang LAMDA would be a plus as well if you are a Go person. (a Go-gert? Go-pher?) Scrum team with GIT, QA, functional specs and the whole nine yards, so the ability to work in sprints on a team is important. We always look for high communicators. We'll even take oversharers. Folks on this team really love it. It's engaging and interesting and contains ginormous brains who love to share and noodle together. CF + VueJS We have a fantastic opportunity for someone who is an advanced ColdFusion developer (proficient and knowledgeable - we'll test you), and is also expert in: Docker - deploying and using containers and an understanding of how to deploy and develop. VueJS The usual ColdFusion things - writing secure code for the DB, sanitizing user inputs, familiarity with frameworks, scoping, and code organization etc. Some AWS knowledge will be helpful as well, but we have a full-time AWS team so don't sweat that one too much. But wait there's more There are several other opportunities we are working to fill. We are at a point where many companies want us to step in and do our magic. All we lack at this point is some additional folks who love ColdFusion and are ready to go. Join us!
From: ColdFusion Muse
This is part of an ongoing series of blog posts about our ever-evolving use of the Clojure CLI, deps.edn, and Polylith, with our monorepo at World Singles Networks.
Back in April, I talked about us dipping into Polylith at work in deps.edn and monorepos II, and also our planned migration away from clj-http. Since then, we've completed the migration to http-kit and we've also migrated away from clj-time (which is deprecated, because it is based on Joda Time). We've also started refactoring our subprojects into Polylith components. This is another periodic update on where we are in our journey.
A couple of months ago, I wrote about our use of deps.edn with our monorepo at work. I've updated that post to reflect changes we've made recently and I'm going to talk in more detail about those changes in this post.
We are looking for 3 possibly 4 folks to hire at the moment. All of our positions are remote work but you must reside in the U.S. with the right to work in the U.S. Read to the end - I'll try to keep you entertained. It will help if you think I look vaguely like Russel Crowe... I mean in Gladiator... not... not Russel Crowe now. But I digress. What is a CFWT Guru? As you know, CF Webtools knows all things ColdFusion - so if you are an enthusiast as well as a good CF programmer, we may be the place for you. But we are also hiring for sys-ops, Golang, ReactJS, and even C#/.NET - so there's plenty of opportunities right now. For you to thrive in our culture, here are a few things you should be able to do: You should be able to set up and maintain multiple local environments on your own with a minimum of assistance. This means if you are someone who has a "it-must-be-done-this-way" idea of programming (no judgment) we may be the wrong spot for you. ;) You should be able to work with SVN or GIT (and we probably don't need your apologetic discourse on why GIT is better). We love GIT as well, let's move on. You should be able to maintain a positive attitude - we interact with respect and gentle humor. We love and encourage each other. We are striving for an inclusive and caring culture. You should routinely maintain and enhance your skills set - you will be given the opportunity to work on lots of code, different versions, platforms, integrations, libraries, and SDLC organization and procedure. Every one of these is a growth opportunity. If that just made you say "ooh!!" then we are a good fit. You should either have or be seeking balance - We like devs who have a full life. If you enjoy fencing, equestrian sports, skydiving, guitar playing, dog training, macrame, Golf, racquetball, Mandarin, Politics (careful!), family outings, child-rearing, school plays, choirs, baking (all activities enjoyed by folks on our team) then we think those things make you a better developer! We are not looking for folks who can't put down their laptop and smell the roses. It's not about our profit margin, it's about creating margin for YOU to enjoy life and family. If this seems like a fit for you then read on brave adventurer. Job 1 - ReactJS and/or Go We have a high-quality 4 person team working on a great product. React and Go are a part of the product stack and we are looking to add some additional devs to that team focusing on react/go. If you have both of those - your hired! Wait... I'm being told by my exec team I can't say that. We have to interview you first. Still, it will be a real plus if you have both. But even if you only have one of those languages in your toolkit, give me a shout and we'll chat about it. Some additional info: ReactJS 16.8 - experience using React hooks would be a major plus. Main dev environment should be a MAC or Linux Docker expertise (for Golang especially). Experience writing Golang LAMDA would be a plus as well if you are a Go person. (a Go-gert? Go-pher?) Scrum team with GIT, QA, functional specs and the whole nine yards, so the ability to work in sprints on a team is important. We always look for high communicators. We'll even take oversharers. Folks on this team really love it. It's engaging and interesting and contains ginormous brains who love to share and noodle together. Job 2 - CF + Node/VueJS We have a fantastic opportunity for someone who is an advanced ColdFusion developer (proficient and knowledgeable - we'll test you), and is also expert in: PostGresSQL - this is more than "Oh it's a lot like MySQL" - that'll get you a mild eye roll from the muse. You should have experience with the platform. Docker - deploying and using containers and an understanding of how to deploy and develop. Node/VueJS The usual ColdFusion things - writing secure code for the DB, sanitizing user inputs, familiarity with frameworks, scoping, and code organization etc. Some AWS knowledge will be helpful as well, but we have a full-time AWS team so don't sweat that one too much. Job 3 - the Fireman FYI we are almost always looking for this person. You should be a genuine CF expert and a 5 star problem solver who loves to dig in and fix things, save customers from disaster, and enjoy the plaudits and wonderment of your peers as you save their bacon on a daily or at least monthly basis. Ok I'm probably overselling it, but we do need that ColdFusion Jack-of-all-trades. If you like to have your fingers in multiple projects and you like engaging with several teams on different levels then this may suit you. Some more info: Confident switching enviornments - CF versions, platforms, frameworks, JS libraries, DB platforms etc. You know you can figure it out. Front end expertise - you can take a design template and implement it - maybe even fiddle with a PSD file. Bootstrap and jquery are in there too - the ubiquitous front end tech we see everywhere. Strong CSS skills would be so so helpful here - you are the answer to the question, "can anyone fix my dynamic width problem?" Expertise with any or all of: Mura Coldbox Commandbox Fw/1 Commonspot extJS (modern) DBs other than MSSQL - MySQL, Oracle, PostGresSQL etc. We have lots of clients with ever-changing needs, and this position will bring constant new clients and constant new challenges (and an opportunity add new technologies to your tool belt!), as well as high interaction with the CFWT team. One more note on the job 3 post. CFWT has been lacking in this area since we lost CF giant, Wil Genovese. He passed away last December and we miss him dearly. If you feel like you have his abilities and (especially) if you like to write blog posts, help the community, and rise to the level of CF Guru (if you are not already there - looking at you Charlie), I would entertain a special position on our staff. I've been searching for this person for some time. Maybe it is you! MVC Razor We have an opportunity to take on a long-term partnership with a new product that uses MVC razor in the stack. While CFWT checks a lot of boxes already, this is one we still have to find. It's .NET using C#. This is for a well-funded version 1.0 product with great prospects that already has a user base. We expect it to fly quickly. So you could be a key player in a new leg of business for CFWT. If you have .NET C# experience give me a shout - even if it's ancillary to your core skill set. We can perhaps find a way to make it work. Contacting the Muse If you want to take a shot send your resume to jobs@cfwebtools.com or call (402) 408-3733 ext 105 and ask for the Muse. If my exec assistant Rachel gives you a blank look (or sound) don't worry, she calls me Mark around the office so she may not know what you mean. Meanwhile, I look forward to hearing from you!
From: ColdFusion Muse
Restoring a SQL Server database to a new server with a different file system structure can result in a Directory Lookup error since SQL Server makes assumptions about file locations. Fortunately there is a simple solution by using 'WITH MOVE'
Our Clojure team is a big fan of reducing dependencies and, in particular, avoiding dependencies that are known to be troublesome (such as the special circle of hell that is all the different versions of the Jackson JSON libraries).
What happened with the blog and whats next
We're using RabbitMQ and its Web Stomp plugin for websockets for several projects at work. Using a Stomp.js library in the browser, our app users connect and subscribe to topics using their username and JWT, which we validate using a custom HTTP back end auth in Rabbit. I've recently written a rest-over-stomp module for ColdBox MVC which allows you to push the response of any Coldbox event or API call out over a websocket channel to any browser listening on that channel. This allows for the following Browser can request data and receive it async Any random server-side process can simply decide to push fresh data out to browser Each user subscribes to a custom topic specific to them (via permissions enforced by my custom HTTP backend auth) so I have a direct data bus to any users's browser Unlike Ajax calls, there is no HTTP/TCP negotiation of each request since the websocket is a persistent connection to the server
From: Coders Revolution
At World Singles Networks llc we have been using a monorepo for several years and it has taken us several iterations to settle on a structure that works well with the Clojure CLI and deps.edn.Updated April 21st, 2021 to reflect recent changes in our setup. See deps.edn and monorepos II for more details.
A few days ago, Joseph Lamoree posted about a cool little command line tool he wrote in Python that would scan a list of servers check check for a public facing administrator. I thought this would be a great example to compare and contrast writing the same simple command line tool in CFML using a CommandBox task runner. Here is what I came up with
From: Coders Revolution
In this tutorial, you are going to learn how to build a full-stack application that uses Vue for the frontend and Spring Boot for the backend.
From: Dan Vega
Here's a quick one that I tried out for the first time today. Someone asked if it was possible for a CF app to have a desktop notification on the server it's running. CommandBox servers have a try icon that runs inside the JVM of the server that can create popups and even Swing windows. Turns out, it's actually really easy to tap into this to get a toaster popup on your desktop.
From: Coders Revolution
In this tutorial, I will show you can force a delay in a web application for testing purposes.
From: Dan Vega
In this article, I have some exciting personal news to share and I want to take a look ahead at the new year.
From: Dan Vega
In this tutorial I will show you how you can test standard in and out in Java.
From: Dan Vega
Our friend and colleague Wil passed away a few days ago after a hard-fought battle with cancer. Wil worked for CF Webtools for almost 10 years. His devotion and expertise are irreplaceable. He has posted on this blog frequently and was a frequent writer on his own excellent blog at Trunkful.com. His role here was as a senior architect and knowledge expert. His influence was felt throughout our staff. CF Webtools is a company built on people and a certain culture. We have 4 core values that are a part of our DNA as a company - Caring, Competence, Communication, and a Can-do spirit. Despite the alliteration, these are not "aspirations". They are what make us tick from the top down. Wil exemplified all these attributes in our company. He cared about our customers and his co-workers. He was excellent at communicating his wealth of knowledge - indeed, probably half of the entries in our large internal Wiki were written by Wil. I trusted him to handle a sticky problem and find a solution. When it came to solving problems, Wil had determination. He was stubborn! And he thought around corners in a way that always reminded me of me. As a man, Wil was larger than life. He was funny, affable, and generous with his time. He loved cigars, good food, good bourbon, and his jeep. He was gentle with big-hearted self-effacing humor that always made us smile. He died too young, but during the time we knew him, he lived well - loving and honoring those around him, building friendships, and adding joy to those he knew. May the same be said of all of us. We at CF Webtools will miss him dearly.
From: ColdFusion Muse
For about a decade, I used to speak regularly at conferences and user groups around the world. In 2013, I decided to take a break and just enjoy attending events (here's a small selection of my presentations covering the last three years of that decade).
This week, I’m speaking at the ColdFusion Summit 2020 about “Building Serverless ColdFusion Applications with cflambda.” cflambda is a new release from the Adobe ColdFusion team that’s part of ColdFusion 2021 and which lets you write AWS Lambda functions in ColdFusion. There are a number of resources referenced in the presentation that I’d like to share in this post:
From: Brian Klaas
I've written before about how I switched from Emacs to Atom at the end of 2016, where I initially used ProtoREPL (which is no longer maintained) and then I switched to Chlorine at the end of 2018. I've been very impressed with the work that Mauricio Szabo has done on Chlorine, adding a way to extend the functionality using ClojureScript so that you can add your own commands -- as I do in my atom-chlorine-setup repo so that I can easily work with Reveal (and previously with Cognitect's REBL). I've posted a few Atom/Chlorine/REBL videos to YouTube showing my workflow.
seancorfield/next.jdbc 1.1.610Updated 2022-09-12 to clarify camel-snake-kebab usage in more recent next.jdbc versions.
Share this snippet from my archives for adding a JQuery Validate rule which disallows any date greater than today