Category Archives: technical

above the cloud storage

Who wants to go into business with me?

I’ve got a super-cool storage company idea.

Load up a metric buttload of cubesats with radiation-hardened SSD storage, solar power, and [relatively] simple communicaton stacks (secured by SSH or SSL, of course), and launch them into orbit.

You think cloud storage is cool? What about above-the-cloud storage?

Pros:

  • avoid national jurisdictional rules, since the data will never be housed “in” a specific country
  • very hard to attack physically
  • great reason to use IPv6 addressing

Cons:

  • expensive to get the initial devices into orbit
  • software maintenance on the system could be annoying
  • need to continually plop more cubesats into orbit to handle both expanded data needs and loss of existing devices due to orbital degradation

Who’s with me?

dave winer is wrong

Or maybe he’s right. But for the wrong reason.

Over on Medium, which is where I saw his post, Dave said:

“The problem of requiring HTTPs in less than 140 chars: 1.Few benefits for blog-like sites, and 2. The costs are prohibitive.

There’s actually a #3 (sorry) — 3. For sites where the owner is gone the costs are more than prohibitive. There’s no one to do the work.”

While this was more-or-less true-ish in times gone by, with the advent of truly-free SSL (and not merely the manual free edition you could get from StartSSL) from Let’s Encrypt (see my how-to), automated, hands-off maintenance of your SSL-iness is possible (and encouraged).

There are, potentially, good reasons for saying SSL won’t be required. But blaming costs, upkeep, and “few benefits” are not among them. If anything, SSL-ifying your blog will help with some (not all) attacks launched against self-hosted/-managed services where login data can be otherwise captured in plaintext.

Dave, I like you. But you’re wrong on this one.

knoppix remastering virtual appliance

In preparation for an upcoming post on remastering Knoppix, I have made a VirtualBox virtual appliance based on the Knoppix v7.6.1 DVD all set for remastering.

/dev/sda holds the raw files.

/dev/sdb1 is a swap partition.

To use the appliance, download the Knoppix 7.6.1 DVD. You’ll need a boot environment for remastering, and Knoppix has the tools you need to remaster it.

Make sure you mount /dev/sda somewhere memorable. And that you run a swapon /dev/sdb1 before you start.

Have fun.

Download the .ova appliance from me here.

haiku appliance

I have been a fan of Haiku for years – and BeOS since way back in the 90s. I run a Haiku mirror, and try to pay attention to the project’s updates.

Today I am making available a Haiku-OS r1 alpha 4.1 virtual appliance!

Download it from me here (created in VirtualBox, but in .ova format, so should work “anywhere”). Download links for current editions (for new releases of Haiku-OS) will be maintained on my Projects page.

Specs:

  • 1G RAM (could’ve easily gotten away with 512M or even 256M, but given everyone should have 1G free (especially if running VirtualBox), went with this size)
  • 20G storage (dynamically allocated, of course), formatted BFS (because it’s better than NTFS – and doesn’t “actually” format the disk (it does, but only kinda – it’s akin to lazy zeroing in VMware)) in VMDK format (if you care)
  • 2 CPUs
  • 32M video memory
  • network: NAT’d

Appliance [download] size :: ~250M.

sap bapis and hp oo

Couple quick notes:

  • SAP is not designed for automated / programmatic access – their “BAPI”, or binary application programming interface, requires additional licensing beyond just the product to use
    • I made the naive assumption that a “BAPI” was like a WSDL – and it is, but it’s proprietary, not open (and it’s binary, not plaintext XML)
  • HP Operations Orchestration requires an additional, ie not out-of-the-box, content pack and wizard to import SAP BAPIs to make operations

That said, the power of OO can be brought to bear with SAP and imported BAPIs – with the following gotchas:

  • You can only have one BAPI call in a given flow
  • If you want to call more than one BAPI for a given task, you need to have them split into their own subflows, and call the subflows

Hopefully you won’t need to know this. But if you do, I’m happy to save you some of the headaches I have experienced interoperating with SAP & OO.

enable virtualization in the bios of your lenovo t450s

If you install VirtualBox, like I did last week, [at least] under Windows 10, and you have not gone into the BIOS ahead of time to enable virtualization, you will be limited to 32-bit guest OSes.

Enable virtualization, and the 64-bit options become available.

Not sure why you have to enable the hardware virtualization extensions to get 64-bit guest support (nor why it isn’t enabled by default on laptops like the Lenovo T450s which are aimed at business users), but you do.

Thankfully, you can enable virtualization after the install, and you don’t need to reinstall (which wouldn’t be a huge deal, but certainly an annoyance).

show only most recent facebook news feed

(Note: I did this in Chrome – it’ll be a little different in other browsers)

I have several complaints about the book of the face – not least of which is that it likes to reset your News Feed from “Most Recent” (aka most useful) to “Top Stories” (aka whatever Facebook wants you to see).

I also like to avoid the fluff off the other columns (ads, games, groups, pages, chat, etc) when all I want is the most recent stream. So, after some searching, fiddling, and tweaking, I now have my news feed (and only my news feed) appear on the side of my screen in chronological order.

How to do what I did:

  • install the Auto Refresh extension for Chrome (only if you want the news feed to automatically update)
  • go to https://m.facebook.com/home.php?sk=h_chr (this is the mobile Facebook view sorted by chronological order) in a new window (not new tab)
  • right-click on the tab holding the mobile Facebook feed, and select Pin Tab
  • click the Auto Refresh extension button and select how often you want your feed to refresh, and click Start
  • resize the window to a comfortable reading width (mine is about 15% of my screen, or about 3″)
  • slide it all the way to one side of your screen or another
  • enjoy

There are some other ways to accomplish more-or-less the same thing:

  • bookmark the mobile news feed URL
  • set the mobile news feed URL as your home page
  • sign-in to your Facebook account in more than one browser (instead of having two windows in one browser), and load the mobile edition therein

Hope this helps you like it’s helped me.

“like” problems: social ‘voting’ is a bad idea

The news story making the rounds about Facebook the past few days indicates they’re working on a kind of “dislike” button.

The problem with the Facebook “like” button is the same problem Google has with Google+ and their “+1” button: it doesn’t tell you anything meaningful.

Voting on Reddit doesn’t really convey much meaning, either.

Stack Overflow tries to address this with its up/down voting and being able to see the gestalt votes as a ratio (if your rep is high enough (an admittedly low bar, but till a bar, and an aspect of the gamification of Stack Oveflow)). But that doesn’t really cut it, either.

The problem with online “voting” (or “liking”, or “plussing”, etc) is that it is a dimensionless data point.

Does getting 300 “likes” on a post make it “good”? Does it reflect on its quality in any way? How about getting nearly 400 upvotes (and only a handful of downvotes) on a question about MySQL (along with 100+ “favorites”) mean the question is good? Does it show something is popular? Are people clicking the vote mechanism out of peer pressure, because they actually agree, or because they think it needs more visibility?

Dimensionless data that gets used as if it has meaning is a problem – one of many problems of social media and web sites in general.

Of course, you will object, quality is a potentially-subjective term – what does “quality” mean, exactly, when talking about a post, website, question, etc? Is it how well-written it is? Is it how long? How funny? How sad?

Take this question I asked on Stack Overflow, “CSS – how to trim text output?” It’s clearly-written, was answered excellently in 2 minutes, and is a “real” problem I had. Yet in the 4.5 years since asking, it’s only gotten 2 votes total (both “up”, but still only two).

Reddit has upvotes and downvotes – and your comment/post score is merely the sum of the ups and downs; below a certain [relative] threshold, you won’t see content unless you ask for it.

One of the biggest problems with all of these systems is that the “score” doesn’t actually tell you anything. An atheist subreddit, for example, will tend to downvote-into-oblivion comments that are theistic in nature (especially from Christians). Quora‘s voting system is highly untransparent – downvotes don’t really seem to mean much, and upvotes are pretty much just for show.

This derives from the fact that these sites use dimensionless data and try to give it a value or meaning outside of what it really is – a number.

What should be shown is the total number of “votes” a given post has gotten – positive negative, reshare, etc – but never combined. A ratio could be displayed, but the sum of the votes is a poor plan.

Facebook, Google+, and others should offer various voting options – “up”, “down”, “disagree”, “agree”, “share”, and possibly others – some of which may be mutually-exclusive (you cannot upvote and downvote the same thing), but you might downvote something you agree with (or upvote something you disagree with) just because of how it is written/presented, etc.

And the total of each type of click should be shown – show me 10,000 people disagreed with what I said, 15,000 agreed; 20,000 upvoted, and 30,000 downvoted; 12,000 reshared it (with, or without, comment).

Using voting as a means of hiding things (and trying to prevent others from seeing them) can be somewhat akin to online bullying – revenge voting has its problems; as does blindly upvoting anything a particular person says/does. Which is why assigning (and then displaying) dimensionless data anything more than a count is dangerous.

system-wide proxying with os x (yosemite)

Perhaps you’re at a coffee shop, and want to ensure your communication is secure.

Or maybe you are out of the country, and need access to something like annualcreditreport.com.

What’s a body to do?

If you have a Mac, set up a system-wide proxy setting for a new Location, of course!

This is a very simple thing to do, but does require you have access to an SSH server somewhere.

Steps:

  • Create a new Location in your Network Preferences (name it something ‘obvious’ like “Proxy” or “Untrusted”Locations
  • Remove services you don’t need (most likely you only need WiFi) Services
  • Go to Advanced -> Proxies
  • Enable SOCKS Proxy and set server to ‘localhost’ with ‘9999’ as the port proxies
  • Start a port-forwarded SSH session in Terminal :: ssh -D 9999 user@remotehost
  • Click OK in the Proxies setting window
  • Click Apply in the Network preferences panel

That’s it. You do need to remember to create the port-forwarded SSH connection, or your web browsers and such will fail to connect properly.

You can change Location easily via ->Location.

Tested on OS X Yosemite. It should work elsewhere, but I only have a 10.10 machine to work with.