Title photo
frugal technology, simple living and guerrilla large-appliance repair
Thu, 16 Jun 2016

OMG, the @railstutorial by @mhartl

OMG, the @railstutorial by @mhartl https://www.railstutorial.org/book

The /now page movement

The /now page movement -- it's what you're doing now http://sivers.org/nowff and http://nownownow.com

The Bastards Book of Ruby

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.

Using Ruby to delete blocks of text across multiple lines

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.

Read the rest of this post

Wed, 15 Jun 2016

A great Ruby loops tutorial from Prograils

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.

Tue, 14 Jun 2016

I used Firefox a bunch

I've been using Firefox version 47 for the past couple of days. And it's been working well. This isn't for my day job, where I beat the hell out of the browser, but for "research" (aka looking things up) while learning programming.

Nothing cost $ .

I should probably give it a try for my real work and see how it holds up.

Update: Firefox did better than I thought but not good enough.

Slow rendering in Google Maps was annoying.

It couldn't handle Tweetdeck at all. Nobody would (or should) argue that Tweetdeck is anything but a mess. It is built with unwieldy amounts of JavaScript and delivers messes (or masses) of data. Trying to run Tweetdeck in Firefox was a parade of "unresponsive script" pop-ups that had me bailing out for Chrome within the hour.

I want Firefox to be competitive. I'd rather have fewer eggs in Google's basket. But my web production workflow is just too many windows of pain.

Quick Ruby: Open and write a file

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.

Coding Horror: It's a UNIX system, I know this

Coding Horror: It's a UNIX system, I know this https://discourse.codinghorror.com/t/its-a-unix-system-i-know-this/4378

Sun, 12 Jun 2016

Learning Ruby: Loops and arrays

This entry shows what I'm doing when I practice programming. I find it helpful to write little programs that use the concepts I'm trying to learn.

Why Ruby? you might ask. No particular reason. I've spend a semester learning C++, and I was pleasantly surprised to find out that the things I learned are applicable in many other programming languages. Ruby is one of them.

Writing scripting-type programs is one of the things I do. I have "practiced" recently with Bash (and all the little Unixy utilities that go along with it) and Perl (for the add-on that does the statistics for this blog).

Ruby just happens to interest me. I'm also interested in Elixir, but for the kind of things I'm interested in doing right now, Ruby with its many, many Gems and "make programmers happy" philosophy looks like a good fit.

I could say the same thing about Perl (or Python, or Java), but for now I'm playing around with Ruby.

I find that writing little programs like these is a great way to learn. And writing the "same" program in different languages is also very helpful. I could re-write this one in, say, Perl or JavaScript (using either Node in the console or rendering it on an HTML.

Here is the program I wrote to practice using Ruby loops and arrays. I also worked with strings (and converting arrays to strings and back again) and outputting results to the terminal.

What is an array? Here's what it is (in my mind anyway): A collection of pieces of data that can be manipulated as a whole. You can mix numbers and strings. In Ruby, arrays can even contain other arrays. I read that somewhere.

Here is the program:

#!/usr/bin/env ruby

=begin

The purpose of this program is to experiment
with Ruby loops, arrays, strings, integers and output.

The program creates an array, uses loops
to *push* numbers into that array, shows what
the array looks like at every stage using *puts*
and *inspect*, then uses *shift* to remove
numbers from the array, also showing
what it looks like at every stage.

There are two more loops in this script.
One prints out numbers ascending, the other
descending. 

=end

# Create an array

number_array = Array.new

# loop uses *push* to add a number,
# *puts and *inspect* to print it

(1..10).each do |i|
    number_array.push(i)
    puts number_array.inspect

end

# loop uses *shift* to remove
# an array element
# 1...10 with three dots runs
# the loop until 9, not 10

(1...10).each do |i|
    number_array.shift
    puts number_array.inspect
end

# *puts* on its own adds a blank line

puts

# *print* prints the output without adding
# a newline character (aka \n) like *puts*

for i in 1..10
    print i
    print " "
end

puts

10.downto(1).each do |i|
    print i
    print " "
end
Fri, 10 Jun 2016

Ruby for Admins

There's a great book available on the web, "Ruby for Admins."

Grammatically it's a little rough -- I would love to contribute via GitHub if that was available -- but the information seems solid.

Thu, 09 Jun 2016

I set up Ruby on CentOS 6

I set up Ruby on a CentOS 6 server. It was Ruby 1.8.7. Makes my 1.9 Pickaxe book seem timely.

I finished my CS class and finished another Election Night script

Finished my first CS class - programming in C++ - and did another Election Night results script that was supposed to be mostly Ruby but ended up mostly Bash. This time I had help and mostly worked on the back end. Things I did: used git and GitLab, generated JSON from XML, used Ruby Gems. Time constraints drove me back to Bash, but I would like to re-write it using MUCH more Ruby.

Sat, 04 Jun 2016

OwnCloud founder starts new project and company called Nextcloud

.@fkarlitschek already left @owncloud, and now he forks the project and starts Nextcloud http://karlitschek.de/2016/06/nextcloud

Sat, 28 May 2016

Fedora 23 yumex-dnf fix is on the way

Fedora's yumex-dnf has been broken for about a week. The issue is with dnfdaemon, and a fix is on the way https://bugzilla.redhat.com/show_bug.cgi?id=1338564#c18

Update: The fix is in. Yumex-dnf is working again.

Wed, 25 May 2016

Yet another GNOME test -- screenshot utility broken

As I do occasionally, I used GNOME 3 instead of Xfce 4.12 today to start my work. It all fell apart when the GNOME screenshot utility barely worked.

Update: I mapped GNOME Screenshot to alt-P instead of PrintScreen, and that works, but it's hard to choose the type of image I want, which is JPG, and the only way to make it work is to take the PNG offered and convert it later.

In contrast, the Xfce screenshot tool works with the PrintScreen key and makes any kind of image I want with no complaining.

Tue, 24 May 2016

Xfce's Thunar file manager is updated to fix crashes

The lovely people at Xfce and downstream at Fedora moved a new version of the Thunar file manager to fix a bug causing crashes when files are cut from one folder and pasted into another -- something I tend to do quite often.

The crash didn't happen every time but did often enough to be a little annoying.

Thanks to all who were involved, from reporting the bug to making the fix and then pushing new code.

Fri, 20 May 2016

x2js for XML to and from JSON conversion in JavaScript, the Crack gem in Ruby and more

I'm still undecided how I will convert XML to JSON in the election results app/script I am working on.

I'm considering Ruby and Node on the back end, and pure Javascript on the front end.

To those ends, I am looking for libraries that can do the heavy lifting for me.

Among the things I've stumbled upon are x2js.

Just putting this here so I don't forget about it.

If I go for Ruby, there is the Crack gem, which is packaged for Fedora, also hopefully for CentOS, and available for installation via Ruby if that doesn't work out.

Also, I don't want to forget my previous entry on xml2json.

Update: I am currently using the Crack gem with Ruby. I'm shelling out to Bash for some file-based operations that I hope to eventually replace with native Ruby code.

My initial idea of doing this all on the client in Javascript wasn't terribly practical because of all the CPU it took to do the XML to JSON operation on such large XML files.

Mon, 16 May 2016

AcousticMusic.org archive of guitar catalogs

Acousticmusic.org has a large archive of old guitar catalogs, best I've seen http://acousticmusic.org/research/history/catalogs #gibson #fender #martin #epiphone

How to get a developer job in less than a year

How to get a developer job in less than a year (Free Code Camp blog) https://medium.freecodecamp.com/how-to-get-a-developer-job-in-less-than-a-year-c27bbfe71645

United RPMs is a new repo for Fedora

United RPMs is a new repo for Fedora https://unitedrpms.github.io

Sun, 15 May 2016

Converting XML to JSON in JavaScript and learning what you need to do when you need to do it

I'm working on my election script, which has been Bash on the server to produce HTML with custom display on nine different websites controlled via CSS. Hacky as shit, but it works.

I've toyed with doing the script in Perl or Ruby, but my colleague Daniel Aitkin asked whether we could script the data into JSON, aka JavaScript Object Notation.

That way we could pretty much do this as a Javascript-on-the-client Web page. For California statewide data, we are working with XML, so a simple conversion to JSON in the browser would do the trick.

And here is one of many solutions to the XML-to-JSON problem: https://github.com/enkidootech/xml2json.

If this works, server-side scripting is limited to fetching and unzipping the XML files from the California Secretary of State. JavaScript will do the rest.

Since LA County sends fixed-width ASCII, this plan goes out the window, but I vaguely remember another ancient data format that I might be able to hack into JSON. Or the LA County data will be mangled the old-fashioned way.

I'm in the mood/mode to do things with JavaScript in the browser. I recently hacked together this simple Web page that takes any URL and spits it out with nine different domains and then copies them to my desktop clipboard via buttons, an admittedly narrow use case but one that I have about 30 times a day.

That's the best way for me to learn: Have an annoying problem and make it go away through code.

Along these very same lines, since I'm collaborating with others on this project, I decided that we needed a way to share the code.

And since I wanted to work out of a private repository, Gitlab ($0/month) beat Github ($7/month). And we are all learning git.

Sat, 14 May 2016

The Firehose Project - A hands-on intro to building modern web applications with Elixir and Phoenix

The Firehose Project - A hands-on intro to building modern web applications with Elixir and Phoenix http://phoenix.thefirehoseproject.com/

Fri, 13 May 2016

What Gitlab has to say about Github's pricing changes

What @gitlab has to say about @github's pricing changes https://about.gitlab.com/2016/05/11/git-repository-pricing/

Mon, 02 May 2016

Jazz Age Guitar website

Great posts at Jazz Age Guitar http://www.jazzageguitar.com

Fri, 29 Apr 2016

Mebe – The Minimalistic Elixir Blog Engine

Mebe – The Minimalistic Elixir Blog Engine https://blog.nytsoi.net/mebe

Elixir and Phoenix: The Future of Web APIs and Apps?

Elixir and Phoenix: The Future of Web APIs and Apps? http://blog.carbonfive.com/2016/04/19/elixir-and-phoenix-the-future-of-web-apis-and-apps/

Evan Miller: Elixir RAM and the Template of Doom

Evan Miller: Elixir RAM and the Template of Doom http://www.evanmiller.org/elixir-ram-and-the-template-of-doom.html

Mon, 25 Apr 2016

Termux brings Linux command line and apps to Android

Termux brings a Linux command line, apt-like package manager and Debian-like repo to Android http://termux.com

Tue, 19 Apr 2016

Perl is a DevOps power tool

Perl is a DevOps power tool http://www.i-programmer.info/programming/perl/9649-with-the-rise-of-devops-perl-shows-its-muscle.html

Mon, 18 Apr 2016

Building a reading queue in Ember and Phoenix, Part 1

Building a reading queue in Ember and Phoenix, Part 1: getting started with Phoenix https://medium.com/@diamondgfx/building-a-reading-queue-in-ember-and-phoenix-part-1-getting-started-with-phoenix-521a19814ae5#.l77gs8eh8

Sat, 16 Apr 2016

In San Francisco, a call to 'Build, baby build!'

In San Francisco, a call to 'Build, baby build!' http://www.nytimes.com/2016/04/17/business/economy/san-francisco-housing-tech-boom-sf-barf.html

Thu, 14 Apr 2016

Multiple transactions are what killed old #StarbucksRewards

Multiple transactions are what killed old #StarbucksRewards. App meltdown is killing new one.

Starbucks had to change Rewards program

I think @starbucks had to change #StarbucksRewards, but a lot of people are not going to like it

Wed, 13 Apr 2016

State of the JavaScript landscape: A map for newcomers

State of the #JavaScript landscape: A map for newcomers http://www.infoq.com/articles/state-of-javascript-2016 -- A nice overview

Tue, 12 Apr 2016

jQuery Bootstrap-style dropdowns

jQuery Bootstrap-style dropdowns http://labs.abeautifulsite.net/jquery-dropdown

Mon, 11 Apr 2016

HTML 5 Tutorials: Dropdown lists

HTML 5 Tutorials: Dropdown lists http://www.html5-tutorials.org/forms/dropdown-lists

Inspirational Pixels: Creating a Dropdown Menu with HTML & CSS

Inspirational Pixels: Creating a Dropdown Menu with HTML & CSS http://inspirationalpixels.com/tutorials/creating-a-dropdown-menu-with-html-css

Stack Overflow: How to make a pure css based dropdown menu

Stack Overflow: How to make a pure css based dropdown menu http://stackoverflow.com/questions/9953482/how-to-make-a-pure-css-based-dropdown-menu

Sun, 10 Apr 2016

Have you heard of Blankenship Amp Repair and ARS Electronics, both in Van Nuys?

I have to confess that I'd never heard of Blankenship Amp Repair and electronic tube seller ARS Electronics until just now. And both are in Van Nuys.

Ilene told me about her co-worker, a guitar collector, who bought an old Fender Super Reverb amp that might have been in a fire, but definitely didn't come with any of its four speakers.

He was taking the amp, or what was left of it, to Blankenship Amp Repair, where Roy Blankenship will fix your amp or make you a new one that's just like the old ones, only better (and with better parts). His clients include just about everybody in rock 'n' roll. To learn more about what Blankenship Amp Repair does, check out its Facebook page.

If you're more the do-it-yourself type, and need electronic tubes for anything from guitar amplifiers and vintage radios to broadcast transmitters, radar and x-ray machines and military equipment, ARS Electronics on De Celis Place near the Van Nuys Airport probably has it. They also sell connectors, speakers, capacitors (if it's old, the capacitors are probably bad, and you need new ones) and transformers.

Take a look at the ARS Electronics history and contact us pages. It looks like a great place to get just about anything made out of glass that glows and isn't a light bulb.

Fri, 08 Apr 2016

Hackaday is awesome

Hackaday is awesome http://hackaday.com/

Newspapers don't like Brave Software's ad-replacing browser

Newspapers among those threatening to sue Brave Software for browser that will block and replace ads http://www.infoworld.com/article/3053525/security/javascript-founder-brendan-eichs-company-could-face-legal-action.html

Round-up of Elixir books and resources

Round-up of #elixirlang books and resources http://blog.jordan-dimov.com/round-up-of-elixir-books-and-resources/

The business case for switching to Elixir

The business case for switching to #elixirlang http://blog.jordan-dimov.com/10-reasons-to-switch-to-elixir-from-python/

After 25 years, Linus Torvalds still wants Linux to take over the desktop

After 25 years, Linus Torvalds still wants Linux to take over the desktop http://www.cio.com/article/3053507/linux/linus-torvalds-still-wants-linux-to-take-over-the-desktop.html

Ubuntu Bash for Windows 10 not quite ready

Ubuntu Bash for Windows 10 not quite ready http://www.theregister.co.uk/2016/04/07/windows_10_with_ubuntu_now_in_public_preview/

Tue, 05 Apr 2016

When to choose Elixir over Ruby

When to choose #Elixir over #Ruby https://www.amberbit.com/blog/2015/12/22/when-choose-elixir-over-ruby-for-2016-projects

Mon, 04 Apr 2016

Elm with Elixir and Phoenix

Elm with #Elixir and #Phoenix http://www.cultivatehq.com/posts/phoenix-elm-1 #elmlang

Elm for the front end, right now

Elm for the front end, right now https://bendyworks.com/elm-frontend-right-now #elmlang

Fri, 18 Mar 2016

Radio Boulevard

The Radio Boulevard web site looks like hell, but the vintage-radio content is very, very golden http://www.radioblvd.com/

Rebulding an R-390A military receiver

Great page on rebuilding an R-390A, the holy grail of surplus military receivers http://www.radioblvd.com/R-390A%20Rebuild.htm

Thu, 17 Mar 2016

2 posts, 1 timestamp - dlvr.it doesn't like that

Key to getting dlvr.it to work well with Ode: don't upload without setting Indexette timestamps locally (and staggering by at least a minute)

I have been wet shaving

I have been 'wet shaving' with a safety razor and one of those brushes (no badger!) That is all.

Nearly 3 years with one laptop, one Fedora installation

I have been running the same Fedora installation, upgraded from F18 to 23, for nearly 3 years on this HP Pavilion g6 laptop

I am working on lots of programming at once

I am studying C++, working on Perl code for my blog and now coding a simple JavaScript web app pretty much all at once

Thu, 10 Mar 2016

K8IQY's QRP Rigs: "Hardware Defined Radios"

K8IQY's #QRP Rigs: "Hardware Defined Radios" http://www.k8iqy.com/qrprigs/QRPRigs.htm

Tue, 08 Mar 2016

I learned a couple of things about Ode add-ins (and Perl in general) today

I've been having trouble with my Ode Counter add-in.

I have been using File::Find to gather filesystem information and make it available to Ode, and I learned two things.

1) The Ode add-in framework allows the passing of scalar variable data from add-in to non-post areas of the site, but it doesn't allow passing of arrays. This is easy enough to work around. You just convert the array to a scalar. There is more than one way to do this, but I chose this one:

$directory_list = join('', @directory_list_array);

2) Producing acceptable HTML out of the add-in is one thing, but for it to transfer properly to the Ode site, all the usual characters must be "escaped" on the server side:

Instead of:

<li><a href="/blog/programming/perl/">Programming > Perl</a></li>

It must be:

<li><a href=\"\/blog\/programming\/perl\/\">Programming > Perl<\/a><\/li>

Once I fix my regex, I'll be in business.

Mon, 29 Feb 2016

Update on the Counter addin, version 3, for Ode sites

I've been working on and off on the next version of the Counter addin for Ode sites.

The last update added counts of photos in the blog's filesystem to the original counts of entries with breakouts for traditional blog entries and social updates (basically counting everything in the whole documents directory and the updates directory, then using a little math.

I used the File::Find CPAN module as the backbone of the addin.

The next thing I wanted to do, also using File::Find, was to crawl the blog's filesystem and generate a categories list that can be displayed on the site.

So I've been playing with File::Find, Perl regular expressions and arrays.

I am able to generate an array made up of every directory that contains Ode posts, and I'm working on the regex to make the HTML and display text look exactly the way I want.

At this point I have a pretty good looking array, and I'm ready to move the Categories code (which I'm developing in a local directory with a "dummy" filesystem) into the main Counter addin code.

There are still some issues to work out, but as soon as I get the next version of the Counter addin ready, I will make it available for download and also hopefully have it on Github.

Wed, 24 Feb 2016

Fedora: break fast, fix fast

That's how it is with @fedora -- something breaks every once in awhile, but it's almost always fixed rather quickly.

Fedora developers dealing with sqlite dependency issue

Fedora 23 has been suffering from a sqlite updating issue for the past week or so, but it looks like a fix is on the way.

Mon, 22 Feb 2016

Linux Mint damned, no faint praise in sight, for security, packaging and professionalism issues

.@Linux_Mint dammed, no faint praise in sight, for security, packaging and professionalism issues https://lwn.net/Articles/676664

Reddit response to Linux Mint woes

The @reddit community responds to @Linux_Mint's security (and other) issues https://www.reddit.com/r/linux/comments/470pvo/to_conclude_i_do_not_think_that_the_mint

Thu, 18 Feb 2016

Can't the feds just image an iPhone, reimplement it in software and crack it at their leisure?

Can't the feds just image an iPhone, reimplement it in software and crack it at their leisure?

Thu, 11 Feb 2016

How UbuCon brings a new element to LA's SCALE

How #UbuCon brings a new element to LA's #SCALE show https://daniel.holba.ch/blog/2016/02/trip-report-ubucon-summit-scale14x #Ubuntu @Mark_SABDFL

VCs who miss the point of open source shouldn't fund it

VCs who miss the point of open source shouldn't fund it http://www.infoworld.com/article/3032120/open-source-tools/vcs-who-miss-the-point-of-open-source-shouldnt-fund-it.html by @webmink

What is standstorm.io?

What is @standstormIO? An open-source, easy-to-use server platform for web apps featuring sandbox-based security https://sandstorm.io/

Mon, 01 Feb 2016

Learning more Perl for my Ode Counter add-in

I learn better, or should I say I only learn how to program when I have an actual problem to solve.

My current "problem" is figuring out how to generate more data out of my Ode blog's filesystem for my Ode Counter add-in.

I already report on the number of blog entries, how many are "real" entries and how many are Ode-generated social-media updates, plus how many images are in the filesystem and how many of those appear in actual blog posts.

Another thing I have wanted to do since I began using Ode was have the system generate a Categories/directories list in HTML for both a dedicated "site map" page as well as a sidebar display.

Read the rest of this post

Sat, 30 Jan 2016

Computer science and me and computer science and me

I might as well come right out with it.

I'm going back to school. Community college. For computer science.

Ilene thought I should do it at least a year ago. She's smart that way. It took me awhile to come around. Back then I thought a curriculum anchored in the C++ language (with smatterings of C, Java and C#) and not today's languages of the web (Javascript, Python and Ruby ... OK, really just Javascript) was not for me.

I was ready to do it all on my own: find a language and a framework and a reason to learn them and go. (A few months ago, I even learned a little Go.)

Read the rest of this post

Thu, 28 Jan 2016

I think Brave is going to be big

The @brave browser is going to be big if it can meld the speed of Chrome with a users-first mentality

Linux advice: How to get started with Debian (or any Linux) web server

I answered this question on Quora and figured that I might as well put the answer here, too:

The question: Are there any good resources (Books) to get started on a Linux (Debian) web server?

Here is my answer:

You should definitely get The Debian Administrator's Handbook.

Then there is everything on the Debian documentation page.

And the good thing about Debian is that most posts and other references that explain how to do something in Ubuntu will also work for Debian.

With that in mind, just about any book or site that helps you run any kind of Linux web server will help you with Debian.

O'Reilly is releasing a new version of The Apache Cookbook in two months. I highly recommend it.

I also recommend two No Starch Press books: How Linux Works: What Every Superuser Should Know and The Linux Command Line: A Complete Introduction

This part is not on Quora:

I've been thinking for years that the technical publishing industry has thought of Linux as "done," and would continue to wind down their previously robust book schedules.

That pretty much happened, but seeing a new "Apache Cookbook," plus these two excellent titles from No Starch as well as a third, The Linux Programming Interface: A Linux and Unix System Programming Handbook, I see four very compelling Linux books that aren't woefully out of date.

They may not be focused on individual distros, but that is a strength, not a weakness.

Mon, 25 Jan 2016

The year ahead in C++

The year ahead in C++ http://meetingcpp.com/index.php/br/items/cpp-in-2016.html

Dave Cross: Why learn Perl?

Dave Cross: Why learn #Perl? http://perlhacks.com/2016/01/why-learn-perl Plus his whole site is great: http://perlhacks.com

Sat, 23 Jan 2016

I'm enjoying GNOME 3 today. That is all.

Today I'm enjoying GNOME 3 in Fedora 23.

The GNOME desktop, at this stage in the 3.x series, is definitely in the iteration stage after a long time in the "sorry about the lack of functionality but not sorry" stage.

If my Citrix apps didn't suffer a bit more in GNOME than in Xfce (mainly because Citrix doesn't care all that much and my apps' developers don't care at all), I could see myself in this environment more of the time.

The dark theming helps. I do the same in Xfce, and in some ways dark theming (aka Adiwata Dark) is maybe a little bit further along in GNOME because it meets with the project's minimalist goals.

Or that's how I'd like to think about it.

In related dark-theming news, Fedora did fix yumex-dnf to work with dark themes (no more dark blue type on black). Now it has to fix the trouble with kernel updates (in which old kernels are NOT deleted, while they are in regular ol' console dnf).

One unfortunate thing: The Eclipse IDE looks like HELL with dark theming. Eclipse developers, you wound me.

Wed, 20 Jan 2016

Geany builds Java and C++ programs, does it on everything

As I ease in to learning how to code in C++, I have a couple of "real" IDEs at my disposal (chiefly Netbeans and Microsoft Visual Studio), I was pleased to find out that my favorite not-quite-an-IDE Geany will build and run both Java and C++ code.

And Geany can do this on Linux/Unix, Windows and Macintosh computers. (It uses the Unixy g++ even in Windows for C++ code.

I even tested a Perl script in Windows, where I'm using Strawberry Perl. Geany will automatically run a Perl script (on a Perl-equipped Windows computer) when I click on the "Execute" button. It opens Perl in the Windows terminal and runs the script without needing to leave the "IDE."

Note: I did install Microsoft Visual Studio Community because I have a feeling I'm going to need it (though instinctively I lean toward Netbeans, and practically am using Geany).

One thing I'm learning about C++ as I dip the very tips of my toes into its vast waters: Like Perl but more so, there is definitely more than one way to do it.

Tue, 19 Jan 2016

Twitter intermittent this morning and last

Both today and yesterday, Twitter has been less than healthy

Mon, 18 Jan 2016

Go has been updated in Fedora

Go has been updated to 1.5.3 in #Fedora http://koji.fedoraproject.org/koji/buildinfo?buildID=711203 #golang

Right now, this is the current Go release. That makes Fedora a great platform for Go programmers.

Fri, 15 Jan 2016

I dislike 'listicle' articles that are just clunky photo galleries

I dislike 'listicle' articles that are just clunky photo galleries -- I'm looking at you, @zdnet

Thu, 14 Jan 2016

Lengthy list of what's wrong with Linux

I found this very long list of things wrong with Linux http://itvision.altervista.org/why.linux.is.not.ready.for.the.desktop.current.html

Wed, 13 Jan 2016

Revisiting GNOME's Web (aka Epiphany) browser

The Unix/Linux desktop environment GNOME's many components include a full web browser that used to be called Epiphany and now goes by the very non-Googlable name Web. Yes. it's a Web browser called Web.

Back in the GNOME 2 days, I used it a lot. That wasn't just the GNOME 2 days but the Gecko days, when Epiphany was based on Mozilla's Gecko engine rather than Apple/Google's WebKit.

In the early WebKit days, I think Epiphany/Web went downhill a bit.

Now I use Google Chrome much of the time, though I know in my heart that I shouldn't. I'm usually logged into Google Services for my job, and Google is getting into everything I do.

These days Firefox is just frustrating. Once I get 10 tabs open, it tends to hang when Chrome doesn't.

Maybe a basic browser like Epiphany/Web can help me. Maybe not.

I'll give it a try and let you know how it goes.

Update: Epiphany/Web works very well. I can't say for sure that it's "lighter" than Google Chrome, especially since it uses the same Webkit engine.

What I can say is that for general-purpose web-browsing, it is very fast and stable. And I bet Google is tracking me a whole lot less.

Epiphany is a simple browser. Like Firefox was in its early days.

It's well-integrated as a GTK3 application, so it'll look good either in GNOME 3, or (in my case) among all the other GTK3 apps I'm using in the Xfce desktop environment.

For search, Epiphany defaults to Duck Duck Go which bills itself as "the search engine that doesn't track you," and so far I'm happy with it. It's nice to have an alternative to Google, even in a Web browser using the same engine as a browser that is most definitely tracking you.

I'm not saying I will give up on Google Chrome, especially for my , but when it comes to personal browsing, I can see myself in Epiphany much of that time.

How to do a slide presentation with Ode

From the Ode forum:

How to do a slide presentation with Ode

Get the Presentation theme here.

The Counter addin, version 2, for Ode sites

I've been meaning to get back into the Counter addin that I wrote for Ode with Rob's help, and over the past few days I added some functionality to the code and deployed it on my site, where you can see the results in the right rail.

The original Counter addin only counted posts, which in my case are files in the documents directory with .txt suffixes.

Since I now create many of my social-media updates with Ode, I added some code to count those entries and report how many of the overall entries are "full" posts and how many are social updates.

While I was in there, I wanted to play around with regular expressions, so I also added a count for the number of jpg and png images both in the entire documents directory (which includes themes) as well as in my images directory (where I try to keep all images that go into posts).

It's definitely fun to write a very little bit of Perl and have something happen on my live site. It's a nice feeling, for sure.

The addin uses the File::Find CPAN module to crawl your filesystem and count the files.

The way the Counter addin works is that you download it (for now I'm hosting it here) and unzip it, stash the addin's directory/folder in your addins directory (mine is under /data/addins), add some HTML with calls to the addin to your theme (generally in the sidebar area), and it should just work.

Once again, thanks to Rob Reed for creating Ode and helping me get off the ground with this addin.

If you missed the link above, download the new Counter addin from my site.

I still have some code cleanup to do, and I will probably add some documentation, licensing information and acknowledgments. But this version does work.

In the future, I can see this addin, or something like it, creating even more dynamic (or even static) content for the sidebar of an Ode site. It could help build a list of directories and certainly could provide more statistics on how many posts you have under any given directory.

But for now I can instantly see how many posts and social updates I have written (and you can, too).

Fri, 08 Jan 2016

I cannot run my Citrix apps with GNOME

Every now and again I try to run my Citrix apps with GNOME. Xfce still does it better. Probably Citrix's fault, but it is what it is

Tue, 05 Jan 2016

I am not saying the LA Review of Books is the city's most important web site

I am not saying @LAReviewofBooks is the city's most important web site. Not saying it isn't, either https://lareviewofbooks.org

What makes Elixir so attractive for some developers?

From http://ruby2elixir.github.io: What makes Elixir so attractive for some developers? http://ruby2elixir.github.io/posts/2015/12-29-what-makes-elixir-so-attractive-for-some-developers.html

Mon, 04 Jan 2016

Free C++ books -- great list from @TFETimes

I just found this great list of free C++ books from @TFETimes

I picked up about five.

I've also returned to reading books

Back to reading books (and couldn't agree more with @hughmcguire) https://medium.com/@hughmcguire/why-can-t-we-read-anymore-503c38c131fe

Tweets on my laptop originate here

Tweets on my laptop originate here: http://stevenrosenberg.net/blog/updates. Explanation: Tweet from any blog

@MethodDan updates his condition

.@MethodDan of #LinuxOutlaws updates his medical condition http://danlynch.org/blog/2015/12/got-a-date/, plays some tunes http://ratholeradio.org/2015/12/ep152/

Sun, 03 Jan 2016

Geany is the IDE for people who don't understand IDEs

Like me.

I've got plenty of IDEs on my laptop. At least one has been here a while (Padre, focused on Perl). A few have been here a short time (Eclipse, Netbeans, whatever incarnation of IntelliJ comes with Android Studio).

I've barely used any of them. There is a learning curve.

I never really needed Padre. I write scripts with text editors (often gedit, sometimes Notepad++ if I'm in Windows).

I like Netbeans, and I am able to create, compile and run simple Java programs with it.

I tried to create a C++ program in Netbeans after adding C and C++ support but got held up at the make/configure script portion.

That was after I created a script in gedit and used g++ on the command line to compile it. That works.

So I turned to Geany, the "IDE" (heavy quotation marks) I've been using not just for my rudimentary Java programs but also for most of my general text editing (I need cr/lf line endings for my company's main CMS, and gedit is kind of broken in this regard).

Since I have OpenJDK and all the C build tools installed on my Fedora system, Geany happily builds and runs my Java programs and my now-sole C++ program (see it above). Not much of a learning curve. Click the build brick, then click the "run" gears.

That's it.

There will be a time in the near future when I will need to run a "real" IDE. I will need training wheels.

Things I'm going to do in 2016 to further my programming goals

I have a plan for 2016 to dramatically increase my programming knowledge and experience.

When that plan is further along -- I'd say I'm at 25 percent this week, will be at 50 percent next week and 100 percent by the end of the month, I will provide the details. But I can promise that I plan to do more and make more progress in 2016 than any year previous.

I am aiming to use git and/or GitHub for as much of my programming workflow as possible, both for my new projects and practice as well as my previous projects, however small (or ungainly) they are.

The key is balancing this new push to learn with my home, family and work lives. I hope I can do it.

Thu, 31 Dec 2015

Things Fedora 23 fixes: Yumex DNF display with dark theme

Like any software upgrade, going from Fedora 22 to 23 has its wins and losses, however temporary in both cases.

In the "wins" category: Yumex-DNF, the graphical package manager that isn't GNOME Software now displays normally with the Adiwata dark theme that I've been using.

Hopefully there is improvement across the board in GTK3 application rendering with dark themes.

Google Chrome EditEdit issue in Fedora 23

I'm noticing this issue when using Ode's EditEdit in Fedora 23. It looks like the line spacing in the CSS for the "composing" windows is screwed up. See the screen grab above (click for full-sized image).

You can see that the top line in the "Title" windows is cut off on top, and the lines are a little cramped in the "Body."

I need to check this in Firefox to make sure it's not some kind of overall Fedora 23 issue (I just upgraded my OS from Fedora 22), and I'm sure I can adjust the CSS for EditEdit to make this problem go away.

Update: It looks fine in Firefox:

Update: This has something to do with the Courier font. Rather than go crazy about it, I'm just going to knock it out of the EditEdit CSS.

Fedora upgrades DO happen overnight

Fedora upgrades DO happen overnight -- with 7000+ tasks between upgrades and cleanup, I just let it run. F23 now lives on my laptop

Upgrading Fedora 22 to 23 -- 3654 packages for me

Upgrading #Fedora 22 to 23 -- 3654 packages for me

Easy instructions for Fedora 22 to 23 upgrade

Easy instructions for Fedora 22 to 23 upgrade from Fedora Magazine https://fedoramagazine.org/upgrading-from-fedora-22-to-fedora-23/ I needed --allowerasing

Starting the Fedora 22 to 23 upgrade

Starting the #Fedora 22 to 23 upgrade -- can DNF really do it?

Tue, 29 Dec 2015

Great Fedora Magazine interview with Kevin Fenzi

Fedora Magazine did a "How Do You Fedora" interview with Kevin Fenzi, longtime Fedora contributor and Red Hat employee who does so much for Xfce in the distribution.

You know what I'm using like crazy in Xfce? Clipman

You know what I'm using like crazy in Xfce? Clipman http://www.mylinuxrig.com/post/1441513640/clipman-helps-remember-what-you-cut

dlvr.it is one of those services that keeps plugging along

http://dlvr.it is one of those services that keeps plugging along. It runs my @twitter feed out of this blog, and my company uses it, too

Mon, 28 Dec 2015

The @realdonaldtrump and @passthejoe -- Twitter brothers from different mothers

.@realdonaldtrump and @passthejoe (that's me) joined @twitter about the same time - 2009. Sure, he has more followers, but I just crossed 1K

From Whole Earth Catalog to Cool Tools

Unearthed my circa-1980 Next Whole Earth Catalog, the web before the Web http://www.amazon.com/The-Next-Whole-Earth-Catalog/dp/0394707761

Getting started with blog advertising

So you want to start selling advertising on your blog or website?

There's always Google AdSense, which doesn't pay all that much. And there is NO customer service. I had a client blackballed from the service for doing something I KNOW they didn't do, and there is no recourse.

But looking around, it appears that you can do this outside of Google and make a lot more money.

Michael Hyatt says if you have 10,000 unique visitors per month, you can make it happen. And it looks like he used the Boston-based BuySellAds platform to help him do it.

Things he did included:

  • Launching a reader survey
  • Setting up an advertising page
  • Creating an "advertising kit"
  • Signing up with an advertising service (again, he used BuySellAds) Then capping it with:
  • Pitching an irresistible offer

If self-help and career/life coaching is your thing, MichaelHyatt.com is all about that. He also offers a podcast and a bunch of products like e-books, print books, audio books and even a WordPress theme.

Not having spent a lot of time at his site, I imagine that Michael thinks of a blog as part of the overall marketing/monetization strategy in your life (or your business' life, I suppose).

Does this blog have 10,000 unique visitors per month?

Even I was asking that question after reading this. The purpose of this blog isn't direct monetization (or its content would be a whole lot different instead of "whatever the hell I'm thinking about" and "here's what I'm putting on social media").

I don't really pay much attention to the traffic. I don't even have a "real" analytics setup. I just rely on the AwStats functionality that my web host bakes into my account.

I usually get between 4,000 and 7,000 uniques per month, but I host a few other things on the stevenrosenberg.net domain, and I had a huge spike in November 2015, doubling the number of uniques to 14,000.

It turns out the spike was due to Los Angeles County election results that I host here for my employer. I should definitely move those to a company server, and I actually do have one now that can handle it (it's all Bash scripts, chewing gum and super glue). For the next election, I will.

I'm not saying I will never sell advertising on my "personal" blog, but I don't see it happening. I might do it if I started one or more "specialty" blogs that had some focus, but this isn't that blog.

Sun, 27 Dec 2015

Ornette Coleman remembered by Neneh Cherry

Ornette Coleman remembered by Neneh Cherry aka @misscherrylala http://www.theguardian.com/music/2015/dec/27/ornette-coleman-remembered-by-neneh-cherry-jazz-saxophonist

Sat, 26 Dec 2015

JDK 1.8 for OpenBSD

JDK 1.8 for OpenBSD http://openports.se/devel/jdk/1.8

OpenBSD 5.8 looking very good

OpenBSD 5.8 looks very good http://www.openbsd.org/58.html Even offers JDK, which I don't remember from 4.4 days

Great introduction to @OpenBSD at openbsdjumpstart.org

Great introduction to @OpenBSD at http://www.openbsdjumpstart.org

Generate a random number between 1 and 100 in JavaScript, Ruby, Python, Groovy, Perl and Bash

News that the random number generator in JavaScript was fixed (I didn't know it was broken) prompted me to wonder how easy (or hard) it is to generate a random integer between 1 and 100 in as many languages as I could.

Of course I used Google and the sites it found for me to come up with these methods.

Generating random numbers is important in programming, and it's very important that those numbers be truly random. That's why the problem with JavaScript's random numbers seems so serious, especially with JavaScript's ubiquity not just on the client (where it's carrying a heavier load than ever) but now the server via Node.js.

So you want to generate a random number between 1 and 100? Here are n ways to do it:

Random numbers in various computer languages:

JavaScript

Use node to run this line in your terminal (you do have node installed on your computer, right? If not, you should):

Math.floor(Math.random() * 100) + 1

Ruby

It's even easier in Ruby (use irb to run this in the console):

rand(100) + 1

Python

In Python, it takes a couple of lines. You can run this in the python console (type python at the command line, then start typing your commands):

import random print(random.randint(0,100))

Groovy

I have been experimenting with Groovy, a dynamic language that uses the JVM (the Java Virtual Machine). If you have Groovy installed, start the graphical Groovy console with the command groovyConsole.

Math.abs(new Random().nextInt() % 100 + 1)

Perl

While Perl doesn't have an interactive shell like Ruby and Python, you can run a one-liner from a terminal using the perl command. Here is a random number between 1 and 100 in Perl:

perl -le 'print int(rand(100)) + 1'

Bash

You can also do it in the Bash shell with $RANDOM:

echo $RANDOM % 100 + 1 | bc


Analysis: Ruby offers the easiest, most elegant way to generate a random integer from 1 to 100 with a one-liner. But you can do it in most every dynamic language.

Notes: I'm sure this can be done in a Perl one-liner

Tue, 22 Dec 2015

Own your social entries, create them from any device

The ideal is a free, open, federated social-media platform like Identi.ca or Status.net, but even those services, when run by others, are subject to a certain bit rot. They're here today, but will they be tomorrow?

We live in a world of mega-services like Twitter and Facebook. Multi-billion-dollar important companies. And in our zeal to communicate, we spend hours creating free content for them in exchange for free service.

Still, they offer value. If the few people we want to share our thoughts with also subscribe to a given service, there is value. That's how Facebook grew.

On Twitter, I can tell you that having 900 followers does not provide a lot of eyeballs for my tweets. I'm lucky if 40 people see them. Twitter is all about the now. A tweet's sell-by date is maybe a half-hour after it's created.

I think short, social-media-style updates are valuable.

But I want them to be my own. I have that, pretty much, when I create them through my blog and distribute to social-media services from there.

From my laptop, I'm about 90 percent of the way there. I'd like sharing links to be a little more automatic. Like on mobile devices. Android has "intents." Apple has the same thing, but I don't know what they call it.

And mobile is the place where I have the furthest to come.

If I were using WordPress, I bet the WP app for Android (and iOS, too) hooks into "intents" and allows link sharing.

But I don't use WordPress.

My Ode blog works off of a traditional filesystem on the server. There is no database. Create files, and with a few tweaks and pokes, you have a live blog entry.

I don't want to go back to a database. Flat files on a server is not just Ode's but every static-blogging tool out there's killer app.

So what I need is a mobile app that hooks into "intents" to allow link sharing and produces the files I need, gets them on the server and does what I need to make those files appear on the live site.

It shouldn't be too difficult. (Famous last words.)

It's what's driving me to learn Java and Android development. That and everything else.

Having a problem to solve and making something to do that. What could be better?

Don't hate me because I like Netbeans

Was prepared to hate Netbeans, but I kind of like it

Mon, 21 Dec 2015

Go's net/http not fast enough? Fast HTTP is up to 10 times faster

Go's net/http not fast enough? Fast HTTP is up to 10 times faster https://github.com/valyala/fasthttp #golang

Sat, 19 Dec 2015

Personality type: I'm an INTP

Every take one of those personality-type tests?

I did. Turns out I'm an INTP:

INTPs are independent, reserved, and live in a world of ideas. They can work well on a team but prefer to work alone in sporadic bursts of energy.

Although private, INTPs can at times seem totally outspoken because of their directness of communication and economy of words.

Other people may assume that INTPs say very little, but this is only when there is nothing to say. The general chitchat of social life is not for them.

They prefer to speak only about areas that interest them, things they consider important.