Are You Apples New Cash Cow or Dongle Buyer

Splitter Keeper Keyring

Splitter Keeper Keyring

Its no secret I’m not an Apple fanboi, more about their alledged theft of *nix code and theft of other peoples ideas and products (see the info graphic at the bottom). I’ve also been saying for a while since Steve Jobs passed, Apple has lost its creativity and innovation, no new products since this time kinda reinforced this opinion. All they have done is made them larger and thinner and much of the same-same. The recent lapse in updates from their portable market where they were effectively selling 3-4 yr old technology for modern day prices and other such shyster moves adds to the pile. 

However it appears Apple has been slowly been creating its new cash-cow in the background built on top of Jobs work. Much like a wolf in sheep clothing they disguised it as a feature and enhancement to make their products thinner and lighter with the promise of better products.

It seems its been more about moving the fan bois and fan girls into kill box as it were. Sheep to the Slaughter.  

Apples New “Cash Cow” Product

Apple iDongle List

Apple iDondle List by  Drew Breunig

It seems the new product from Apple, is iDongle or rather iDongles. Currently none of the flagship products are able to communicate with each other, straight out of the box without a middleman.

What happened exactly to “it just works” ?. 

I challenge you to link your new iPhone 7 to a Macbook without needing a middle-man to handle the exchange.

Challenge #2, show me how you charge your Macbook, and connect to a printer ?

Challenge #3, show me how you charge your iPhone and listen to music with your supplied earphones ? 

While everyone were getting their rocks off about how “shiny and slender” or “pretty and dainty” the new Apple products were because they removed this connector and that connector. All because those connectors were big and bulky, but it seems secretly Apple were positioning their new product line.

From Drew Breunig’s Twitter Post (image right), that’s a tonne of different connectors and dongles you need to make all your Apple products work together. Don’t forget there are Firewire, USB, USB-C, Lightening, New Lightening, Magsafe, VGA, HDMI, HDMI Mini, 3.5mm Jack, Micro USB and Mini USB off the top of my head, possibly other connectors too.

Out of the 17, yes SEVENTEEN dongles that Apple has released, NONE of them make a common task like charger, printer and speakers all connected at once possible. The most you can connect is 2 devices, for more than that, you need to Daisy Chain them, and link 2 or 3 different dongles, and CHING CHING, you’re being milked by Apple like a good cash cow. 

Secondary Market

Uncourage with Adaptor

Uncourage with Adaptor

Apple has recognised that even fan bois and fan girls are showing discontent, so they have reducing the price of cable bag you now need, some discounted 50% or more. This doesn’t change the fact you need carry a tonne of connectors, the fact many many people are losing the connectors but I guess it is a little less painful on the wallet… not much though.

This has spawned a secondary market of new gadgets. When I say new gadgets I more mean a re-appropriation of an old DJ Gadget. 

One of my friends who is a DJ were ALWAYS losing his keys, so back in the late 1990s he made a keyring with a Headphone Jack, some speaker wire, a ring loop and a small carabena and stuck his keys into a spare jack point so he always knew where they were. The same guy also had one of those whistler things on his keys so he could find them in the dark. He even had a sample whistle he used to play via the club speakers to light them up. 

I saw some years later a better constructed version of this, or a more highly polished remake. Back on track a company called Uncourage took this old method and created a keeper for your required 3.5mm speaker dongle, so you don’t lose it so easy or so often.

I used to have one of those pictured, which includes the safety keeper and a splitter for a few quid. 

A History of Apple Theft

Take note of Steve Jobs quote about Apple Shamelessly stealing good ideas ūüėČ

Idea's Apple Stole and Claimed for Their Own

Idea’s Apple Stole and Claimed for Their Own

Infographic by Best Masters Programs

PHP Security Cheat Sheet

Following on from the Photoshop Cheat Sheet post, I figured I’d make it a series of posting the cheat sheets I use almost daily or at least when I use certain programs. This PHP Security Cheat Sheet by SK89q has been next to my Computer for quite literally years. I almost don’t need it, I know it so well but as a check list its always worth reading over to be sure I missed nothing before releasing an application to the public.

You can see more up to date stuff on OWASP but I like this check list better, the OWASP Cheat Sheet Book (Website) is an amazing thing to have a good read of on a whole manner of geeky subjects.

PHP Security Cheat Sheet

PHP Security Cheat Sheet

You can click the picture or right click it to save a big version of it, hit escape to close the image as its a high resolution image.

Driving Test Revisions

Boxer Behind The Wheel

Boxer Behind The Wheel

I recently passed the Theory Test, so I’ve been watching the latest news and there is a little bit of research done by the DVSA (Driver and Vehicle Standards Agency) which concluded at the end of August (2016). Its a little late to have any say now if you missed it, but you could have given your views on proposed improvements to the current driving test. The results still haven’t been released but should be interesting.

The Key Points they are asking about are:

  • Independent Driving – Increasing the time from 10 minutes to 20 minutes, there the examiner will test you on traffic signs, give you directions or a combination of both.
  • Navigation and Directions – Asking drivers to follow directions given by a Sav Nav / Phone during the above Independent Driving section. 
  • Manoeuvre Updates / Changes – Replacing some manoeuvres such as reversing around a corner, with reversing or parking in a parking space.
  • Vehicle Control / Safety – Asking the driver to turn on the Rear Window Demister or Fog Lights. 

Its probably a very good thing, I would have thought reversing around a corner would be fairly standard things to learn. Personally parallel parking looks harder to master, but parking in a parking space and following a SatNav are probably good skills to have.

 

 

Image By Palmer W. Cook

 

Maintaining A Drop List Database

In Part 1: What You Need to Build A Drop List, we discussed the costs, memberships, and other requirements you would need to build a drop list from the zone file. In Part 2: How To Build A Drop List, we discussed how to actually populate the database.

Now in Part 3: Maintaining A Drop List Database, we will look into how you will update the database, remove old names, add new names and keep it accurate and up to date.

Drop List Maintenance

Now with the recently completed drop list, you need to maintain the database. Roughly 15,000 to 17,000 domains expire on any given day. Around 5,000 to 7,000 are no longer required allowed to drop per day. On average 5,000+ new domains are created per day, which are a mixture of all extensions and recently released. Around 100 to 200 of these are drop caught on the day. Around 150 are registered during the following week as various people paw over the drop lists, expired name lists and other such lists.

All of these need scanning, updating and / or removing from the database on a rolling basis as well the month of old data accrued during initial population.

You can see how quickly the data will become stale and unwieldy.

Remove The Old Names
There are 2 ways to remove up to 200,000 expired names from the previous month of dropped domains, while you’ve been building the database and of course filling it up.

Option 1, Create a small application which scans any dates older than today (now()), and runs them against the DAC. It then (1)¬†removes any unregistered names, and (2) updates the dropdate on the rest (an tag/etc). This uses a wedge of your DAC¬†quota, which isn’t good if you’re planning to drop catch as well.

A simple query like…

You may need to include an additional where statement to check the last updated field, and if its been updated in the last 2-4 weeks, don’t scan it.

You can change 30 Day to any number you wish, but it will stop you rescanning the same names before time. ¬†Another alternative is to include a “rolling” and a “maintained” flag, so you can run full database scans and daily cleans.

It may also be worth adding an “ignore” boolean flag, for names like .sch.uk and .ltd.uk and other Nominet owned domains so you don’t keep scanning them. While we’re modifying the data a base, a “pastdue” flag may help, which is for domains which haven’t dropped in sequence.

I have updated the database to look like…

Option 2, You could perform a “DIFF” between the original file you uploaded, and download the latest zone file to compare them. The result could then be run as a query to remove those present in the old file but not present in the new one from the database.

This would leave you with around 5,000-7,000 names which have been caught and/or registered containing old data, which would need manual scanning using option 1.

I would use Linux Shell Diff for this job, but I have linked to a PHP variant since that’s my chosen language for these articles.

Along with the 200,000 removed, there would be 200,000 newly created names, which could be found with a reverse “diff” of the above, or by repeating the loading names into the database with the new file. Again they need scanning, this would bring your database bang up to date.

This is easy on the dac, but increases server load, and complexity, I personally would use option 1. This way when you have a non-catch day you an pound the database and bring it up to date.

 

Rolling Maintenance

Every day, you would need to perform the above on a smaller scale to keep up to date. I would also suggest scanning a date approx 1 week, 1 month and 90 days ahead. On a rolling basis this makes your database easier to manage and control.

Today, when the article were wrote not published, there were:

18,929 moving from Registered Until Renewal onto Renewal Required (92 days from drop).
15,805 names moving from Renewal Required to Suspended (60 days from drop).
10,203 domains 30 days between Dropping and Suspended.
7,142 domains, 7 Days away Dropping.
6,310 domains moving from Suspended to Dropping Today.

If you don’t perform rolling maintenance, your daily drop lists would contain ¬†up to 13,000 renewed domains every day, making it harder for you to find gold as you look further ahead.

This rolling script can be made using my Query Script or the Script made part 2.

PHP Switch Script

As an upgrade to the above scans, you could use the script from part 2, and add a php switch, to modulate the query results and the MySQL updates, so instead of having 3-4 small apps, you could have 1 app with a switch performing the same job

Stripping Out

Whatever method you use above, it will you’ll need to write more to the database… I would set a daily cron to load between 12:30am – 1:00am, and use for example…

This will select 5,000 domains, with a drop date older than today but not updated in the last 2 week, you could add an “AND “ignored” != “1”” to the query as well.

A few crons to run on various sub-selections, on the +7, +30 and +90, this will use about 15-20,000 queries per day. A top tip here is, the further into the future you go, the longer the scan date you use. So scanning at +90 days, you need your last scanned to be 70 days, at 30 days you want 40 days, and 7 days you want 20 days. Using catch-free days means there will lots of days where you’re scanning only a few thousand per day.

The Script made in the previous part or using my Dac Query script can be adapted to make this. I think I will post some code in the summery post, if your totally lost.

This whole process including coding, database design, would take approx 30-35 days depending on your efficiency, resources and planning.

This maintenance script can be made using my Query Script or the Script made part 3.

Accessing Your Drop Lists

I will go into more detail in the 4th part about “Accessing¬†Your Drop Lists”.

I were going to include this in this article, but it ended up yet again longer than I expected. This started out as a single article, now its looking like 5 parter, possibly 6 if I put some code together.

Number Plate Failure to Buy

S73VNS Reg Plate

S73VNS Reg Plate

I recently posted about a DLVA Auction I were interested in. As it happens the main plate I were interested in were S73VNS or in plain text STEVENS.

I opened the bidding at ¬£950, and it rapidly hit ¬£1,500 so I hit ¬£2,000 hoping to scare people away, and then another 2 bids came in, ¬£2,100 and ¬£2,200 and it sat there for a while. I debated pushing it to ¬£2,500, but didn’t in the end.

Now a month or so later, I kind of regret not pushing that final 2.5k bid.

The maths would have worked out like this…

£2500 + 20% VAT
£3000 + (8%+VAT)  РBuyers Premium
£3288 + £80 РAssignment Fee
£3368 РTOTAL

As a personal reg and not investment, were about £500 over my personal money amount. Now I have picked up a suitable car to put it on, which were a steal (pending a full check up), I could have swept the £500 out of the car fund.

This is all the assumption that a £300 leap on £2200 would have secured it for me.

WordPress Plugin Errors and Clearing All Plugins

Slimstat WordPress Plugin Error

Slimstat WordPress Plugin Error

A recently plugin which were auto-updated by WordPress didn’t execute properly. I have no idea why or what happened, the logs didn’t show anything special.

This error meant that: 1, My website were down with an error and 2, Even worse that my uptime checker script, failed to notice this. As it happened I were due to update some files and found the site were down, it had been down for anywhere between 3 and 4 hours.

Fixing The Problem

The problem is quite easy to fix, you need to disable the particular plugin or all plugins directly from your database. This is useful not only when WordPress plugin updates go wrong, but times when WordPress is loading blank pages or you’re unable to access the admin pages after a new version of WordPress is installed.

You can easily disable all WordPress plugins directly from your database. This is useful when you have some problems with your WordPress installation such as not being able to log in to the admin area and/or having blank pages.

You need to login to your WebHosting control panel, which is probably cPanel.

From here you need to select phpMyAdmin, which will probably redirect you. From here select the appropriate WordPress Database from the list on the left hand side.

Scroll down the list of tables until you find the one called “wp_options”. I suggest you click on the column names (option_name ^)and set them to Alphabetic. Look for “active_plugins” which should be on the first page..

MySQL Active Plugins

MySQL Active Plugins

In a clean install this will likely have 2 plugins enabled on this list, which are Akismet and Hello Dolly. This means the “wp_options”.”active_plugins” column will look like:

a:2:{i:0;s:19:”akismet/akismet.php”;i:1;s:9:”hello.php”;}

Option 1: Disable ALL Plugins

Simple click the little pencil icon or “Edit” (see above pic), or double click the line underneath “option_value” and delete all the text, and click save/done, so its now empty.

You should now be able to load wordpress without any problems.

Option 2: Selectively Disable Plugins

If you know which plugin is at fault, you can delete that 1 plugin. If you wanted to disable “hello dolly”, you would change it to:

a:2:{i:0;s:19:”akismet/akismet.php”;}

Each item looks like

i:0;s:19:”akismet/akismet.php”;

i:1;s:9:”hello.php”;

This means deleting everything between i: and ;¬†which is the line for each plugin, ensure you delete the whole section. If you don’t correctly edit it, WordPress to clear the list and disable all plugins anyway.

You should now be able to login again to WordPress.

Option 3: MySQL Query

There is an easier option, and that’s to run a MySQL query like this…

Once the above is completed, you should be able to login to WordPress.

Reactivate WordPress Plugins

Now you can login back in to WordPress, you will need to reactivate all your chosen plugins. I would recommend doing this 1 by 1 so you verify each one is functioning correctly. You should also take this opportunity to delete any unused plugins and update any out of date plugins.

In my case, it were simply updating the plugin, and re-activating it and all done.