Shout Out!

Hello everyone!

Lately, I’ve been getting a lot of notification messages about new users joining this blog. I just checked the numbers and WordPress tells me that there are 7,264 of you out there in cyber-space. Wow! Hard to believe, over seven thousand.

Then I think: That’s a huge number for a blog with so little current activity. In last three days, this blog received only 19 visits. In the same period, 58 subscribers were added. How can that be a thing? How is it even possible? What’s up?

So this post is all about you, the readers and subscribers to this blog. That is the real yous out there. This is your chance to show that you are not web hack or a digital hallucination. How? Write a comment! I’d like very much to hear from you. What do you like about the blog? What would you like to see covered? What’s on your mind? Say anything you like within the bounds of good taste. Still, if you think the blog sucks, say so!  😉

The opinions of real people matter!

Best regards;

Peter Camilleri

Please note that comments with promotions, spam, or links will NOT be accepted.

Another digit please!

Well, it’s a smallish milestone, but I’ve finally made it to the six digit club! Here take a look at this ego gratifying selfie:

I must say that my download study has been given a boost last week as weekly downloads hit an all time high of 3,335. I suspect this may have something to do with my increased level of activity on the stackoverflow web site, but that is largely speculation, It could just as easily be one of those volume blips that occur from time-to-time. I know however that it is not driven be release activity as only one gem was updated that week.

Well onward and upward.

Best regards

Peter Camilleri

 

The best news I’ve heard in a LONG time!

Hello All!

One of the most pernicious and damaging mistakes, injurious to world progress, has to have been the decision to allow the patenting of software. These patents have served to obstruct progress, destroy innovation, and fatten the wallets of lawyers and greedy patent trolls.

Now, to some, software patents are an awesome idea. If your goal is to provide more work for legal departments at large companies or you need to attack a competitor with the gaul of being better than you, then software patents are for you! They’re also great at destroying small, upstart companies with all of their “new ideas” stuff. Heck, even if the patent does NOT apply, prolonged legal proceedings can serve just as well.

Seriously, software patents are of dubious virtue at the best of times. Now finally, after many years of suffering under the lawyer’s savage yoke, there may be some hope:

Here’s Why Software Patents Are in Peril After the Intellectual Ventures Ruling

This a great article with a video for the tl;dr; crowd. Still, I’d like to focus on a little excerpt from the article that is, I think, the heart of the matter:

Pointing out that intellectual property monopolies can limit free speech, Mayer notes that copyright law has built-in First Amendment protections such as “fair use” and that patent law must include similar safeguards. He suggests that the safeguard comes in the form of a part of the Patent Act, known as “Section 101,” which says some things—including abstract ideas—simply can’t be patented in the first place.

I really hope that this is the beginning of the end for software patents! I really do! I look forward to the day when they and the profits of the trolls are all dead and buried. Just don’t expect me to bring flowers to the grave site.

Best regards;

Peter Camilleri (aka Squidly Jones)

 

Gem Download Study: 24 Weeks

Well 12 more weeks has passed and it is time for the next installment of the Ruby Gems Download study. The goal of this study was to see if it was possible to observe patterns in the download rates that might lead to useful conclusions about the mix of entities doing the downloading. The gems repository makes this download data readily available. For my gems, you can see that data here.

For the 24 week report there are two main data findings. A graph of individual, cumulative downloads for each gem for 24 weeks and a graph of the weekly downloads for all gems for the same period.

gem_downloads_24

I have collected 24 weeks of data, so here is the graph showing the rate of downloads.

If you look, you will see that the slopes of the lines vary. Some lines are very flat, while others are sloped upward at a much sharper angle. This means that the rate of downloads is also different.

weekly_downloads_24

The weekly, combined results show that the rate of downloads is anything but constant. The valleys seem to correspond to periods this summer when large numbers of people would be on vacation (Not me of course; I’m never/always on vacation)

The spiky peaks do tend to correspond to times when large numbers of gems were mass updated. This is especially the case for the last and fourth from last points where a code of conduct and changes to the mini_readline gem were propagated to most of the gems. This is clearly indicative of automated downloading.

This study shall continue. I estimate that the next posting on this matter will be one to study an entire year’s worth of data.

Until then, Many Thanks and Best Regards;

Peter Camilleri (aka Squidly Jones)

Update: fOOrth 0.6.5 released

Hello Again!

This release of fOOrth continues to work its way through the backlog of work on the way to version 0.7.0 and the ultimate goal of version 1.0.0. Here is a brief summary of what’s new in this release:

Updated for V0.6.5

  • Added the ability to override the default method mapping.
  • Added report formatting to allow arrays and hashes to be displayed as bullet points and arrays as neat, efficient columns.
  • Added several deep introspection methods for objects, methods, and classes.
  • Bug Fix: Instance variables may now be created by exclusive methods.
  • Cleanup: The “force compile” flag was another carry over from FORTH that had no place in fOOrth. It has finally been removed.

The code may be found on GitHub and the gem on RubyGems. Also don’t forget to checkout the fOOrth support site on http://www.foorth.org/.

The big sticking point, now under study, is the issue of defining instance variables in a procedure. This will likely require changes to the method mapping of instance variables, assuming this change is actually made.

In the mean time, best regards;

Peter Camilleri (aka Squidly Jones)

One more bit please!

gem_download_sept_2016

 Hello All!

Well it has been some time since I began working in Ruby and creating little gems of code for my page in the the RubyGems.org repository. When I looked at my stats this morning I realised that I had reached a milestone of sorts. The total downloads counter showed a value of 65,881 downloads!

Now, it is a well known fact that a sixteen bit, unsigned integer can count up to 65,536. This means that my download total no longer fits into that data type. While this is not nearly as impressive as the video Gangnam Style blowing through the YouTube signed 32 bit integer view count limit of 2,147,483,647, it is my accomplishment! 😉

One more bit please! That’s right, I’d like a seventeen bit integer, Thank You Very Much!

Best regards;

Peter Camilleri (aka Squidly Jones)

Gem Download Study: The first 12 weeks.

As most of the readers of this blog know, I release a lot of Ruby language gems. They are announced on this web site regularly. Now it is possible for me to check how often these gems are downloaded. You can see that data here.

Now fairly early on, the view was expressed that most (if not all) of downloads I was seeing were the result of “bots” that grab everything they can find and gather the results for their industrial overlords, most likely in China. For some time I’ve wondered if that was true. To be honest, I hope it isn’t, but the nagging doubt never left me.

So I came up with a plan. I would track the downloads of my gems on a weekly basis for 12 weeks and see if I could see some trends that might indicate the nature of the download traffic. Well, it’s been 12 weeks and here are my initial results:

Gem_Downloads_12Now I know it’s a bit of an eye chart, but just click on it to get a better view of the data. Maybe even open it in another tab for easier reference.

The first thing that becomes visible is that the slopes of the lines, and thus the rate of downloads, is not the same for all of the gems. Some of the gems are clearly more popular than others.

Even more telling, is that for one gem, “vls”, a change was made recently, that described the use of this gem with the popular “rails” web framework/library/system. Once this appeal to this very active group was made, the rate clearly began an sharp upward trajectory.

Now this is only 12 weeks worth of data, so one should not read too much into these results, but they seem to indicate that at least some of these downloads can be traced to real people. Time will tell. I plan on my next study release at the 24 week point.

Yours Truly

Peter Camilleri (aka Squidly Jones)

Announcing the Mystikó Encryption gem

Let me start by saying that there is some very important advice to any programmers who might be tempted to create the own encryption security systems. That advice is well summarized by the word: DON’T!

Most home-brewed encryption schemes, including many used in vital embedded systems, are laughably weak. Straying from proven, working standards is a recipe for disaster and loss. So I say again: DON’T!

Having said that, why am I now going to discuss the Mystikó encryption gem? Very simply, this gem is only intended for educational and amusement purposes. Under no circumstances should it be construed to be a serious encryption tool or fit for protecting actual property, privacy or security.

So why do it? Why not? It was a fun challenge and a good follow on for my earlier work with pseudo-random number generators. It was also an interesting way to learn a little bit more about this fascinating topic while having fun with Ruby programming.

The gem itself is at: The Mystiko gem. The source code may be found at: Source Code. The source code also comes with a special added treat! In the Challenge folder of the source code you will find the file “challenge.bin” This file contains a paragraph of famous text encrypted by the Mystiko gem.

At this time, I am still working on raising some funds/prizes for the first person to crack this code, after which the plain text and the key will also be published so that others may verify the winning entry!

So, what shall happen? Will a jury rigged encryption program stand the test of time? or will it be cracked soon as predicted by common wisdom? Time will tell!

Yours Truly

Peter Camilleri (aka Squidly Jones)

Announcing the vls utility.

One of the joys of modern programming is the ability to utilize external code libraries to speed up development, saving time, and reducing wasted effort. The Ruby language is especially blessed in this regard with its system of code gems. Instead of the narrow minded NIH (not invented here) mindset, the world has become our tool chest.

There is, however, a downside to this modular nirvana. Versioning! To be precise: Am I using the correct version of each (and every) little code gem? This problem goes back all the way to the old Visual Basic days. Back then it was called DLL Hell, as developers struggled to maintain a myriad of cryptic, often poorly documented binary files.

Now Ruby does have the bundler utility that allows gem versions to be specified, but what if you simply want to know: When I use this application, what modules/classes are being used?

The vls utility answers that question. To use this simply enter:

$ vls <names>

where names are a list of gems/files to be required before the modules are listed. Here, see an example of this in action:

$ vls fOOrth
vls (VersionLS): 0.1.0

Bignum, 0.0.5
Complex, 0.0.5
Date::Infinity, 0.0.5
FalseClass, 0.0.5
Fixnum, 0.0.5
Float, 0.0.5
FormatEngine, 0.7.2
FullClone, 0.0.5
Gem, 2.2.2
InArray, 0.1.5
Integer, 0.0.5
MiniReadline, 0.4.8
NilClass, 0.0.5
Numeric, 0.0.5
Rational, 0.0.5
Regexp, 0.0.5
RubySscanf, 0.2.1
SafeClone, 0.0.3
Symbol, 0.0.5
TrueClass, 0.0.5
XfOOrth, 0.6.1

The vls gem may be found at: https://rubygems.org/gems/vls and the source code lives at: https://github.com/PeterCamilleri/vls.

Yours Truly

Peter Camilleri (aka Squidly Jones)