Combining Specialties
Different applications are good at different things. You typically don’t perform every task in a single application. Some applications do attempt to behave as “Swiss army knives” and be all things to all people (for example, Microsoft Word, a word processor, includes image-processing facilities); but on the whole, applications are specialized. Very often the point of using AppleScript is to get two or more applications working together. By sharing data, each application can contribute its own particular excellence to an operation’s workflow.
Here’s an example. In order to design the stop list for a web-based search engine, I needed to know the most frequently used words in each web page on the site. The web pages were easily stripped of their HTML, but then the question was how to count the occurrences of each word in a file and record the totals for the 30 most frequent words. The counting, I decided, could best be done with Ruby, a Unix scripting language I’m fond of. I wrote a little Ruby script that could be called from the command line with a file’s pathname as argument:
#!/usr/bin/ruby
class Histogram
def initialize
@tally = Hash.new(0)
end
def analyze(s)
s.split.each do |word|
myword = word.downcase.gsub(/[^a-z0-9]/, "")
@tally[myword] = @tally[myword] + 1 if !myword.empty?
end
@tally.sort { |x,y| y[1]<=>x[1] }
end
end
analysis = Histogram.new.analyze(File.new(ARGV[0]).read)The hash of words and their frequencies has now been sorted by frequency and ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access