Many of my traditional blog post live on this site, but a great majority of my social-style posts can be found on my much-busier microbloging site at updates.passthejoe.net. It's busier because my BlogPoster "microblogging" script generates short, Twitter-style posts from the Linux or Windows (or anywhere you can run Ruby with too many Gems) command line, uploads them to the web server and send them out on my Twitter and Mastodon feeds.
I used to post to this blog via scripts and Unix/Linux utilities (curl and Unison) that helped me mirror the files locally and on the server. Since this site recently moved hosts, none of that is set up. I'm just using SFTP and SSH to write posts and manage the site.
Disqus comments are not live just yet because I'm not sure about what I'm going to do for the domain on this site. I'll probably restore the old domain at first just to have some continuity, but for now I like using the "free" domain from this site's new host, NearlyFreeSpeech.net.
The friendly Javascript for Cats tutorial recommends the Underscore.js library, which does look pretty useful.
One of the things that would get me using (and learning) more JavaScript would be the ability to take care of all the administrative things I do in (mostly) Bash, (occasionally) Ruby and (very occasionally) Perl using JavaScript via Node on the command line.
I have played a bit with creating and writing files in that environment, and I found the following posts to help in that effort:
2ality: Write your shell scripts in JavaScript, via Node.js (from 2011 but probably still relevant)
Via Shell scripting with Node.js on StackOverflow: I can't wrap my head around it just yet, but some suggest that Grunt can help in this effort
Also via Shell scripting with Node.js on StackOverflow: Commander.js - node.js command-line interfaces made easy
Dreamsys Software's JavaScript Shell Scripting Tutorial
Atlassian Developers: Building command line tools with Node.js
Trausti Kristjansson: Shell scripts in Javascript (Includes Replicating sed with Javascript and node.js – a Javascript shell script template, and Processing large files)
George Ornbo: Command Line Utilities with Node.js
Glynn Phillips: Command-line utilities with Node.js
Loyola Marymount University: Command Line JavaScript. Also worth checking out are the university's textbook, Programming with JavaScript: Algorithms and Applications for Desktop and Mobile Browsers, though it's hella expensive. On the department's main page, there are links near the bottom to more JavaScript resources.
I have a bunch of files in a directory, and I want to delete all that begin their filename with the letters X16 (e.g. X16data.xml)
I used Dir.glob to select the files and iterated over what comes up in the pattern, using File.delete to get rid of what I don't want (Thanks, Stack Overflow):
Dir.glob("X16*") do |file|
File.delete(file)
end
You can put any kind of regex in here, and it'll probably work. That's the theory anyway.
On my current project, I am trying to use using rubyzip to unzip an archive.
So far it's not working, and I'll probably shell out to Bash and Linux/Unix's unzip to get it done.
I figured it out. Now I have to manage the unzipped files (deleting the unused, renaming the good, then deleting the good at the beginning of the run) and account for NOT running the program if there is no file on the other end.
Cormen's "Introduction to Algorithms" (aka CLRS) looks hard. People who understand the material say the math involved is trivial, but I'm not anywhere near there.
So how do you get comfortable with the math before tackling CLRS itself?
A writer on Quora suggests reading a free textbook from an MIT open course called "Mathematics for Computer Science."
Others suggest that the appendix in CLRS serves as a guide to the mathematics needed to understand the rest of the book.
Another Quora writer recommends algorithm books by Sedgewick and Dasgupta (the latter available for free) as alternatives to CLRS.
How could I have missed this until now? Technology book publisher Packt Publishing offers a different free e-book every weekday.
I found out through Reddit, where Packt has its own subreddit in which it announces a new title every Monday through Friday.
The catch? You have to register with Packt to claim the e-books. It's just like registering for O'Reilly, except Packt gives out a ton of free books.
And each book is only available for a day. So you have to check the subreddit or Packt's Free Learning page every day.
And they're not the "sponsored" books that other publishers often hand out.
Instead, these Packt books are "real" tech books. They recently offered "Learning JavaScript Data Structures and Algorithms - Second Edition," by Loiane Groner, which I was happy to pay for a few days prior. (At least it was on sale).
But I've gotten a few books that really interest me over the past week. And you can manage them through your online account, downloading the formats you need.
Just like with O'Reilly (and with the Pragmatic bookshelf, Manning Publications and Leanpub), ordering through their websites instead of Amazon gets you a lot more flexibility (PDFs, epub, mobi) and often a better price. For me, it's worth it to get both the PDF and the Kindle version of the books, even if the indie publisher is charging a few bucks more than Amazon.
Some publishers, including PragProg and Manning, only sell their print books through Amazon. To get the ebooks, you have to go through them (and I am happy to do so).
While it calls itself out as old and out of date, I really like The Bastards Book of Ruby.
I recognize that Ruby is no longer the new hotness, but it's still so useful and, dare I say, user-friendly. For those reasons, I'd love to see updated versions of just about every book out there.
I'm using the old (as the hills) "Learning Ruby" by Michael Fitzgerald (2007, O'Reilly), The Pickaxe book ("Programming Ruby") from Ruby version 1.9.2 (2010/11, Pragmatic Programmers, though do I realize there is a 2013 edition).
The beginners books seem to be the oldest. At my level, everything seems to be working, so I will maybe complain a little less.
I do have a Rails book, "Rails Crash Course," by Anthony Lewis, that's much newer, but I'm not there quite yet. And there's always Michael Hartl's "The Ruby on Rails Tutorial", of which the more I see, the more I like.
I tend to learn things in programming when I have a problem to solve. This is just such a case.
I was working with a huge XML file, and I needed to trim elements out of it that begin with <generic tag> and end with </generic tag>, and include a random amount of text and other tags, across multiple lines, in between.
At first I tried using the Nokogiri gem, but it just wasn't happening. I was working on my Election Results script, and ... the election -- they hold it on a certain date, you know.
I would have to brute-force it. Like I always do.
My whole idea this cycle was to dump my giant sed hack from elections past and use mostly (if not all) Ruby to parse the XML I get from the state of California and provide the JSON output my fellow dev needed for the front end. (I also have a ton of fixed-width ASCII from Los Angeles County to deal with, as well as scraped HTML from San Bernardino County, but those are other tales for other times.)
With the state data, I had the XML-to-JSON conversion covered with Ruby's Crack gem. But I just couldn't pare down the XML to make the JSON a manageable size.
A company called Prograils offers a great tutorial, Loops in Ruby - all possible approaches.
It looks like a good reference for when you're writing a Ruby program and need to figure out which kind of loop will work best in a particular situation.
Need to open an existing file, create a new one and write to that file in Ruby?
This Stack Overflow answer makes it super simple.
I already used this in one of my little Ruby programs.
In the same thread (but earlier), here's another one.