Working Code Podcast - Episode 110: Measuring Impact At Work
Ben Nadel and the crew talk about measuring productivity at work; and, what makes a day good or bad....
From: Ben Nadel
Ben Nadel and the crew talk about measuring productivity at work; and, what makes a day good or bad....
From: Ben Nadel
Here's a heads-up that some will want to hear about: there are new JVM updates released today (Jan 17, 2023) for the current long-term support (LTS) releases of Oracle Java, 8, 11, and 17, as well as the current interim update 19. (Note that prior to Java 9, releases of Java were known technically as 1.x, so 8 is referred to in resources below as 1.8.) TLDR: The new updates are 1.8.0_361 (aka 8u361), 11.0.18, 17.0.6, and 19.0.2 respectively). For more on each of them, including what changed and the security fixes they each contain (including their CVE scores regarding urgency of concerns), see the Oracle resources I list below. Oracle calls them "critical patch updates" (yep, CPU), but they are in fact scheduled quarterly updates, so that "critical" nomenclature may be a bit overstated. And as is generally the case with these Java updates, most of them have the same changes and fixes as each other, though not always. Update: After posting this, I learned of some rather surprising implications of a new feature of the new JDK installer. For more, see another post I created. For some folks, that's all they need to hear. For others, read on for topics like: Finding more info on these Jan 2023 Java updates What about other JVM distributions besides Oracle? News for my CF audience (getting the Java updates from Adobe or Oracle, how to update, why you should NOT for now use Java 17 with CF, etc) Should you apply the update? how soon? Beware a change in the Oct 22 JVM update regarding Java no longer trusting jars signed with SHA-1 Beware a change in the April 2021 JVM update, if you may be skipping over it Wrapping up, getting more help [More]
Eric Peterson and Dan Card host this week’s CFML News Podcast To listen or subscribe to the podcast visit our site Or watch the video replay on youtube: They discuss a qb 9 beta release Webinars / Meetups and Workshops – Ortus Fridays back in January 2023 including Grant Copley talking about CBWire, and share the recording for the Mid Michigan CFUG meetup with Ray Camden talking about Alpine.js Conferences They updated everyone on CF Summit Online. Including links to […] The post Modernize or Die® – CFML News Podcast for January 17th, 2023 – Episode 180 appeared first on ColdFusion.
From: Adobe Coldfusion Blogs
Ben Nadel dynamically instruments his ColdFusion component methods with `getTickCount()` calls in order to locate performance bottlenecks....
From: Ben Nadel
Ben Nadel demonstrates that form attributes can be overridden by submit buttons in native HTML....
From: Ben Nadel
Ben Nadel shares his ColdFusion port of the CUID2 library, which provides collision-resistant IDs that are optimized for horizontal scaling, security, and performance....
From: Ben Nadel
Ben Nadel looks at the performance overhead of calling `createObject("java")` in ColdFusion and is delighted to see there basically isn't one....
From: Ben Nadel
Matt Cavender, the Working Code podcast editor, shares his favorite clips from 2022....
From: Ben Nadel
Gavin and Daniel host this week’s CFML News Podcast To listen or subscribe to the podcast visit our site Or watch the video replay on youtube: They discuss a Mura Security Notice, and the CBWire v2.2 Release Webinars / Meetups and Workshops – Ortus Fridays back in January 2023 including Grant Copley talking about CBWire, and Mid Michigan CFUG meetup with Ray Camden talking about Alpine.js ConferencesThey updated everyone on CF Summit Online.They discussed upcoming conferences including VueJS Nation, VueJS […] The post Modernize or Die® – CFML News Podcast for January 10th, 2023 – Episode 179 appeared first on ColdFusion.
From: Adobe Coldfusion Blogs
Ben Nadel demonstrates that Hotwire Turbo Drive requires non-200 status codes when processing failed form submissions in ColdFusion....
From: Ben Nadel
Happy New Year Everyone! I started writing this after my first day at work in 2023, and have been tweaking it for the past week. 2022 was a rough year. My focus has been pulled in many directions, and I'm glad to be starting fresh. Here are some a lot of thoughts about the last year. Blog Stats Here are some stats from the blog: I wrote 57 posts last year, which is more than one a week. Despite this impressive number, my posts were very sporadic this year. Family health issues, including my own bout with COVID, forced me to juggle my schedule and I was not as consistent in my weekly posts. I overcompensated later in the year to make up for lost time. My most popular post was on Angular, about a bug when upgrading from Angular 12 to 13 I had 38,000 total views, which is not too shabby. I wrote a lot about Angular and TypeScript, comprising more than half the posts I wrote this year. No surprise, since I deal with that stuff a lot. I want to redesign the blog to something more modern and responsive, but I'm not going to promise to do that because other things keep taking precedence. After writing weekly posts for over 7 years, I'm going to make a big change, I'm going to focus on fewer, longer posts instead of a larger number of shorter posts. I hope it will allow me to drill deeper into specific topics. YouTube Stats I finally got vanity URLs for both my personal YouTube Channel and my DotComIt YouTube channel. For DotComIt, I had 23.4 thousand views and over 62,000 minutes. These are pretty cool numbers. Music I hooked my Alexa devices up to my Spotify account, and it plays a lot of random stuff. As such the bulk of bands in my instafest are ones I've never heard of. On my own musical journey, I wrote 16 new songs for February Album Writing Month, hiding away in my home studio. Some friends are encouraging me to start releasing stuff, but I'm not sure I want to take on yet another side project. What do you think? For the moment, I've turned my attention to digitizing my cassette collection. These are a lot of "one of a kind" tapes of bands I was in, or bands I recorded that I'd like to be able to listen to or send back to the band in question. It is a fun side project, and I just had to replace all the belts in the cassette deck to continue on. Books My Learn-With Series is going strong. I've updated it for both Angular 14 and Angular 15 this year. I expect to continue to update it as new versions come out. Most recently, I added a new chapter to the programming bonus books all about Angular's Standalone Components. My writing exists primarily so I can explore new ideas. My favorite part is adding new chapters about new approaches. The fact that I can make some extra cash on the other end is a bonus, although I struggle to keep the business profitable, since consulting is no longer my primary source of income. Thank you for all the continued support. Mailing List I'd love to say I continuously send monthly emails, but in 2022 I only sent 5 newsletters. That is not the consistent cadence I wish I was at. Since MailChimp increased their prices for a mailing list of my size, I am looking for alternate, cheaper, options. Family I mentioned family health issues earlier in this newsletter. Well, in early 2022, my mother-in-law moved in with us on home hospice care, eventually passing in late summer. That was a major life change that hit us overnight. I also got COVID for the first time. It knocked me out for a few days, and I had a lingering cough for 6 weeks or so. It eventually dissipated and I'm fine now. Career DotComIt has taken on very few consulting clients, since the bulk of my time goes to a day job now. As such, DotComIt is not currently profitable, as the book sales are not high enough to cover things like web hosting. I'll be having a conversation with my account and legal team to figure out the path forward. I don't want to stop writing blogs or publishing books. I stepped into a management position on my current project, which is a radically different skill than programming. I'm figuring it out and taking up all the training they can throw at me. Final Thoughts I'm honestly not sure what to expect from 2023, except a lot of recovery and a lot of house cleaning. My career and writing will continue as it always does, and I'll continue to adapt to new things. What are you planning for the 2023?
From: Jeffry Houser's Blog
Ben Nadel demonstrates how to flatten a deeply nested array using recursion in ColdFusion...
From: Ben Nadel
Ben Nadel demonstrates how to use the CFLoop tag to iterate over Function arguments as both Structs and Arrays in ColdFusion....
From: Ben Nadel
Ben Nadel looks at different ways to flatten an array in ColdFusion....
From: Ben Nadel
We're looking for a CFML Developer to help with a new project. It should be pretty steady work for at least the next 3 months, possibly longer if all goes well.
From: South of Shasta: Software Development, Web Design, Training
Ben Nadel gets Hotwire Turbo Drive working with ColdFusion .cfm file extensions after switching to .htm and enabling URL rewriting....
From: Ben Nadel
Happy New Year! I want to take a few minutes and talk about a few of my priorities as we head into the new year.
From: Dan Vega
In this article I am going to spend some time reflecting because I believe it's a good reminder of the good and the bad as I began to set some goals for next year.
From: Dan Vega
Eric Peterson and Daniel Garcia host this week’s CFML News Podcast To listen or subscribe to the podcast visit our site Or watch the video replay on youtube: They discuss a Gold Patreon – Tomorrows Guide and their job offerings. https://www.tomorrows.co.uk/jobs.cfm Webinars / Meetups and Workshops – Ortus Fridays back in January 2023 Conferences They updated everyone on CF Summit Online. They discussed upcoming conferences including VueJS Nation, VueJS Amsterdam, VueJS Live, Dev Nexus 2023 and ITB 2023 and CFCamp […] The post Modernize or Die® – CFML News Podcast for December 27th, 2022 – Episode 177 appeared first on ColdFusion.
From: Adobe Coldfusion Blogs
While updating Learn With Series for Angular 15 I can across an odd issue. I installed ng bootstrap and ran it in the browser, and got this issue: That is a pretty clear error, and how to solve it, I thought. Great. So I ran the command: ng add @angular/localize At my console, and was surprised at the response: NG Bootstrap thinks that it needs this new library to be added. Angular thinks it is already installed. What happened? When Angular 15 came out, they removed the polyfills file entirely. Polyfills are now added in the Angular.json file. I had to set up the localize polyfill manually. Open up Angular.json file in the root of your project, and search for polyfills. You should find them at project.myproject.architect.build.options, and it probably looks something like this: "polyfills": [ "zone.js" ], Just add your new polyfill: "polyfills": [ "zone.js", "@angular/localize/init" ], Restart your Angular CLI and you will be off to the races.
From: Jeffry Houser's Blog
In my previous post I blogged about truncating content in a DIV only using CSS. I wanted to revisit that and show you how to add a tooltip to that same truncated div using CSS. The theory is that if you truncate the text, you'll want the user to be able to see the full text. One way to do that is by adding a tooltip. I was surprised that divs don't intuitively support tooltips, but I did some searching and . found a cool way to do it.. I'm going to build off the example from my previous post, so we can assume we already have a div with content that is truncated. Now let's add two new CSS elements. One for tooltiptrigger, and one for tooltiptext. First, add this: .tooltiptrigger .tooltiptext { visibility: hidden; background-color: grey; color: white; position: absolute; z-index: 1; } Here, we're creating a CSS hierarchy where the tooltiptext must be inside the tooltiptrigger. The tooltiptext is hidden by default, has some background color in grey, and some foreground color in white. The z-index is set to 1 so that it shows up on top of other elements of the page . And finally, the position is absolute. Let's add another set of CSS: .tooltiptrigger:hover .tooltiptext { visibility: visible; } This means that whenever we hover over the tooltip trigger, the tooltiptext will become visible. Let's go back to the HTML This is something with a lot of text. The Quick Brown Fox Jumped over the Lazy Dogs. The whole purpose here is to extend the text beyond multiple lines with a lot of space so that we can demonstrate truncating it inside a div that has multiple lines and extra dots. This is something with a lot of text. The Quick Brown Fox Jumped over the Lazy Dogs. The whole purpose here is to extend the text beyond multiple lines with a lot of space so that we can demonstrate truncating it inside a div that has multiple lines and extra dots. The hierarchy of the HTML is that the tooltiptext is nested inside the tooltiptrigger div. The truncated text will show the tooltip when we roll over it. I do not like that we are replicating the full text in two sections here, but if we were building something in a single page framework, or generating the HTML from a service we could easily solve that. Run this code: And now rollover the text: Walah! It works. What I did not devote time to placement of the tooltip, but we could easily do so using CSS positioning elements. Play with it over on Plunker.
From: Jeffry Houser's Blog
I've been working on a project where we have a big description field that we want to display to our users. The field is of indeterminate length. If it expands beyond the scope of our allotted space in the UI, we want to automatically truncate that and show an ellipse. How do we make that work? Some CSS magic. First, let's create a div with a lot of text: This is something with a lot of text. The Quick Brown Fox Jumped over the Lazy Dogs. The whole purpose here is to extend the text beyond multiple lines with a lot of space so that we can demonstrate truncating it inside a div that has multiple lines and extra dots. Nothing special about that. Let's add some magic CSS to force the text to truncate: .truncatedDiv { display: -webkit-box; -webkit-box-orient: vertical; -webkit-line-clamp: 2; overflow: hidden } We're using a lot of weird properties. What is going on here? First, we set the display property to webkit-box. This is a special, experimental display version built for web kit. It is, however, supported in most browsers. The webkit-box text prepends the following properties. Next, we use webkit-box-orient which tells us which way the text flows. The webkit-line-clamp property tells CSS at what point we need to truncate the text. In this case, right after line 2. Finally, we add overflow: hidden to make sure the text after our second line is truncated. It should look a bit like this: I experimented a bit with looking for ways to do this without using the webkit-box, but did not see anything as easy or trivial. Play with the code here
From: Jeffry Houser's Blog
I've mentioned in several posts over the years that I switched my development setup from Emacs to Atom, initially with ProtoREPL and later with Chlorine, and then to VS Code, initially with Clover (a port of Chlorine) and more recently with Calva. There were several detours along the way, but that is the overall arc.I've also mentioned a couple of times that I use Portal now, as an extension inside VS Code (after previously using Reveal and, before that, Cognitect's REBL).I've also published my VS Code and Calva setup files on GitHub.But I haven't really talked about what that experience is like on a day-to-day basis or any specifics of my integrated workflow.
I threw together this video about using Volta with multiple NodeJS projects. This video felt a bit haphazard, as it is still pretty new to me, but I learned a bit while recording it and that is good!
From: Jeffry Houser's Blog
CF Webtools has maintained VMWare ESXi guest OS instances, managed by vCenter, for about 7 years. They are a mix of Linux and Windows Server OSs and are maintained at a secure and redundant co-location data center. While an expensive up-front investment, it has paid for itself over those years, and we have a plan […]
From: Chris Tierney