tag:blogger.com,1999:blog-18534937310811793572024-03-22T01:50:14.000+11:00Welcome to HOLHoges Online Life -
The mostly technology based comments and musings of Anthony D. F. Hogan. The views expressed here are my own and not those of my employers or clients unless explicitly stated.Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.comBlogger45125tag:blogger.com,1999:blog-1853493731081179357.post-15567363666298850052023-08-31T17:03:00.007+10:002023-12-08T13:05:33.001+11:00Email from my domain registrar, Rebel, saying the registrar of record's going to change?<p>Out of the blue, I got an email from one of my current domain name registrars. It seems they're offloading their .au domain name registration business to another business (<a href="https://blog.anthony.hogan.id.au/2013/12/getting-random-email-from-taiwanese.html">been through this before</a>, at least this time I'm being told in advance). The email correctly listed all the .au domains I hold with them, but had no web link to an FAQ, or to the receiving registrar.</p><p><b>UPDATE:</b> Rebel published an FAQ.</p><p><b>UPDATE:</b> Seems Rebel borked at least the technical contacts in the transfer from themselves as registrar, to Domain Directors as registrar and them as reseller.</p><span><a name='more'></a></span><p>The following is the letter I got:</p><p></p><blockquote><p>Dear (me),</p><p>You’re receiving this email because you have .au domains registered with Rebel. Good news, we’re making a change to help manage these domains more effectively through a partnership with Domain Directors Pty Ltd.</p><p>You are the registrant for the following domain name(s):</p><p>(domains redacted)</p><p>Your domain name(s) are currently being managed on your behalf by Rebel.com.</p><p>Here is what you need to know:</p><p>Moving forward, your domains will be renewed with a new accreditation to Domain Directors Pty Ltd.</p><p>The good news is that other than WHOIS data on the domain, absolutely nothing changes for you.</p><p>Your domains will continue to be fully managed through your Rebel account</p><p>Your domains will remain active throughout the change</p><p>The ONLY change is that the registrar of record in WHOIS will be Domain Directors Pty Ltd. rather than Rebel.</p><p>This change will happen on September 30th, 2023</p><p>You have the option to opt-out of this change. If you would prefer not to have your domain name(s) transferred to Domain Directors Pty Ltd, you can transfer your domain(s) to another registrar prior to September 30th, 2023, but we hope you stay.</p><p>Please note that all registrars must comply with the <a href="http://www.auda.org.au/policies/auda-2004-04" target="_blank">.AU Domain Name Suppliers' Code of Practice</a> and <a href="http://www.auda.org.au/policies/auda-2013-02" target="_blank">auDA's transfer policy</a>.</p><p>As per auDA’s requirements, we will send a reminder email seven (7) days prior to the transfer.</p><p>If you have any questions or concerns, please contact Rebel’s customer service team. Kind Regards,</p><p>Your Rebel Team</p><p>Thank you,</p><p>Rebel Customer Support</p><p>Rebel.com</p></blockquote><p></p><p>No link to an FAQ!</p><p>No link to this new "Domain Directors Pty Ltd"!</p><p>No reason for why this is happening.</p><p>All happening in about a month's time!</p><p>So far, I've been able to figure out that "Domain Directors Pty Ltd" is the Australian arm of "<a href="https://www.instra.com/en/about-us" target="_blank">Instra Corporation</a>". It sounds like Rebel is offloading the work of managing auDA regulated domains to Instra. I've contacted Rebel for more info, and will update when I find out more.</p><h2 style="text-align: left;">Update 1:</h2><p style="text-align: left;">Emailed in to Rebel. They sent me a link to an <a href="https://support.rebel.com/hc/en-us/articles/18422410448667" target="_blank">FAQ they've now published</a> here. The caveat being that the FAQ had a different business name in it, "Domains Party Ltd". I emailed them again and received a response back saying that, indeed, their FAQ has a typo in it, and it's actually "Domain Directors Pty Ltd". They haven't updated their FAQ yet with the correct business name.</p><p style="text-align: left;">The summary of the FAQ is basically that Rebel is going to stop directly registering .au domains, and instead resell rego services from Instra Corporation / Domain Directors Pty Ltd. Whilst searching for more info on this, I found this page over at <a href="https://domainer.com.au/june-2023-state-of-the-domain-industry/">Domainer</a>. It seems to suggest that Rebel doesn't have very many .au domains under management - so they're probably doing this for cost optimisation (auDA imposes a number of administrative requirements above and beyond other registries).</p><h2 style="text-align: left;">Update 2:</h2><p style="text-align: left;">It seems when Rebel transferred from themselves as registrar to reseller via Domain Directors, they somehow messed up the technical contacts of all the .au domains in WHOIS data.</p><p style="text-align: left;"></p><blockquote><p style="text-align: left;">Thank you for contacting Rebel. </p><p>We apologize for the mix-up with the Technical contacts for your domains on WHOIS. This is currently being worked on and the technical contact for all the domains in the list that you sent to us in your email have been fixed. We have also reviewed other AU domains in your portfolio.</p><p>We believe that there might have been some issues with these contacts at first which created more problems when we partnered with Domain Directors and data had to be imported into their systems. We're working to fix the issue but it's going to take a couple of days, and we plead for your patience while we work on this. </p><p>We would like to assure you that the mix-up did not affect any of your domain contacts in our database.</p></blockquote><p></p><p style="text-align: left;">Hopefully it's all sorted out soon. I find on a related note they often seem to pick the wrong contacts out of the list I have in my account as the registrant, and then I have to play the dance of submitting ownership change, waiting for emails, getting the incorrect registrant to click the link, me click the link, and then waiting again.</p><p style="text-align: left;">My thanks to another Rebel customer (thanks, Martin!), who contacted me and some others, with news on how they'd found me and others listed in the WHOIS of domains they manage.</p>Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-89201808921234552492022-04-16T12:56:00.000+10:002022-04-16T12:56:05.118+10:00NBN Speeds - what about upload?<p>So, when the NBN was introduced to Australia, each of the tiers was generally named after the maximum theoretical speed you might get in a "perfect world" scenario... but then marketing got a hold of things...</p><span><a name='more'></a></span><p>In the beginning, the plans had speeds listed in maximum downlink and uplink values, based upon the size of the pipe provisioned to an end user over the NBN.<br /></p><p>E.g.</p><ol style="text-align: left;"><li>12/1 - 12 Megabits per second down, 1 Megabit per second up<br /></li><li>25/4 - 25 down, 4 up (and I think for awhile this was the max for fixed wireless)<br /></li><li>50/20 - 50 down, 20 up</li><li>100/40 - 100 down, 40 up</li></ol><p>Then, various market pressures (the requirement by government that NBNco be a profitable commercial enterprise rather than a common public good and therefore have an increasing ARPU, as well as COVID lockdown teleworking revolution) drove a need for change.</p><p>Many ISPs were pinged by the ACCC for advertising plans that stated the maximum theoretical speed, but very rarely achieved that, and they were fined. Average expected speeds started to be advertised, and numerical names that made sense, but had caveats, were ditched for a word salad of superlatives, akin to the way that USB revisions have been named - ISPs couldn't be accused of selling a specific number (besides the average they list) and the marketing types had something more sexy sounding to stamp on their services.</p><p>During COVID, with the massive uptick in teleworking, lots more people
were getting online, and the amount of data consumption increased
significantly. The techs figured out that the majority of people
download well in excess of what they upload, so they sacrificed uplink
capacity in return for downlink. Goodbye to 100/40, hello 100/20.. sorry.. "Home Fast". <br /></p><p>I looked high and low for a mapping of the speed tiers in maximum megabits per second high and low. Lots of ISPs don't list uploads anymore. Often not even in their critical information summaries! After a bit of googling, I finally came across this <a href="https://www.nbnco.com.au/content/dam/nbnco2/2020/documents/media-centre/higher-speed-tiers-media-release.pdf">press release from NBNco (PDF)</a>.</p><p>If you want to know what each of the new tiers actually represents in maximum megabits per second (line conditions etc. permitting, perfect world numbers, YMMV, batteries not included, etc. etc.), here it is, from the above PDF..</p>
<table align="center" border="1" margin="2">
<thead><tr><th>Speed tier</th><th>Max down</th><th>Max up</th><th>Last mile</th></tr></thead>
<tbody>
<tr><td>Home Fast</td><td>100</td><td>20</td><td>Fibre and HFC</td></tr>
<tr><td>Home Fast</td><td>25-100</td><td>5-20</td><td>FTTB, FTTN and FTTC</td></tr>
<tr><td>Home Superfast</td><td>250</td><td>25</td><td>Fibre and HFC</td></tr>
<tr><td>Home Ultrafast</td><td>500~1000</td><td>50</td><td>Fibre and HFC</td></tr>
</tbody></table>
<p>Basically all plans with:</p><ul style="text-align: left;"><li>"Fast" are capped at up to 20Mbps max uplink</li><li>"Superfast" at 25Mbps max uplink</li><li>"Ultrafast" at 50Mbps max uplink</li></ul><p>That said, not all ISPs sell plans with the maximum possible downlink enabled. For example, at the time of writing, one ISP was offering "Superfast" and "Ultrafast" plans with only 200Mbps downlink. This is likely to balance the bandwidth requirements.<br /></p>Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-9352525418460023262017-12-21T16:38:00.000+11:002019-10-14T12:57:11.208+11:00Adding a public SSH key to OVH control panelA quick post this one.<br />
<br />
You bring up your SSH key, you go to paste it into the OVH hosting interface, and then it refuses to show you the button to submit, what gives?<br />
<br />
<a name='more'></a>Not sure? Well, does the key description have spaces in it?<br />
<br />
Eg.<br />
<span style="font-family: "courier new" , "courier" , monospace;">ssh-rsa AA......= Foobar key 1</span><br />
<br />
OpenSSH happily accepts this without issue. OVH's web interface, on the other hand, believes that the format is invalid and won't let you submit.<br />
<br />
Take the spaces out of the key comment, and all is well with the world :)Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-39643167031672115512019-04-23T15:24:00.001+10:002019-04-23T15:24:27.980+10:00How I do backups: rsync is my friend :)There are many many fancy backup programs out there, that have all sorts of cool features. I remember, a long time ago, using ntbackup (which saved my bacon and that of the business I worked for at the time), and later Backup Exec. Of course, now, there's cloud cloud cloud all over the place.. What if, however, you just want to backup from one place to another without a subscription fee?<br />
<br />
Well, it took awhile, and the script's evolved over time, but I presently use rsync for backups. In conjunction with a filesystem that supports hard links, I can store date stamped copies of a given source, where the backup disk only stores changed files between copies, saving disk space - but all the files are ready for direct access within their respective directory heirarchies.<br />
<br />
Your mileage may vary, you may indeed find fancier scripts, but this one works for me :)<br />
<a name='more'></a><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">#!/bin/bash</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"># Script written by Anthony Hogan</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">PROG_NAME=$(basename $0)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">error_exit() {</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>exit_status=$1</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>log_message=$2</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>logger -st "$PROG_NAME[$$]" -- $log_message</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>exit $exit_status</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">}</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">logit() {</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>message="$1"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>[ "${message}" == "" ] && logger -t "${PROG_NAME}[$$]" --</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>[ "${message}" != "" ] && logger -t "${PROG_NAME}[$$]" -- "${message}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">}</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">##############################################################################</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">### Items required</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"># Source path (on local filesystem or an rsync path)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"># Destination folder (Where the backup will be placed)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"># Destination timecode (If we're not autogenerating the date, it'll need to be specified</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"># To specify an RSYNC password, set the environment variable RSYNC_PASSWORD prior to script launch</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">BACKUP_SOURCE="user@remote:/path1 :path2 :path3"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">BACKUP_FOLDER="/path/to/backup/media"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">BACKUP_TIMECODE="$(date +%Y%m%d_%H%M%S)"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">RSYNC_OPTIONS="-aHv --stats --no-inc-recursive --progress --delete-during --modify-window=1 --exclude Thumbs.db"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">export RSYNC_RSH="ssh -o ServerAliveInterval=30 -o ServerAliveCountMax=6"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">if [ "${BACKUP_SOURCE}" == "" ]; then</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>error_exit 1 "No backup source specified! Where am I supposed to be copying files from?"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">fi</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">if [ "${BACKUP_FOLDER}" == "" ]; then</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>error_exit 1 "No backup folder specified! Where am I supposed to be sending the files to?"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">fi</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">if [ "${BACKUP_TIMECODE}" == "" ]; then</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>error_exit 1 "No backup timecode specified! Why are you overriding the default with nothing?"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">fi</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">BACKUP_DESTINATION="$(find "${BACKUP_FOLDER}" -maxdepth 1 -mindepth 1 -type d -name 'inprogress-[0-9]???????_??????' | sort | tail -n 1)"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">[ "${BACKUP_DESTINATION}" == "" ] && BACKUP_DESTINATION="${BACKUP_FOLDER}/inprogress-${BACKUP_TIMECODE}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">BACKUP_DESTINATION_FINAL="${BACKUP_FOLDER}/${BACKUP_TIMECODE}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">logit "Commencing backup from: ${BACKUP_SOURCE} to: ${BACKUP_DESTINATION}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"># Check destination folder for a previous, completed rsync backup from which to hardlink unchanged files</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">BACKUP_LINKDEST="$(find "${BACKUP_FOLDER}" -mindepth 1 -maxdepth 1 -type d -name "[0-9]???????_??????" | sort | tail -n 1)"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"># If no previous backup has been found, then don't include this</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">if [ "${BACKUP_LINKDEST}" == "" ]; then</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>logit "No previous backup found from which to hard link"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>BACKUP_LINKDEST=""</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">else</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>logit "Previous backup found: ${BACKUP_LINKDEST}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>BACKUP_LINKDEST="--link-dest=${BACKUP_LINKDEST}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">fi</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">logit "Commencing rsync"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">echo rsync $RSYNC_OPTIONS "${BACKUP_LINKDEST}" "${BACKUP_SOURCE}" "${BACKUP_DESTINATION}" || error_exit $? "rsync failed!"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">if [ "${BACKUP_LINKDEST}" == "" ]; then</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>rsync $RSYNC_OPTIONS ${BACKUP_SOURCE} "${BACKUP_DESTINATION}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>rsync_success="$?"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">else</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>rsync "${BACKUP_LINKDEST}" $RSYNC_OPTIONS ${BACKUP_SOURCE} "${BACKUP_DESTINATION}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>rsync_success="$?"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">fi</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">echo "Rsync return value: ${rsync_success}"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">case "${rsync_success}" in</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>0|24)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>echo "rsync success!"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>;;</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>*)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>error_exit $? "rsync failed!"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><span style="white-space: pre;"> </span>;;</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">esac</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;"><br /></span>
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">logit "rsync complete"</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">mv -v "${BACKUP_DESTINATION}" "${BACKUP_DESTINATION_FINAL}" || error_exit $? "Failed moving: ${BACKUP_DESTINATION} to: ${BACKUP_DESTINATION_FINAL}"</span><br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">logit "Moved: ${BACKUP_DESTINATION} to: ${BACKUP_DESTINATION_FINAL}"</span><br />
<div>
<br /></div>
<div>
It can be cron'd if the media's available, or triggered by udev rule (what it was initially written for). It doesn't accept arguments, but this'd be trivial to add back in. There are probably better ways to do this, but if you've got bash shell, SSH, rsync and a filesystem that rsync can hardlink on, this'll do it.</div>
<div>
<br /></div>
<div>
Did you find this helpful? Feel free to drop me a line!</div>
Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-65238235167266110072018-12-31T22:48:00.002+11:002018-12-31T22:48:50.411+11:00Well that sucks: 3D printing a mounting bracket to stow a third party turbo head on a Miele S2130 vacuumSo, my mum's got the Thermomix bug. So much so, she's even bought the German mob's vacuum cleaner. Her old Dyson has been relegated to the shed where Dad uses it around his workbench, and I picked up her old Miele.<br />
<br />
Now, at some point, she'd gotten a third party turbo head for the Miele. The first one didn't work so well, but the second one does. It's a bit noisy, but functional. That said, because it's a third party head, it doesn't have the usual hook the Miele heads have. This means that when you are inbetween vacuuming things, you can't stand the wand up in the back of the vacuum, and instead have to rest it up against the wall, or drop it on the floor.<br />
<br />
Having recently bought the Aldi Cocoon Create Model Maker, and only printed little models and puzzles to date, I had an idea about something practical. What if I could design a hook that would strap to the third party turbo head, allowing it to hook into the back of the vacuum?<br />
<br />
<a name='more'></a><br />
I already had Ultimaker Cura installed (it's the suggested slicing program for my printer, and comes bundled with it, that said I have downloaded the Linux version from Ultimaker rather than use the supplied Windows version, and I use the "Wanhao Duplicator i3 Mini" profile, rather than the Cocoon Create one)... but I didn't have something to build a fresh 3D model with.<br />
<br />
I'd been doing a lot of reading about 3D printing and my partner's talked about learning Blender, but I'm not exactly the best at drawing things with a mouse. I'd also read about OpenSCAD and how folks have built parametric models where you can set some variables and the models will adapt to your specifications... this sounded more my speed.<br />
<br />
Downloading OpenSCAD is confusing - the latest release at last check was from 2015... but it is still under active development, so I opted to go for one of the nightly build options. I followed the "getting started" tutorial which introduced me to the shape primitives, seeing how I could add and subtract shapes from one another to come up with more complex shapes.<br />
<br />
I started out by measuring the hook on the original first party head for the vacuum cleaner with a set of calipers - and then set these as variables.<br />
<br />
<span style="font-family: Courier New, Courier, monospace;">// Hook dimensions in mm</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Hook - Width of hook rail</span><br />
<span style="font-family: Courier New, Courier, monospace;">hookw = 3.75;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Hook - Height of hook rail</span><br />
<span style="font-family: Courier New, Courier, monospace;">hookh = 3.55;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Hook - Length of hook rail</span><br />
<span style="font-family: Courier New, Courier, monospace;">hookl = 37;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Hook - Total height</span><br />
<span style="font-family: Courier New, Courier, monospace;">hookth = 15.5;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Hook - Total width</span><br />
<span style="font-family: Courier New, Courier, monospace;">hooktw = 12.1;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Base - Total width</span><br />
<span style="font-family: Courier New, Courier, monospace;">basetw = 9.5;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Head pipe diameter</span><br />
<span style="font-family: Courier New, Courier, monospace;">headd = 36;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Clamp thickness</span><br />
<span style="font-family: Courier New, Courier, monospace;">clampt = 2;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Cable tie width</span><br />
<span style="font-family: Courier New, Courier, monospace;">cabletiew = 8;</span><br />
<span style="font-family: Courier New, Courier, monospace;">// Cable tie height</span><br />
<span style="font-family: Courier New, Courier, monospace;">cabletieh = 2;</span><br />
<br />
I'm a big believer in avoiding "magic" numbers and single letter variables in the middle of code. Forget other people understanding the code, I have to worry about remembering myself what I was doing when I look back! :) ... and if I need to tweak the size for some reason, I just adjust the numbers!<br />
<br />
Hindsight is 20/20... In retrospect, I could have done everything except for the cable tie slots in 2D first, and then just extruded before I put the slots in, but that's not how my mind was working at first :)...<br />
<br />
First I started with the right hand side hook. To me - the hook looked like a cylinder quarter, extruded. I started with a solid "cube", and then overlaid the circle, such that where there was something present for both objects (AND / intersection), I'd keep it, and where there wasn't, it'd be discarded.<br />
<br />
/<span style="font-family: Courier New, Courier, monospace;">/ Right side of hook</span><br />
<span style="font-family: Courier New, Courier, monospace;">module hookR() intersection() {</span><br />
<span style="font-family: Courier New, Courier, monospace;"> cube([hookw,hookh,hookl]);</span><br />
<span style="font-family: Courier New, Courier, monospace;"> linear_extrude(height = hookl, center = false, twist = 0)</span><br />
<span style="font-family: Courier New, Courier, monospace;"> scale([1/100,1/100,1/100]) circle(r=(hookh*100));</span><br />
<span style="font-family: Courier New, Courier, monospace;">}</span><br />
<div>
<br /></div>
<div>
... if you're wondering, I build the circle big, then scale it back, to increase its resolution. I then made the left hook, exactly the same as the right hook, just mirrored:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">// Left side of hook</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">module hookL() mirror([1,0,0]) hookR();</span></div>
</div>
<div>
<br /></div>
<div>
I then needed to space the hooks out from one another, taking into account how wide they are, and what the total measured width was:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">// Both hooks in position</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">module hooks() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">// Position right hook to right edge</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">color ([0,1,0]) translate([hooktw/2 - hookw,0,0]) hookR();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">// Position left hook to left edge</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">color ([0,0,1]) translate([-(hooktw/2 - hookw),0,0]) hookL();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">}</span></div>
</div>
<div>
<br /></div>
<div>
Then the hooks needed to be mounted on what I'd call a rail.</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">// Hook rail</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">module hookrail() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> color([1,0,0])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> translate([-(basetw/2),-(hookth-hookh),0])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> cube([basetw,hookth-hookh,hookl]);</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">}</span></div>
</div>
<div>
<br /></div>
<div>
... and cut out a notch below the hooks in the rail, so they could flex in a bit ...</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">module hookrailnotch() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> color([1,1,0])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> translate([-hooktw/2 + hookw,-hookh,0])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> cube([hooktw - (2*hookw),hookh, hookl]);</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">}</span></div>
</div>
<div>
<br /></div>
<div>
... put the rails together with the cutout to get the hook mount ...</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">module hookmount() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> difference() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> hookrail();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> hookrailnotch();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> }</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">}</span></div>
<div>
<br /></div>
</div>
<div>
Then I described the actual tube of the turbo head - this is what I needed to clamp around...</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">module headtube() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> color([1,0,1])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> translate([0,-(headd/2+hookth-hookh)])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> linear_extrude(height = hookl, center = false, twist = 0)</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> scale ([1/100,1/100,1/100])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> circle(d=headd*100);</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">}</span></div>
</div>
<div>
<br /></div>
<div>
The actual clamp needed to be bigger than this - with a thickness I'd define up above in my variables...</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">module headclampouter() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> color([0,1,1])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> translate([0,-(headd/2+hookth-hookh)])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> linear_extrude(height = hookl, center = false, twist = 0)</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> scale ([1/100,1/100,1/100])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> circle(d=(headd+clampt)*100);</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">}</span></div>
</div>
<div>
<br /></div>
<div>
Then, I subtracted the tube from the outer clamp:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">module headclamp() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> difference() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> headclampouter();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> headtube();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> }</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">}</span></div>
</div>
<div>
<br /></div>
<div>
I measured the largest cable ties I was going to use, and added 0.5mm to the dimensions in case of printing problems.. modelling a channel through which they'd pass:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;">module cabletiechannel() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">color ([1,1,1])</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> cube([basetw,cabletieh,cabletiew]);</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;">} </span></div>
</div>
<div>
<br /></div>
<div>
I then put it all together - the hooks, and the full circle clamp. From the hookmount, I subtracted the space for the cable ties. Two cable ties = two channels.</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">module fullcircle() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> hooks();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> headclamp();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> difference() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> hookmount();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> translate([-(basetw/2),-(hookth-hookh)+(clampt*2),(clampt*2)]) cabletiechannel();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> translate([-(basetw/2),-(hookth-hookh)+(clampt*2),hookl - (clampt*2) - cabletiew]) cabletiechannel(); </span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> }</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">}</span></div>
</div>
<div>
<br /></div>
<div>
I didn't want the clamp to go all the way around the head - for one, there are flanges on the head's connecting tube which mean I can't just slide it on, so I'd need a break. I figured with cable ties, it didn't need to go all the way around anyway - the ties would do that.. so I took the bottom half off.</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">difference() {</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> fullcircle();</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;"> translate([-(headd+clampt)/2,hookh-hookth-(headd+clampt)]) cube([headd+clampt,headd/2,hookl]);</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace; font-size: x-small;">}</span></div>
</div>
<div>
<br /></div>
<div>
Hey presto:</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF4V9vcGi3UNsQ6r7KDWvPQfHqgnUts0lUwqAToyk-uNJYGxbPEvxzQd0iPXfMByz5m1MQ4hcUQa83aGl_RT4_alW7gZDunAi75OfqRsb65GgQTWFBehnbJhTEhxDRdCXgPGzfpdV-2Bwx/s1600/openscad.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="526" data-original-width="384" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiF4V9vcGi3UNsQ6r7KDWvPQfHqgnUts0lUwqAToyk-uNJYGxbPEvxzQd0iPXfMByz5m1MQ4hcUQa83aGl_RT4_alW7gZDunAi75OfqRsb65GgQTWFBehnbJhTEhxDRdCXgPGzfpdV-2Bwx/s320/openscad.png" width="233" /></a></div>
<div>
<br /></div>
<div>
I exported this as an STL, and then imported it into Cura...</div>
<div>
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLk9Xi46pTSBcGIH_45XydmwVDgp5kPd-MF1vWaOKoKx2FsogP1LZFxoj3MImeGhwMqHF43CjcdNL4iIaQG2511XJIIGLNP_0xhzfD54rhQsp9c1idDDxsS2LKzPbXcwXm9sKlTGwYWQEq/s1600/49069631_10215876754286286_7145526640699768832_o.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="973" data-original-width="1600" height="194" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgLk9Xi46pTSBcGIH_45XydmwVDgp5kPd-MF1vWaOKoKx2FsogP1LZFxoj3MImeGhwMqHF43CjcdNL4iIaQG2511XJIIGLNP_0xhzfD54rhQsp9c1idDDxsS2LKzPbXcwXm9sKlTGwYWQEq/s320/49069631_10215876754286286_7145526640699768832_o.jpg" width="320" /></a></div>
<div>
... I accidentally selected "spiralise" which meant it printed with no fill - and a continuous wall - but in the end, this turned out to give it enough strength and flex at the same time. After about an hour or so of printing...</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFHszyAaQIQuj_Hhs76I8S3ce_X3-VSUUTAG2Hcp5XgAHtRNp160yfycmzvMt24D40PoT5ZHQpaKT6Spa9I3Vc_cHFmvZHDum8jWEUG-TgJ48IEXVPvAYzA79zjFIfcoX0SiNftghHWiDV/s1600/IMG_20181230_221338.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFHszyAaQIQuj_Hhs76I8S3ce_X3-VSUUTAG2Hcp5XgAHtRNp160yfycmzvMt24D40PoT5ZHQpaKT6Spa9I3Vc_cHFmvZHDum8jWEUG-TgJ48IEXVPvAYzA79zjFIfcoX0SiNftghHWiDV/s320/IMG_20181230_221338.jpg" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgySOcNZSSAv3bjC65VDyfuLI-WgteAU8Hw0-lLb_hPfdtB68FOVrGY32cT6pk4ZA31uCUEikaK3n2YV2Vfdx1wc3AjO-PCETq2-qPg7t4NkxqihltFqJYkwHCH1LpV49sIi_HBdxzxb4L6/s1600/IMG_20181230_221346.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgySOcNZSSAv3bjC65VDyfuLI-WgteAU8Hw0-lLb_hPfdtB68FOVrGY32cT6pk4ZA31uCUEikaK3n2YV2Vfdx1wc3AjO-PCETq2-qPg7t4NkxqihltFqJYkwHCH1LpV49sIi_HBdxzxb4L6/s320/IMG_20181230_221346.jpg" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6BHWHWPDegLRL2TZVg2pAc7suVqqACmt-2o_i-vuGuBz540opeqAJbFnsKRI5GlFnOYqOMZxcYbZf7hhfqnoTWP3a9okUpqCUzYwn6Rs6U3ipNvvyat8bZylFJVSYbIveukePOVmxBwa/s1600/IMG_20181230_221400.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6BHWHWPDegLRL2TZVg2pAc7suVqqACmt-2o_i-vuGuBz540opeqAJbFnsKRI5GlFnOYqOMZxcYbZf7hhfqnoTWP3a9okUpqCUzYwn6Rs6U3ipNvvyat8bZylFJVSYbIveukePOVmxBwa/s320/IMG_20181230_221400.jpg" width="240" /></a></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx3-WrIPdJqN0y9QkqOdhJ2kJjNga93sFSBKNTKYXHLonQDs8JP4dzdvoyw5OsMMtObz3-vnSkTHLT_aLaNy3TQFt5F8njS7JjPF1Cx-9QNerMHfFsoCWN4qC2cWY-wJij0szQqBWy1R0B/s1600/IMG_20181230_221352.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1600" data-original-width="1200" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgx3-WrIPdJqN0y9QkqOdhJ2kJjNga93sFSBKNTKYXHLonQDs8JP4dzdvoyw5OsMMtObz3-vnSkTHLT_aLaNy3TQFt5F8njS7JjPF1Cx-9QNerMHfFsoCWN4qC2cWY-wJij0szQqBWy1R0B/s320/IMG_20181230_221352.jpg" width="240" /></a></div>
<br />
... and a couple of cable ties:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG4iRJssbaDPNGw_N-CT42oOd9XwPgKplZj1c9H1E7BsuoV8Dpk9Cur5mpfIhFcrmmsjlj0qsZSoP8TpY2vkqMRFPmQqq1B9ojk87orKnqoung5a-m5MQLZkHsJC32Py6SVC0dnbLRODeF/s1600/IMG_20181230_222337.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1223" data-original-width="1600" height="244" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjG4iRJssbaDPNGw_N-CT42oOd9XwPgKplZj1c9H1E7BsuoV8Dpk9Cur5mpfIhFcrmmsjlj0qsZSoP8TpY2vkqMRFPmQqq1B9ojk87orKnqoung5a-m5MQLZkHsJC32Py6SVC0dnbLRODeF/s320/IMG_20181230_222337.jpg" width="320" /></a></div>
<div>
<br /></div>
<div>
Who would have thunk it.. a useful printed doodad!</div>
Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-16420418934711661652018-12-31T21:45:00.000+11:002018-12-31T21:46:49.913+11:00Speaking GCode directly to your 3D printer in Linux when it requires a custom baud rateI recently impulse bought a 3D printer from Aldi. The Cocoon Create Model Maker HE170707. It's a rebrand of the Wanhao Duplicator i3 Mini. I'm slowly learning how to use it, and how to interact with it.<br />
<br />
To date, I've been slicing in Cura and then exporting to SD card, then loading that into the printer, but today I started playing around with sending GCode directly to the printer. Eventually I want to update the version of Marlin it's running, but before I do that, I want to see what settings/version etc. the printer is running.<br />
<br />
Cura can see the printer, and can send it basic requests - but it won't show me the printer's responses to particular GCodes, which I want to see. The inbuilt USB to serial adapter the printer uses is locked at 250,000 baud and this isn't supported by minicom.<br />
<br />
I did some Googling, and in the end, I found out that I could instead use picocom. It's a very simple, cut down serial terminal package.<br />
<br />
<b>WARNING:</b> Don't send commands to your printer if you don't know what they do. Read the instructions first. You change things at your own risk!<br />
<br />
<a name='more'></a><br />
I found the command line:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">$ picocom -b 250000 /dev/ttyUSB0 --echo --imap lfcrlf</span><br />
<br />
... works well.<br />
<br />
<ul>
<li><span style="font-family: "courier new" , "courier" , monospace;">-b 250000</span><br />Set the baudrate to required 250000</li>
<li><span style="font-family: "courier new" , "courier" , monospace;">/dev/ttyUSB0</span><br />The port which my printer appeared on when connected</li>
<li><span style="font-family: "courier new" , "courier" , monospace;">--echo</span><br />Turn on local echo so you can see what you're typing</li>
<li><span style="font-family: "courier new" , "courier" , monospace;">--imap lfcrlf</span><br />Convert the linefeeds sent by the printer in its responses into crlf sequences so it reads right on screen</li>
</ul>
<div>
</div>
<div>
I can then interrogate my printer:</div>
<div>
<br /></div>
<div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">$ picocom -b 250000 /dev/ttyUSB0 --echo --imap lfcrlf</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">picocom v3.1</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">port is : /dev/ttyUSB0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">flowcontrol : none</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">baudrate is : 250000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">parity is : none</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">databits are : 8</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">stopbits are : 1</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">escape is : C-a</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">local echo is : yes</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">noinit is : no</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">noreset is : no</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">hangup is : no</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">nolock is : no</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">send_cmd is : sz -vv</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">receive_cmd is : rz -vv -E</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">imap is : lfcrlf,</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">omap is : </span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">emap is : crcrlf,delbs,</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">logfile is : none</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">initstring : none</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">exit_after is : not set</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">exit is : no</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Type [C-a] [C-h] to see available commands</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Terminal ready</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:SD card ok</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">start</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Marlin 1.1.4</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: Last Updated: 2017-07-04 12:00 | Author: (none, default config)</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Compiled: Aug 25 2018</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: Free Memory: 3263 PlannerBufferBytes: 1232</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:V12 stored settings retrieved (445 bytes; crc -30710)</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G21 ; Units in mm</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M149 C ; Units in Celsius</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Filament settings: Disabled</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M200 D1.75</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M200 D0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Steps per unit:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M92 X80.00 Y80.00 Z400.00 E94.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Maximum feedrates (units/s):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M203 X300.00 Y300.00 Z5.00 E25.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Maximum Acceleration (units/s2):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M201 X3000 Y3000 Z100 E3000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M204 P800.00 R800.00 T1000.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_ms> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.40 E1.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Home offset:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M206 X0.00 Y0.00 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Mesh Bed Leveling:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M420 S0 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X1 Y1 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X2 Y1 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X1 Y2 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X2 Y2 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Material heatup parameters:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M145 S0 H210 B70 F0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"> M145 S1 H240 B110 F0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:PID settings:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M301 P22.20 I1.08 D114.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:LCD Contrast:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M250 C200</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Z-Probe Offset (mm):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M851 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:SD card ok</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><b>M115</b></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">FIRMWARE_NAME:Marlin 1.1.4 (Github) SOURCE_CODE_URL:https://github.com/MarlinFirmware/Marlin PROTOCOL_VERSION:1.0 MACHINE_TYPE:3D Printer EXTRUDER_COUNT:1 UUID:cede2a2f-41a2-4748-9b12-c55c62f367ff</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:EEPROM:1</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:AUTOREPORT_TEMP:1</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:PROGRESS:0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:PRINT_JOB:1</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:AUTOLEVEL:0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:Z_PROBE:1</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:LEVELING_DATA:1</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:SOFTWARE_POWER:0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:TOGGLE_LIGHTS:0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:CASE_LIGHT_BRIGHTNESS:0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Cap:EMERGENCY_PARSER:0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">ok</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><b>M501</b></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:V12 stored settings retrieved (445 bytes; crc -30710)</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G21 ; Units in mm</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M149 C ; Units in Celsius</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Filament settings: Disabled</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M200 D1.75</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M200 D0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Steps per unit:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M92 X80.00 Y80.00 Z400.00 E94.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Maximum feedrates (units/s):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M203 X300.00 Y300.00 Z5.00 E25.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Maximum Acceleration (units/s2):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M201 X3000 Y3000 Z100 E3000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M204 P800.00 R800.00 T1000.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_ms> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.40 E1.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Home offset:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M206 X0.00 Y0.00 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Mesh Bed Leveling:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M420 S0 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X1 Y1 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X2 Y1 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X1 Y2 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X2 Y2 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Material heatup parameters:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M145 S0 H210 B70 F0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"> M145 S1 H240 B110 F0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:PID settings:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M301 P22.20 I1.08 D114.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:LCD Contrast:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M250 C200</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Z-Probe Offset (mm):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M851 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">ok</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><b>M503</b></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G21 ; Units in mm</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M149 C ; Units in Celsius</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Filament settings: Disabled</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M200 D1.75</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M200 D0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Steps per unit:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M92 X80.00 Y80.00 Z400.00 E94.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Maximum feedrates (units/s):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M203 X300.00 Y300.00 Z5.00 E25.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Maximum Acceleration (units/s2):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M201 X3000 Y3000 Z100 E3000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Acceleration (units/s2): P<print_accel> R<retract_accel> T<travel_accel></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M204 P800.00 R800.00 T1000.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Advanced: S<min_feedrate> T<min_travel_feedrate> B<min_segment_time_ms> X<max_xy_jerk> Z<max_z_jerk> E<max_e_jerk></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M205 S0.00 T0.00 B20000 X10.00 Y10.00 Z0.40 E1.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Home offset:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M206 X0.00 Y0.00 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Mesh Bed Leveling:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M420 S0 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X1 Y1 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X2 Y1 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X1 Y2 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: G29 S3 X2 Y2 Z0.00000</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Material heatup parameters:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M145 S0 H210 B70 F0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"> M145 S1 H240 B110 F0</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:PID settings:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M301 P22.20 I1.08 D114.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:LCD Contrast:</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M250 C200</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo:Z-Probe Offset (mm):</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">echo: M851 Z0.00</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">ok</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;"><br /></span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Terminating...</span></div>
<div>
<span style="font-family: "courier new" , "courier" , monospace; font-size: x-small;">Thanks for using picocom</span></div>
</div>
<div>
<br /></div>
<div>
Use Ctrl+a Ctrl+x to quit picocom (cue vim jokes here).</div>
<div>
</div>
<div>
References:</div>
<div>
<ul>
<li><a href="http://marlinfw.org/meta/gcode/" target="_blank">Marlin GCodes</a></li>
<li><a href="https://stackoverflow.com/questions/19991823/use-picocom-sending-request" target="_blank">Using picocom for custom baudrates</a></li>
<li><a href="https://www.3dhubs.com/talk/t/wanhao-i3-mini-firmware/13390/15" target="_blank">Discussion of Wanhao i3 Mini firmware upgrading</a></li>
</ul>
</div>
<div>
<br /></div>
Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-22628039044980497032018-07-08T14:54:00.002+10:002018-07-08T14:54:34.512+10:00Who's that knocking? SSH connection attempts...I have a dedicated server overseas that I use for hosting various things. It's handy to have something that lives in a remote data centre, separate from all the local goings on. It is, however, as a LAMP stack server, out there on the internet, and folks do "knock on the door" frequently.<br />
<br />
I've disabled passworded logins, changed the default SSH port (I know in and of itself, it's not a solution, but it does reduce a lot of the brain dead noise) and firewalled off all but the services which must be accessible externally for the server to function.<br />
<br />
I still get hits to the OpenSSH server.<br />
<br />
<a name='more'></a><br />
Of those that get through to specifying a remote username, I see:<br />
<span style="font-family: Courier New, Courier, monospace;"> 1640 root</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 374 oracle</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 182 admin</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 28 guest</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 10 postgres</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 10 mysql</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 10 info</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 8 server</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 8 rootalias</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 8 nagios</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 6 redhat</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 6 minecraft</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 6 debian</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 r00t</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 plex</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 pgsql</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 nexus</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 news</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 musicbot</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 mc</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 jenkins</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 grid</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 gmodserver</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 git</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 ftpuser</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 ftp</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 firefart</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 default</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 cyrus</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 botmaster</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 bot</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 alias</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 admissions</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 4 adm</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 shop</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 shell</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 share</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 sgi</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 servercsgo</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 send</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 securityagent</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 secret</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 sebastian</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 search</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 scanner</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 sb</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 sara</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 sandbox</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 samba</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 sales</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 rsync</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 rpm</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 rpcuser</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 rpc</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 root4</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 root3</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 root2</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 root1</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 root0</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 rodrigo</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 robert</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 richard</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 redmine</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 recruit</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 rdp</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 radiomail</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 quality</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 qtss</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 putty</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 pussy</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 public</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 prueba</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 proxy</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 projects</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 ppldtepe</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 postpone</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 postmaster</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 postfix</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 popa3d</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 pop</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 poney</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 polycom</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 plexuser</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 PlcmSpIp</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 play</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 phpmyadmin</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 php</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 pentaho</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 paul</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 party</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 ovhuser</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 osmc</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 operator</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 operations</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 operador</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 openvpn</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 opensuse</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 openerp</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 op</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 office</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 odoo</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 nodeserver</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 nodejs</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 nodeclient</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 node</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 nobody</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 nginx</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 nfsnobody</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 newsletter</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 newadmin</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 neil</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 nat</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 named</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 nagiosuser</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 musikbot</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 mongodb</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 module</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 mine</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 miller</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 mike</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 michael</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 media</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 mcserver</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 master</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 mario</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 marco</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 manager</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 mailnull</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 mailman</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 mail</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 lp</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 log</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 list</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 linux</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 library</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 kodi</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 karaf</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jsserver</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jsclient</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 js</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 john</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 joel</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jesus</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jerry</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jeff</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jboss</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jay</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 james</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jack</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 jabber</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 irc</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 invitado</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 intel</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 install</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 informix</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 import</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 identd</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 ident</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 hugo</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 httpd</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 http</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 home</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 hlds</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 hduser</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 hdfs</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 harrypotter</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 halt</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 hadoop</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 gpadmin</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 gopher</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 gnats</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 glassfish</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 gituser</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 github</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 git3</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 git2</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 git1</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 ghost</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 george</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 games</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 ftpusr</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 ftptest</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 ftpadmin</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 frontrow</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 frank</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 fld</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 faxadmin</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 fax</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 eppc</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 emily</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 eleve</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dstat</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dspace</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dream</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 download</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 D-Link</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 divine</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 devuser</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 devil</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 developer</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dev</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 desktop</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 deployer</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 deploy</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 demo1</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 demo</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 debug</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dean</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 db2inst1</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 david</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dataentry1</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 database</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 data</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dasusr1</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 danny</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dan</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 dale</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 daemon</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 cyrusimap</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 csserver</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 csgoserver</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 csgo</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 cpanel</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 core</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 control</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 content</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 console</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 confluence</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 clamav</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 cisco</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 christian</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 chris</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 charleene</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 centos</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 bwadmin</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 butter</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 build</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 brett</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 bob</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 biz</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 bitrix</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 bin</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 backuppc</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 backup</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 asterisk</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 arkserver</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 aptproxy</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 appserver</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 appowner</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 api</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 apagar</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 apache</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 angel</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 amavisd</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 amanda</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 alex</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 alan</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 agent</span><br />
<span style="font-family: Courier New, Courier, monospace;"> 2 admins</span><br />
<div>
... if you're running an SSH server on the internet, and you have a root account accessible using a password, change that now!</div>
<div>
<br /></div>
<div>
Where's all this sh** coming from? Well, if you trust Maxmind's free GeoIP Country database:</div>
<div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 1400 KR, Korea, Republic of</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 265 US, United States</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 201 FR, France</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 130 CN, China</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 84 RU, Russian Federation</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 63 HK, Hong Kong</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 56 UA, Ukraine</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 52 IT, Italy</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 51 NL, Netherlands</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 50 ES, Spain</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 48 TW, Taiwan</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 46 SE, Sweden</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 45 BG, Bulgaria</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 35 GB, United Kingdom</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 35 CA, Canada</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 34 BR, Brazil</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 29 PL, Poland</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 27 DE, Germany</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 23 JP, Japan</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 22 RO, Romania</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 22 BE, Belgium</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 20 PE, Peru</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 20 CH, Switzerland</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 16 AU, Australia</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 9 SI, Slovenia</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 9 IE, Ireland</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 9 CO, Colombia</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 8 IN, India</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 7 EE, Estonia</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 7 BY, Belarus</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 4 RS, Serbia</span></div>
<div>
<span style="font-family: Courier New, Courier, monospace;"> 3 PA, Panama</span></div>
</div>
<div>
... initially surprised to see ROK (as opposed to DPRK) beat out other places, but I guess it makes sense in that they have very fast internet.</div>
<div>
<br /></div>
<div>
Is there a point to this? Well..</div>
<div>
<ul>
<li>Used key and/or multi-factor based authentication where you can</li>
<li>No matter what port number you use, folks will knock on your door</li>
<li>Expect any username that even vaguely resembles a default, or a service name, to be attempted</li>
<li>Never use default passwords, or easily guessed password. If you must use a secret you have to remember, make it a pass<i>phrase</i> not just a word</li>
</ul>
</div>
Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-61195583012947979542018-04-20T14:29:00.000+10:002018-04-20T14:29:16.394+10:00Setting up Linux to automatically launch a browser in a "kiosk" sessionAt work, we have some monitoring systems which we like to display on separate screens. These screens are connected to old computers which have been reinstalled with Windows. We have them set to auto-launch the displays, but it took some fiddling to get the chrome windows launched and positioned correctly. These instructions use xorg - I'm still not sure on Wayland... will be great when they figure out quick solution for "remote desktop".<br />
<br />
Bringing it all together..<br />
<a name='more'></a><h2>
Step 1. Install packages</h2>
<div>
I use several applications in the setup:</div>
<div>
<ul>
<li>Display manager<br />This is a default thing for most linuxes these days - it provides the graphical login prompt. You can, if you like, not use one and directly launch X in a smaller setup. LightDM is most common on Ubuntu. Previously gdm was used.<br />Ubuntu Package: lightdm</li>
<li>A browser<br />I use chromium for its kiosk and other window positioning switches.<br />Ubuntu Package: chromium-browser</li>
<li>A window manager<br />This is what helps the graphical environment locate, place and otherwise manage the application windows that are open. Without one, it can be difficult to get windows to show full screen.<br />Ubuntu Package: metacity</li>
<li>Display configuration tools - xset and xrandr<br />If you have an information display running, chances are you don't want it to go to sleep due to a screen saver kicking in.<br /><br />xset can allow tweaking of screen blanking and DPMS settings.<br /><br />xrandr is a command that speaks the X "Resize and Rotate" protocol. This allows for the scripting of display port settings (resolution), output rotation, and position relative to other displays. I use this on dual monitor instances to instruct the window manager that one display is beneath the other.<br />Ubuntu Package: x11-xserver-utils</li>
</ul>
If not installed, these packages may all be installed by using `apt-get install`</div>
<div>
<h2>
Step 2. Create a script to launch your chosen applications</h2>
</div>
<div>
Normally when you log into an X session, a series of default applications are started (desktop environment, window manager, perhaps some sound library programs etc.). We only want to load a specific set of programs with no room for distraction/abuse by the user.</div>
<div>
<br /></div>
<div>
In my case, I've created a script in the /usr/share/xsessions folder, alongside the desktop file that will link to it.</div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">#!/bin/bash<br />metacity &<br />xset s 0 0<br />xset -dpms<br />xrandr --output LVDS-1 --below VGA-1<br />chromium-browser --temp-profile --kiosk --new-window http://example.com/1 --window-position=0,0 &<br />exec chromium-browser --temp-profile --kiosk --new-window http://example.com/2 --window-position=0,1367</span></blockquote>
</div>
<div>
In this configuration, I'm:</div>
<div>
<ol>
<li>Starting (and backgrounding) the display manager</li>
<li>Disabling screen blanking</li>
<li>Disabling DPMS power management</li>
<li>Telling the computer (a notebook) that its internal LCD is to be logically positioned below the monitor connected to its VGA output</li>
<li>Launching a fresh, temporary profile in Chrome and having it open a new window to a specific web address on the primary VGA display (coordinates 0,0). I end the command line with an ampersand to background the browser so the script can keep running</li>
<li>Launching an additional chrome instance, but to a different URL with different coordinates that target the internal display. I call it via exec so that the former script process is now bound to the browser. The result is that as soon as the profile is logged in, it displays two, full screen browser windows, one on each display. If someone quits the second browser, it'll log out.</li>
</ol>
</div>
<div>
I still need to figure out the argument to tell Chromium to stop asking me to sign into a Google account.<br />
<h2>
Step 3. Create a session file to invoke the script</h2>
Display managers like lightdm offer users the option to log in as one of several sessions, defined by files in /usr/share/xsessions. These are .desktop files, like the ones used to populate the various menus and desktop shortcuts in Linux. They're kind of similar, in some ways, to Windows shortcut .lnk files, but they're plain text. In /usr/share/xsessions, I've created a file:<br />
<blockquote>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">[Desktop Entry]</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">Name=Kiosk Mode</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">Comment=Show the kiosk mode</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">Exec=/usr/share/xsessions/KioskMode.sh</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">Type=Application</span></blockquote>
<div>
<h2>
Step 4. Configuring the display manager</h2>
</div>
Now that we have a session that launches the script we've created, we need to tell the display manager to use it. In /etc/lightdm/lightdm.conf.d, I've created a file called 70-lightdm-kioskmode.conf:<br />
<blockquote>
<span style="font-family: "courier new", courier, monospace; font-size: xx-small;">[SeatDefaults]</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">autologin-user=username</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">autologin-session=KioskMode</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">autologin-user-timeout=10</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">greeter-session=lightdm-gtk-greeter</span></blockquote>
<div>
Comments and suggestions?</div>
</div>
Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-36010400243809395092018-02-09T21:17:00.000+11:002018-02-09T21:17:07.193+11:00Backups: My "uh oh" moment and what I do now for prevention and recoveryEnd users generally think, "I've saved the document, I'm all good". They put it into the computer and it'll always be there, ready for when they need it.<br />
<br />
My "uh oh" wake up moment with regards to data integrity and backups was a long time ago now. It all started with an Athlon 1.4 system I built for myself. I also built a similarly equipped unit for my parents. Both from parts I purchased at a computer "swap meet" (very rarely these days involving any actual swapping). They both consisted of an MSI motherboard, the AMD CPU, RAM, Sony CD Burner, an ASmart Nvidia based AGP4x card, Creative SoundBlaster Live (which would later fail and make everything sound like cartoon chipmunks), a cheap PSU that came with the case ("Hairong"??), Microsoft Windows 2000 Professional and an IBM hard disk - a 40GB <strike>Desk</strike>Deathstar (I can sense some of you out there groaning now).<br />
<br />
Previously to this, I'd used several machines with several types of hard disk (Maxtor, Seagate, WD, Fujitsu etc.) and never had a problem. I hadn't yet suffered a drive failure and so never really considered it would be a problem.<br />
<br />
Well, I copped the Deathstar curse.. bad!<br />
<br />
<a name='more'></a><br />
When I installed Windows 2000 I chose to employ Windows' encryption. I mean, what self respecting person doesn't encrypt their files (so I naively thought at the time anyway)? What Windows 2000 didn't readily highlight at the time was the need to back up one's decryption keys, so which part of the Deathstar drive do you think failed first? That's right.. the decryption keys! I lost a LOT of data.. but it was a good lesson to learn.<br />
<br />
I now tell people<br />
<ul>
<li>Your important data should always be backed up<br /></li>
<li>Think beyond tax paperwork<br />Your important data doesn't only include your accounting. Photos, videos - a lot of irreplaceable stuff is deserving of backup<br /></li>
<li>Think beyond your computer<br />Do you still keep a paper phonebook? If your phone crashed tomorrow, would you be able to salvage all your contacts? Your appointments? Your music? Family photos? Videos?<br /></li>
<li>RAID is not a backup, although it may help you handle a failure before you have to bring in backups<br /></li>
<li>Backups should always be verified after being performed<br /></li>
<li>You should regularly test restoring data from backups<br /></li>
<li>Preferably always, but especially if a backup is being stored on rewritable media (E.g. tape, disk or solid state) there should be at least two backups, such that one can remain away from the online storage at all times (otherwise if you bring the backup medium to the online storage location and it burns to the ground or the computer suffers a catastrophic PSU failure etc. you'll have lost your backup and your online copy in one hit)<br /></li>
<li>Archival is not backup. If you delete important files to free up hard disk space, then you need to make sure that there's the main archived copy + another in case the archive copy fails. Lesser use doesn't guarantee an archive copy won't fail, just that it's less likely.<br /></li>
<li>Never label optical media with markers not specifically fit for the purpose<br /></li>
<li>Backup media don't like extremes of UV, temperature, humidity or shock so keep them in a dark, cool, dry, stable, secure place.<br /></li>
<li>Snapshot utilities aren't backup if they gradually "drop off" files. If by some accident a file is deleted from your working copy and you don't notice it, eventually as more data ends up in the system, the deleted file will be deleted and you'll be none the wiser.</li>
</ul>
These days, the amount of data we all generate in our daily lives is increasing rapidly. E.g.<br />
<ul>
<li>Identification<br />Access credentials, contact lists, account details<br /></li>
<li>Interaction<br />Emails, associated documents<br /></li>
<li>Photos and Videos<br />Point and shoot digital cameras are capable of cranking out 12 megapixels and higher with full HD (1080p) video.<br /></li>
<li>Electronic documentation<br />Utility bills, banking statements</li>
</ul>
With an increase in primary online storage capacity to cope, so too must backup storage capability increase. The first home computer I used, a Tandy TRS-80, had around about 125kiB storage capacity per side of a 5.25" disk (want to use both sides of the disk? Take it out and flip it over!). I can now take photos on my mobile phone that are bigger than that.<br />
<br />
Where to now with backup media?<br />
<ul>
<li>Floppy disks are all but dead now. I don't know if you can even buy them anymore<br /></li>
<li>Optical media capacity seems to jump every so often and then double inbetween the major increments by adding layers, but can be slow to access and very sensitive to scratches and solvents used in marker pens - I think it was silly when the industry discarded the idea of caddies, I observed first hand in a school environment how safely they kept the discs. It's really heading out now. I reckon Blu-ray will be the last of the widely available optical formats.<br /></li>
<li>Solid state storage (USB + others) is getting faster but still some people are concerned about write cycles and then there's some issues of speed as they age. I'm not entirely convinced about them as a long term storage media. That said I think it's important to note that not all solid state storage is created equal. A cheap USB stick is exactly like buying a cheap floppy disk. It may fail.. quickly.. and without warning.<br /></li>
<li>Linear magnetic media - Tape<br />Tape was keeping up reasonably well in a capacity sense, but on a cost per GB, it's still very very high - well out of the reach of a lot of places. If stored correctly, in climate controlled environment, it can last a long time, but it's nowhere near as fast as...<br /></li>
<li>Hard disks<br />Once upon a time I'd advocated upon a "backup to a different type of media" approach, so that if online storage was a hard disk, you'd use tape or disk. But I think there's merit in "disk to disks" backup, if managed appropriately. As data densities increase, however, the likelihood of failure increases. There are drives available now where the recommended duty cycles are such that<br /></li>
<li>Online<br />This is kind of a "meta media" in that we know, in the end, the data's probably going to be stored on traditional, multi-plattered hard disks in some farm somewhere. The advantage here, is on a rented basis, you outsource the hassle of having to manage the multiple copies, the separate geographical areas etc. The downside is that you're letting the data out of your sight (you might want to encrypt it first if it's sensitive) and if you're frequently generating large volumes, in Australia it's going to eat into your internet bill unless you have a suitable internet plan.</li>
</ul>
In that last point, I touched on another issue with backups - encryption. When you send your data off for commodity storage and processing, how secure is it? Which jurisdictions has it travelled through? Is your information commercial in confidence? Might it be leveraged for identity theft? When storing data elsewhere, consider how valuable it is, and whether or not it should be encrypted before it leaves your network. This may not be a consideration for you, but think of it this way. Would you be comfortable with the contents of your backups being posted online publicly? If the answer is no, then I recommend that you consider encryption prior to upload. This does, however, mean that you also need to keep a separate, secure backup of your encryption keys.Unknownnoreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-28481018155367341722018-02-09T12:36:00.000+11:002018-02-09T12:36:20.283+11:00Why integrated smarts in televisions isn't always that good.Device manufacturers love to add bells and whistles to things to try and stand out from the pack. Promoting the idea that you can do it all with their device and do away with the other stuff you'd usually connect in.. but how does this fare over the long term? I don't think "smart" appliances are necessarily that smart.<br />
<a name='more'></a>Picture this. You've just bought a top of the line television, it's sleek, smooth, and is designated "smart" by it's manufacturer - hey, it's got a web browser, you can install apps, and it'll talk to a particular store or service for streaming direct to your device.<br />
<br />
Everything goes swimmingly, then a year or two passes and then you see a headline something like this:<br />
<h1 class="h1" itemprop="headline">
<span style="font-size: small;"><a href="http://www.engadget.com/2015/01/06/android-tvs-rise-is-bad-news-for-most-of-google-tv/" target="_blank">Android TV's rise is bad news for (most of) Google TV</a></span></h1>
Now, half the buttons on the remote probably won't do much useful, it'll probably have a growing list of vulnerabilities, and chances are that new codecs won't be supported.<br />
<br />
What about an article like this:<br />
<br />
<a href="https://arstechnica.com/information-technology/2017/03/smart-tv-hack-embeds-attack-code-into-broadcast-signal-no-access-required/" target="_blank"><b>Smart TV hack embeds attack code into broadcast signal—no access required</b></a><br />
<br />
It didn't even require physical interaction with the television!<br />
<br />
In theory, "smart" devices sound great - in the case of a television, it's already going to have a lot of chippery, so to add some extra features isn't that great a cost. A television, however, is usually a long term purchase, and so after the upfront cost, the manufacturer won't see any ongoing revenue from the set. This sets up a perverse set of motivations - the manufacturer wants to entice people to buy new TVs by offering new features and convenience, but also doesn't want to spend money keeping owners of older sets happy, and doesn't want to discourage them from buying a new TV.<br />
<br />
<ul>
<li>"It's just a television", I hear you say.<br />No - these days, it can be a networked computing device... and, it's inside your network!<br /></li>
<li>"I don't browse on my TV", you say.<br />That doesn't mean that the TV won't reach out to the internet for things like interactive broadcasts (which use the internet for backchannel), or leave connection options open for other devices (so you can cast stuff to your TV etc.)</li>
</ul>
A smart device may not be the first point of attack within a network - it may be more likely that someone clicks on a webpage with a bad ad, or falls prey to a phishing attack etc., but devices that pay no heed to security can be used for, if not ingress to a network, lateral movement within the network.<br />
<br />
Before buying a "smart TV" ask:<br />
<br />
<ul>
<li>"How long is the manufacturer going to support this device with functionality and security updates?"<br />... and not just the base environment - if you bought the TV for use with streaming services, how long before those streaming services won't be supported by the TV anymore?<br /></li>
<li>"If this TV's features are no longer supported, how useful will the TV be?"<br />Is the model you're considering buying as good as the other options when you take out the "smart" features? Is it even properly functional? Might a cheaper model with an external set top box work better?<br /></li>
<li>"Has this manufacturer made devices that have been hacked before, and if so, how did they respond?"<br />... were the devices already out of support, or did the manufacturer release a patch?<br />... if they released a patch, did it disable functionality or fix it?</li>
</ul>
Whilst it may not be as nice as an all in one solution, the use of external set top boxes (often not actually on top of a set these days because of flatscreens, but the name has stuck) is often a better solution. Manufacturers of these STBs (if they manufacture for retail, and not to cable companies and the like) have to work harder to get your business, and... if they should fail... you can replace the box. Integrated smarts, you can't swap them out, and you can't always disable them.<br />
<div>
<br /></div>
<div>
Food for thought :)</div>
Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-31635095769625570322018-02-09T12:15:00.000+11:002018-02-09T12:15:15.434+11:00Online advertising.. The continuing cat and mouse game..The online advertising industry needs to tackle security, and tackle it fast!<br />
<br />
<a name='more'></a><br />
So, shortly after the advent of online advertising, came ways to block it.<br />
<br />
Adblock Plus and friends block the ads, the advertising networks update their code, the blockers update their filters and the back and forth continues.<br />
<br />
Besides advertising, websites also often employ third party metrics tools, and, with those.. you guessed it, came ways to block them.<br />
<br />
Ghostery (though it has its issues), Disconnect, Privacy Badger etc have popped up.<br />
<br />
Load up any website, particularly advertising supported news sites such as newspapers, technology news, entertainment and meme distribution sites, and with the right plugins loaded, you'll see them light up with 10, 20, 30 plus different external systems for advertising and user behaviour tracking monitoring everything from what ads you see, to where you hover your mouse on the page, to where you scroll to on the page. Sometimes it's obvious what a remote system's about, sometimes it'll be hard to ascertain because the resource is hosted on some obscurely named Amazon AWS instance.<br />
<br />
Now, the reality is that sites hosting ads, and the ad networks, have little knowledge or control over the ads they're serving up to the visitors of sites, with Yahoo, The Weather Channel, The New York Times and other sites hit with bad ads.<br />
<br />
The malvertising problem comes from the ability for people purchasing advertising inventory to be able to inject whatever they want into that inventory based upon multiple factors such as time, location and browser type. This means what might be initially reviewed (if a review happens at all) may be different to what end users are eventually served.<br />
<br />
Advertising inventory on a given website may be offered to several different ad networks, those ad networks will then sell that inventory on to their customers, and then their customers may have networks of their own, such that there might easily be five or more degrees of separation between the site owner and the actual advertiser.<br />
<br />
In the past, I've worked with a business that acted as an intermediary between advertisers and inventory holders, and not all the inventory holders were the site holders. Sometimes the advertising provided by the advertisers would be directly supplied "creative" (not just an adjective in the advertising world, but also a noun!) but other times we'd be issued with code that would pull the creative from other content distribution systems.<br />
<br />
Subsequently, blocking advertising in my mind, is now no longer just a question of convenience, irritation or privacy concerns, but also one of security as unchecked advertising creative is now a valid malware vector.<br />
<br />
Myself, in Firefox I run:<br />
<ul>
<li>Ublock Origin</li>
<li>NoScript (all sites and plugins are blocked until I explicitly whitelist them)</li>
</ul>
In Chrome, I'm currently running:<br />
<ul>
<li>Ublock Origin</li>
<li>HTTPS Everywhere (a recent addition when I found a hotel I visited was doing MITM that disabled redirections to HTTPS in some cases)</li>
</ul>
Cryptocurrency mining may be one way viewers can pay for content, if it's done with the viewer's consent. Otherwise, sites need to consider ways they can encourage people to pay for content (indeed, I have an annual contribution set up to one of the newspapers I frequently read online).<br />
<br />
Otherwise, because there's so very little interaction between site owners, and the actual advertisers, the truth is that for security reasons, you <i>have</i> to block ads online these days.<br />
<br />
References:<br />
http://krebsonsecurity.com/2012/02/crimevertising-selling-into-the-malware-channel/<br />
https://en.wikipedia.org/wiki/Malvertising<br />
http://www.theregister.co.uk/2015/08/14/malvertising_expands_drudge/<br />
http://www.theregister.co.uk/2015/08/04/yahoo_malware_ads/<br />
http://lifehacker.com/the-best-browser-extensions-that-protect-your-privacy-479408034<br />
<br />Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-33465730727087253172017-12-27T18:01:00.000+11:002017-12-27T18:01:45.221+11:00Adding an IP alias to OVH dedicated serverSo, as you may have guessed, recently I've moved hosting from a dedicated server at Lunarpages, to a dedicated server at OVH. Lunarpages kept the system I was on going reliably for years (indeed, I'm slowly still migrating services from it), but just couldn't match what I got included by OVH.<br />
<br />
Anyway, to keep some things separate, I like to use separate public IPs for them. In the past, you'd just add a stanza to /etc/network/interfaces, and your work was done... but I opted for Ubuntu Server 17.10, and well - it does things differently!<br />
<br />
<a name='more'></a>Initially, I browsed around and found that there was no /etc/network/interfaces, so I assumed correctly that something later has replaced it. I did some googling and found that, indeed, Ubuntu 17.10 is released standard with "netplan". You declare your network configuration in netplan, and then from the declarative configuration, netplan then talks to whatever network management engine you've chosen and goes and configures the interfaces.<br />
<br />
... so I went off, and did some quick reading on netplan, and all was right with the world.<br />
<br />
<b>WRONG</b><br />
<b><br /></b>
Whilst netplan is the default for Ubuntu 17.10, it's not the default for OVH deployed servers. OVH deploy their servers using our <i>favourite</i> system monolith, systemd. So instead of editing things in /etc/netplan/01-netcfg.yaml, I needed to look in /etc/systemd/network:<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">/etc/systemd/network# ls</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network 50-public-interface.link</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">root@daserver:/etc/systemd/network# egrep '^\s*[^#]' 50*</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:[Match]</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:MACAddress=0c:c4:7a:c3:50:42</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:[Network]</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:Description=network interface on public network, with default route</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:DHCP=no</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:Address=XXXPRIMARYIPXXX/24</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:Gateway=XXXGATEWAYIPXXX</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:NTP=ntp.ovh.net</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:DNS=127.0.0.1</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:DNS=XXXDNSIPXXX</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:DNS=XXXDNSIPv6XXX</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:Gateway=XXXGATEWAYIPv6XXX</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:[Address]</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:Address=XXXPRIMARYIPv6XXX</span><br />
<span style="background-color: yellow; font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:[Address]</span><br />
<span style="background-color: yellow; font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:Address=XXXALIASIPXXX/32</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:[Route]</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:Destination=XXXXIPV6ROUTEXXX</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-default.network:Scope=link</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-public-interface.link:[Match]</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-public-interface.link:MACAddress=XXXHARDWAREMACXXX</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-public-interface.link:[Link]</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-public-interface.link:Description=network interface on public network, with default route</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-public-interface.link:MACAddressPolicy=persistent</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"></span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">50-public-interface.link:NamePolicy=kernel database onboard slot path mac</span><br />
<div>
<br /></div>
I had to add the highlighted [Address] block to the provided /etc/systemd/network/50-default.network file and then perform systemctl restart systemd-networkd. Unlike previous versions of linux where it'd create an alias interface and appear in an ifconfig as a separate network interface, it now only appears via:<br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"><br /></span>
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"># ip address show eno3</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;">2: eno3: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> link/ether XXXHARDWAREMACXXX brd ff:ff:ff:ff:ff:ff</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> inet XXXPRIMARYIPXXX/24 brd XXXPRIMARYBROADCASTXXX scope global eno3</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> valid_lft forever preferred_lft forever</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> inet XXXALIASIPXXX/32 brd XXXALIASBROADCASTXXX scope global eno3</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> valid_lft forever preferred_lft forever</span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> inet6 XXXPRIMARYIPv6XXX scope global </span><br />
<span style="font-family: "courier new" , "courier" , monospace; font-size: xx-small;"> valid_lft forever preferred_lft forever</span><br />
<br />
Am sure this is self explanatory to some - but I learned how to configure linux using /etc/network/interfaces, so dealing with systemd and netplan is new territory for me.<br />
<br />
Incidentally, when I searched OVH's documentation, I initially found:<br />
<blockquote class="tr_bq">
<a href="https://www.ovh.com/us/g2043.configure_a_failover_ip_with_ubuntu" target="_blank">Configure a failover IP with Ubuntu</a></blockquote>
... but then when I searched again I found:<br />
<blockquote class="tr_bq">
<a href="https://docs.ovh.com/au/en/dedicated/network-ipaliasing/#debian-9-ubuntu-17-fedora-26-and-arch-linux">Configuring IP Aliasing: Debian 9+, Ubuntu 17+, Fedora 26+ and Arch Linux">Debian 9+, Ubuntu 17+, Fedora 26+ and Arch</a></blockquote>
... the caveat with the above link is that it's missing a d from the end of:<br />
<br />
<pre style="-webkit-font-smoothing: antialiased; background-color: #444444; border-radius: 4px; border: 1px solid rgb(204, 204, 204); box-sizing: inherit; color: #d0d0c6; font-size: 14px; line-height: 1.5em; overflow: auto; padding: 5px; white-space: pre-wrap; word-break: break-all; word-wrap: break-word;"><span style="font-family: monospace , monospace;">systemctl restart systemd-networkd </span><span style="font-family: inherit;"><-- There needs to be a d on the end here</span></pre>
<br />
<br />Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-61649616777994183772016-11-24T18:28:00.000+11:002016-11-24T18:28:52.747+11:00Trying to identify a cheap security DVR's real manufacturerSo, someone I know has a cheap security DVR from Aldi. Distributed by "WinPlus Australia", it's been designated the brand and model "Cocoon Digital Video Security System IT115008".<br />
<br />
With the latest hype around the Mirai botnet commandering things exactly like such a security DVR, I decided to get in touch with the local distributor and ask them if any issues had been reported, advisories released, or updates made available.<br />
<a name='more'></a>I was told:<br />
<blockquote class="tr_bq">
<div dir="auto" style="background-color: white; color: #2b2e2f; font-family: "Lucida Sans Unicode", "Lucida Grande", Tahoma, Verdana, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px;">
Thanks for your query.</div>
<div dir="auto" style="background-color: white; color: #2b2e2f; font-family: "Lucida Sans Unicode", "Lucida Grande", Tahoma, Verdana, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px;">
There has not been security issues reported or identified for this product.</div>
<div dir="auto" style="background-color: white; color: #2b2e2f; font-family: "Lucida Sans Unicode", "Lucida Grande", Tahoma, Verdana, sans-serif; font-size: 14px; line-height: 22px; margin-bottom: 15px; margin-top: 15px;">
There is no software update for this product at this stage.</div>
</blockquote>
This didn't put me at ease. As it was made in China for the Australian market, it doesn't have an FCC ID, just an A-tick and I don't want to physically crack it open juuuust yet. I'm also convinced whilst the local distributor had a home-brand stamped on it, it's likely an off-the-shelf product from some Chinese OEM.<br />
<br />
I tried to hit it via the web, and on port 8080 it responded that I must use Internet Explorer or I cannot access it. Ok, so it has an ActiveX bundle it wants to foist on me - I use Linux, and even if I didn't, that's not happening, thanks!<br />
<br />
Alrighty, I search webpage source code, find the reference to a .cab file, pull it down, extract it, and then run all the Windows binary files through "exiftool" looking for something that might hint at a manufacturer, and I find:<br />
It bundles GPL components - I wonder if there's source code available for them? :)<br />
<br />
What's strange, is that the web page source code also references older Chrome and Safari plugins, but their use has been disabled/commented out, and they're not included in the webserver output. The source code of the page also has several HTML comments in Mandarin, but none of them refer to a business name.<br />
<br />
In the mean time, I'm running a port scan on it, and it comes back with:<br />
<br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">$ exiftool *.dll *.ocx | egrep -i 'File Name|Company Name|File Description|Comments|Special\ Build'</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Name : AVI.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Name : hi_h264dec_w.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Company Name : HiSilicon Technologies Co.,LTD</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Description : H.264 PC Decoder</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Original File Name : hi_h264dec_w.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Name : hisi_voice_engine.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Comments : 语音编解码器 (Translation: Speech CODEC)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Company Name : Co., Ltd.</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Description : hisi_voice_engine</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Original File Name : hisi_voice_engine.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Special Build : </span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Name : lib_VoiceEngine_dll.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Comments : 语音编解码器 (T/L: Speech CODEC)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Company Name : 海思半导体有限公司 Hisilicon, Co., Ltd.</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Description : lib_VoiceEngine_dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Original File Name : lib_VoiceEngine_dll.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Special Build : </span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Name : RSNet.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Flags : Special build</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Description : RSNet 动态链接库 (T/L: Dynamic Link Library)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Original File Name : RSNet.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Special Build : 5.20 修改设备信息结构(登录时返回),使后续扩展不需要重新编译该库;修改搜索设备收到非法消息后错误中止的BUG;DDNS,Email test;参数查询方法内存泄露;增加远程抓拍功能;add force I frame;1.0.1.14:兼容数据包1400/8K;1.0.1.14:消息加密;16:ForecIframe加密修正;17:全消息加密</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">... (Translation: Modify the search device to receive illegal messages after the error stop BUG; DDNS, Email test; parameter query method memory leak; increase the remote capture function; modify the device information structure (log back) Add power I frame; 1.0.1.14: compatible packet 1400 / 8K; 1.0.1.14: message encryption; 16: ForecIframe encryption correction; 17: full message encryption)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Name : RSPlay.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Flags : Special build</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Description : RSPlay.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Original File Name : RSPlay.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Special Build : ffmeg裁减版;使用ffmpeg-0.8;11.10.12:动态加载ffmpeg,解码海斯编码器编码数据可以不打包ffmpeg相关库;111022:修正音频解码失败后无法再次打开音频的bug。AES解密,1.0.2.14:AES_ENC_LEN 64。1.0.2.15:显卡加速;1.0.2.16:图片放大校正;UpdateFrame位置调整;1.0.2.17:player进度拖动报错处理;91旧UI录像文件播放;抓拍前一帧;单实例音频控制</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">... (Translation: Ffmegg-0.8; 11.10.12: dynamic loading ffmpeg, decoding Hess encoder encoding data can not be packaged ffmpeg related library; 111022: Fixed audio decoding failed to open the audio again after the bug. AES decryption, 1.0.2.14: AES_ENC_LEN 64.1.0.2.15: graphics acceleration; 1.0.2.16: picture magnification correction; UpdateFrame position adjustment; 1.0.2.17: player progress drag error processing; 91 old UI video file playback; Frame; single instance audio control)</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Name : RSSkinNormal.dll</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">File Name : RSVideo.ocx</span><br />
<span style="font-family: Courier New, Courier, monospace; font-size: xx-small;">Original File Name : RSVideo.ocx</span><br />
<div>
<br /></div>
I set up a remote VPN connection to this person I know's house and set about probing the box. A partial port-scan reveals:<br />
<br />
<ul>
<li>Port 23 - Telnet ... hrrrmm</li>
<li>Port 8080 - HTTP ... served by Boa webserver</li>
<li>Port 9000 - Used by various Android and iOS clients that can talk to device</li>
</ul>
<br />
I can't help but think there's going to be some hard coded credentials on the telnet server, or otherwise there wouldn't be a reason to have it enabled by default.<br />
<br />
Has anyone else dug a bit deeper into this particular DVR unit? I'm guessing I may just need to bite the bullet at some point and open it up... might be a good excuse to get a serial line level adaptor and go fiddling :)<br />
<br />
<br />
<br />Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-31073099448715803312016-10-15T18:56:00.001+11:002016-10-15T18:56:25.320+11:00Possible overlay skimmer security feature?There's been a lot of talk on various websites about overlay skimmers on POS devices. Talk about technological solutions etc..<br />
<br />
You know, I reckon there's a low tech solution.<br />
<br />
If the POS device manufacturers supply their own overlays, that are designed to physically probe points that must be altered to capture data such as PIN pad presses, line of sight with PIN pad presses, and/or access to a card's magstripe.<br />
<br />
At randomised intervals within a maximum timeframe, a shopkeeper could fit this overlay over each PIN pad in the store in turn, and if the overlay didn't fit, then the PIN pad or whatever other component of the POS device would be known to be outside of physical spec.<br />
<br />
Couple this with screening for Bluetooth and other common wireless comms methods using a cheap Android or other cheap wireless enabled device, and it should be possible to pick up when stuff's happening.Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-2352772325690575212015-08-26T15:59:00.000+10:002015-08-26T15:59:08.527+10:00It's time to clear the space junk...Over the years, I've collected a lot of computer paraphernalia - from actual computers to various parts of computers, associated cabling etc.<br />
<br />
It's now gotten to the point where it's clear I'm not going to use a lot of it ever again, and so before I send it off for ewaste processing, I wanted to offer folks the chance to grab some of it.<br />
<br />
<a name='more'></a><br />
If you're not within range to collect it, I'd be happy to ship it, if you paid for the shipping.<br />
<br />
There's a stack of stuff I've got:<br />
<ul>
<li>Assorted RAM (FP/EDO and up)</li>
<li>2x APC rack mount 700VA UPSs</li>
<li>Pentium, PPro, P3, P4, Cel D etc. and up computers (one even has a Video Blaster SE100 in it, with the cables) </li>
<li>Many assorted IO cards (ISA, VLB) </li>
<li>Labtam X term (might even be able to rustle up an AUI adapter for it) </li>
<li>Assorted tower cases (AT, ATX) </li>
<li>2x Wyse60 serial terminals </li>
<li>Multiple 10/100 switches (a couple may be managed) of varying sizes (16-24 port I think) </li>
<li>Multiple WiFi routers with and without modems, one 3G </li>
<li>Cisco SHDSL modem (dumpster dive) </li>
<li>3Com business routers (another dumpster dive) </li>
<li>HP DL380 (G3 I think) </li>
<li>IBM xSeries 336 </li>
<li>DLT IV (I think ... VS80?) drive </li>
<li>Assorted 33.6 and 56K modems </li>
<li>Parallel port scanner (UMAX Astra 600) </li>
<li>Assorted CRT displays </li>
<li>Assorted 3.5" and 5.25" drives</li>
<li>Assorted 5.25" CD, CDR, CDRW, DVD drives (I think I even have a SCSI based caddy loading CD drive :) )</li>
</ul>
<br />
I'm thinking a trip to local eWaste collection point might be in order,
but before turfing stuff, like to see if it'll get another go. A lot of it's in the "I never got around to using it", or "I haven't used it in ages" category...Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com1tag:blogger.com,1999:blog-1853493731081179357.post-22397924935780831112015-06-09T15:15:00.000+10:002015-06-09T15:16:28.053+10:00Protecting against ransomware - is this possibly a different way of thinking about it in the SOHO space?Recently my folks got an email from their ISP (Westnet) scaring them, thinking they'd been hacked (it turns out an old Westnet user database had been compromised, along with cleartext usernames and passwords... oopsies?).<br />
<br />
Before I figured out what it was, I was thinking suspicious activity had been detected on their accounts and was worried about whether or not they'd backed up recently... then my thoughts turned to cryptoware and how it basically spreads out to whatever it touches and encrypts everything (had someone else hit by a bug recently - and I'm moving them and their formerly Windows XP computer to Lubuntu as they only need Windowsish looking email, web browsing and printing).<br />
<br />
Anyway.. long setup aside, I was thinking, that perhaps the best way to deal with backups and cryptoware, was to have the system that needed to be backed up make itself available to an authorised backup storage provider by some restricted and secured means (over a LAN or encrypted link). That backup storage provider could be prodded by the client system to perform a pull, but the client would never have direct, unrestricted access to the backup server's archives.<br />
<a name='more'></a>Most cryptoware, when it's in its initial stages, will, when beginning to encrypt everything, transparently decrypt it on request such that the user doesn't know it's happening until the encryption is complete and the software can hit the user up for ransom.<br />
<br />
Arguably speaking, that transparent decryption would cover any application accessing user data, including the backup system pushing the data out over the network or whatever connectivity means (I mean, presumably ransomware isn't going to stop someone emailing something, so unless it could identify the backup software..).<br />
<br />
Then, as a means of detecting whether or not a given system has been attacked, a "canary file" or files, nominated by the user, but not in any way "configured" on the client, and backed up along with all the user's other files. Something like a Word document, or a text document, or an Excel document.. whatever.. The backup system, separately, would be instructed to check this file every time a backup runs, and if it's been touched or corrupted (perhaps, it might be a file check, or a spell check, or just a checksum to see if any change), and if it has, to alert the user by alternate means (email, SMS etc.), ensuring that any backup rotations/data deduplication maintains at least the last snapshot prior to the alert until the data's been verified. One could also randomly sample backed up files, to check that if they're known data formats, that they still comply with that document format.<br />
<br />
I'm thinking, some linux based system could easily play the server.. presenting a web based interface of some sort or being remotely managed as a service or being a cloud service.. perhaps managed from someone's phone (arguably separate to their desktop and these days not always tethered to their computer, but connected via cloud services for syncing). Lord knows I have enough old iron floating about my garage to whip up something suitable for at least my folks :) ... and this could easily be added to the more intelligent SOHO NAS units out there (provided the security was done right - there's the kicker).<br />
<br />
I wonder.. surely.. there's gotta be stuff out there like this already? Eg. Backup dropboxes ... perhaps the "canary" element is new?<br />
<br />
Has anyone ever implemented something like this?Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-34401711951814399352014-09-07T13:45:00.001+10:002014-09-07T13:45:43.810+10:00How to turn off showing the margins (aka whitespace) in Excel 2010 Page Layout modeIt was driving me nuts at work, this particular spreadsheet we have. On two tabs it was showing the margins, and on two other tabs, it wasn't. I didn't need to see the margins, and for the life of me I couldn't figure out how to make things consistent.. Then I figured it out when I hovered my mouse over the area!<br />
<a name='more'></a><a href="http://office.microsoft.com/en-au/word-help/show-or-hide-white-space-in-print-layout-view-HP003072013.aspx" target="_blank">Show or hide white space in print layout view</a> is the answer. It had been driving me nuts for months - doing Google searches on showing and hiding margins and results continually referring me to getting out of Page Layout view.<br />
<br />
Simply hover your mouse over the offending margin/whitespace area and the cursor will change, with the tooltip showing "Show White Space" or "Hide White Space" depending on the current state.Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-49792092990568092062014-07-02T16:24:00.001+10:002014-07-02T16:24:50.100+10:00Mobile devices aren't particularly secure...Going through my news feed, I see an article in <a href="http://www.engadget.com/2014/06/30/boston-solar-powered-smart-bench-soofas/" target="_blank">Engadget</a> about how Boston, Massachusetts with the help of Cisco wants to install wireless charge stations that also report on environmental quality (such as noise and air pollution).<br />
<br />
I think there's some gotchas here...<br />
<br />
<a name='more'></a>First off, the ruggedness. PV cell on top in reach of passers by - here, that panel'd be scratched in tags and various other marks within a week. USB ports so that people can plug in to charge? Smashed, bent and forced, perhaps even deliberately have current fed back through into them to attempt to damage the electronics inside (presumably correctly shielded).<br />
<br />
Secondly, and more of concern though, would be data security I think. Will the sockets just provide power, or will they have some sort of smarts on the data pins of the USB connection? Even if they just provide power, what's to stop someone fitting a compact skimming device of some sort? "Yes, of course I trust this charger, it's a park bench!" ... or is it? Particularly in affluent areas where the value of people's data would be greater...<br />
<br />
USB sockets don't lend themselves to ruggedising - I think public charge points are something that would definitely benefit from the use of wireless charging technology. The trick now is to get people to agree on a standard or standards licensed in a fair fashion (similar to key mobile technology necessary for its function).<br />
<br />
The other part of the equation I think is to be able to instruct a phone, "ONLY USE THIS USB CONNECTION FOR POWER". I know on my Galaxy Nexus, at least, I can turn off USB debugging and having the phone present an MTP/PTP share to the host device it connects to. That said, it also supports USB OTG and no doubt other magical maintenance modes depending on what other signalling is sent via the ID pin and between the data and power lines in the micro USB connector it employs.<br />
<br />
Apple have built into their OS a feature that says, "Do you trust this device" when you connect a charger etc., but the impression I get is it's an all or nothing. What if you still want to charge, but you don't trust the charger data wise?<br />
<div>
<br /></div>
We live in an increasingly connected society where the intelligence of once simple, single purpose devices (power sockets, telephones etc.) has increased to the point where you're not just plugging in a telephone to charge, you're also connecting a gateway to your personal data to a device wholly out of your control.<br />
<br />
I wonder if someone's built a USB plug to strip out the data pins and just supply power to a given device - a charging condom for your phone... It'll charge slower (unless of course you apply the correct resistance across the power and data lines depending on the phone model), but at least you know you won't be connecting your phone to an unknown device for anything more than power.Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-51033716952690432152013-12-28T01:30:00.000+11:002014-01-18T18:38:18.618+11:00Getting a random email from a Taiwanese domain name registrar you've never heard of about your domain name? I did.. and surprise, it's legit!<div style="text-align: justify;">
Years and years and years ago, I registered a domain name with a particular registrar. Over the years, it got acquired and then eventually, it seems, "deaccredited".</div>
<a name='more'></a><div style="text-align: justify;">
Waaaay back in the late 90s I think it was, I registered a domain with "Capital Networks" aka "TotalNIC". TotalNIC spun off its gTLD domain registration business to <a href="https://web.archive.org/web/20041014021222/http://www.totalnic.net/acquisition.htm" target="_blank">PacNames in late 2004</a>.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Time passed, PacNames had a particularly basic web interface that changed very little over the years, and occasionally had faults making DNS changes, but it worked, and I'd been with them for years and it'd be a pain to shift the domain.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Cut to today, the <u><b>27</b></u>th of December, and I get an email from <a href="http://net-chinese.com/" target="_blank">Net Chinese</a>:</div>
<div style="text-align: justify;">
<blockquote class="tr_bq">
<div id=":8t" style="overflow: hidden;">
<div lang="ZH-TW">
<div>
<div class="MsoNormal">
<span lang="EN-US">Dear Sir/Ma’am,</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Greetings, this is <span class="il">Net</span>-<span class="il">Chinese</span>,
an ICANN accredited registrar in Taiwan. We are contacting you for your
domain name service provider “Pacnames” has no longer offered their
services, for which ICANN has authorized <span class="il">Net</span>-<span class="il">Chinese</span> to take over the domain names maintain services.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Your domains are transferring to <span class="il">Net</span>-<span class="il">Chinese</span>,
but temporarily domain management platform is not available. For
demands of domain renewal and DNS update, please contact us by service@<span class="il">net</span>-<span class="il">chinese</span>.com.tw.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal" style="line-height: 12pt;">
<span lang="EN-US">Your domain </span><span style="color: red; font-family: "\0065b0\007d30\00660e\009ad4","serif";">【<span lang="EN-US">...</span>】</span><span lang="EN-US" style="font-family: "\0065b0\007d30\00660e\009ad4","serif";">,</span><span lang="EN-US"> Expiration date </span><span style="color: red; font-family: "\0065b0\007d30\00660e\009ad4","serif";">【<span lang="EN-US"><span class="aBn" data-term="goog_477273133" tabindex="0"><span class="aQJ">12/<u><b>28</b></u>/2013</span></span></span>】</span><span lang="EN-US" style="font-family: "\0065b0\007d30\00660e\009ad4","serif";">, </span><span lang="EN-US">will expire/ is expired. If you want to renew the domain, we offer two methods:</span></div>
<div class="MsoNormal">
<b><span lang="EN-US">1. Pay via Paypal / Credit Card</span></b></div>
<div class="MsoNormal">
<span lang="EN-US">Please visit http://www.<span class="il">net</span>-<span class="il">chinese</span>.com/QK/<wbr></wbr>ec_paypalbuy_short.asp and choose the years you'd like to renew domains for. After completing the transaction, please email us your <b>domain, paypal account (email), transaction date, years of renewal</b> to service@<span class="il">net</span>-<span class="il">chinese</span>.com.tw </span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<b><span lang="EN-US">2. Pay via Credit Card (Fax)</span></b></div>
<div class="MsoNormal">
<span lang="EN-US">Please download and fill out the form “Netc_AppForm-domain_renewal” at http://<span class="il">net</span>-<span class="il">chinese</span>.com/files/<wbr></wbr>Netc_AppForm-domain_renewal.<wbr></wbr>doc and send back to <a href="http://www.blogger.com/null">service@<span class="il">net</span>-<span class="il">chinese</span>.com.tw</a>
along with your payment information (listed in the form). Please note
that the renewal fee will be charged by New Taiwan Dollar 290 (USD
9.55*30.36) per year. Transaction fees will be added based on the
exchange rate of the day the transaction happens by your credit card
bank. If you have further questions, please feel free to contact us.</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US">Best regards,</span></div>
<div class="MsoNormal">
<br /></div>
<div class="MsoNormal">
<span lang="EN-US"><span class="il">Net</span> <span class="il">Chinese</span> Co., Ltd.</span></div>
<div class="MsoNormal">
<span lang="EN-US">The Only ICANN Accredited Registrar in Taiwan</span></div>
<div class="MsoNormal">
<span lang="EN-US">E-mail: service@<span class="il">net</span>-<span class="il">chinese</span>.com.tw</span></div>
<div class="MsoNormal">
<span lang="EN-US">Tel: +886-2-2531-9696</span></div>
<div class="MsoNormal">
<span lang="EN-US">Fax: +886-2-2531-9522</span></div>
<div class="MsoNormal">
<span lang="EN-US">Website: www.<span class="il">net</span>-<span class="il">chinese</span>.com</span></div>
</div>
</div>
</div>
</blockquote>
</div>
<div style="text-align: justify;">
The email is polite, with some slight Engrish (no insult intended, they speak English far better than I speak Taiwanese - eg. Not at all), but out of the blue!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I checked the <a href="http://pacnames.com/" target="_blank">prior registrar's website</a> - NOTHING.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I checked my domain's WHOIS information:</div>
<div style="text-align: justify;">
<blockquote class="tr_bq">
<span style="font-family: "Courier New",Courier,monospace;">Registrar WHOIS Server: whois.net-chinese.com.tw<br />Registrar URL: http://www.net-chinese.com.tw<br />Registrar: Net-Chinese Co., Ltd.<br />Registrar IANA ID: 1336<br />Registrar Abuse Contact Email: foreign@net-chinese.com.tw<br />Registrar Abuse Contact Phone: +886.225319696 </span></blockquote>
</div>
<div style="text-align: justify;">
SURPRISE!</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Oh, and my domain WHOIS details were no longer cloaked - something I'd paid for, to steer clear of the businesses that like to cache such details online and charge to remove them (Yes, there are businesses online that vacuum up WHOIS info, and then both sell access to said information, as well as sell [at an ongoing rate] temporary removal of such information).</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I found this a little disconcerting, and then did some googling.</div>
<ul style="text-align: justify;">
<li>Letter from Maguy Serad (ICANN) to Kim Story (PacNames)<br /><span style="font-size: x-small;"><a href="http://www.icann.org/en/news/correspondence/serad-to-story-08oct13-en">http://www.icann.org/en/news/correspondence/serad-to-story-08oct13-en</a></span></li>
<li>Bulk Transfer of Domain Names from Pacnames to Net-Chinese<br /><span style="font-size: x-small;"><a href="http://www.icann.org/en/news/announcements/announcement-2-04dec13-en.htm">http://www.icann.org/en/news/announcements/announcement-2-04dec13-en.htm</a></span></li>
</ul>
<div style="text-align: justify;">
Now, clearly a business that tells ICANN it doesn't want to comply with auditing requests that became necessary when it was found it wasn't compliant with licensing requirements isn't going to stay a registrar for long. That'd be like a travel agency that does ticket issuing telling IATA to go jump :) . The list of events outlined in ICANN's letter above does seem to suggest that the old registrar was rather, err, laissez-faire with its management of records and rather unwelcoming of what were indeed auditing requests (in the face of ICANN not being confident they were following procedure). Sure, it's only ICANN's record of events, but it does seem restrained when reading between the lines.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
I don't think Net Chinese have done anything wrong, however, I do have a gripe about this whole affair. Well, a few... </div>
<ol style="text-align: justify;">
<li>Telling me the DAY BEFORE my domain expires that it's expired!? Really!? It's a good thing I check my emails regularly!</li>
<li>No links to ICANN information - I had to go Googling to verify this email. I normally would delete such things without considering them.</li>
<li>The existing registrar clearly doesn't give a sh** anymore - NOTHING on their website to say all their domains have been slammed. No email sent out with their domain.</li>
</ol>
<div style="text-align: justify;">
I'm all for registrars shirking their licensing requirements to be appropriately dealt with, but I think there's room for improvement when it comes to notifying end registrants.</div>
<div style="text-align: justify;">
<br /></div>
<div style="text-align: justify;">
Anyone else experienced this?<br />
<br />
<b>UPDATE:</b> I received a reply from Net-Chinese within 24 hours of contacting them.<br />
<blockquote class="tr_bq">
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<span lang="EN-US"><span style="font-family: Arial; font-size: x-small;">Dear Sir/Madam,</span></span><span lang="EN-US"><span style="font-family: Arial; font-size: x-small;">Thank you for your email.</span></span><span lang="EN-US"><span style="font-family: Arial; font-size: x-small;"><br />Thank you for your information provided. Now we are preceding the renewal. After completed, we will send you a notice.</span></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<span lang="EN-US"><span style="font-family: Arial;"><span style="font-size: x-small;">The GTS (0.47) shown on the payment page is actually the transaction fee (5%) charged by PayPal. The charge of transaction fee is list on the page below.</span><span style="font-size: x-small;">http://www.<span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">net</span>-<span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">chinese</span>.com/QK/<wbr></wbr>ec_paypalbuy_short.asp</span></span></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<span lang="EN-US"><span style="font-family: Arial; font-size: x-small;">We are sorry to send out the renewal notice so late, because we just receive the transfer complete report from registry on 26, Dec. 2014 as the transfer initiates on 23, Dec 2013.</span></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<span lang="EN-US"><span style="font-family: Arial; font-size: x-small;">We are appreciating your suggestion; we will take this in consideration in further email sending.</span></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<br /></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<span lang="EN-US"><span style="font-family: Arial; font-size: x-small;">We apologize for any inconvenience it may cause to you.</span></span><span lang="EN-US"><span style="font-family: Arial; font-size: x-small;">If you have further questions, please feel free to contact us.</span></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<br /></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f;"><span style="font-family: Arial; font-size: x-small;">Best regards,</span></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: arial, sans-serif; font-size: 13px; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f;"><span style="font-family: Arial; font-size: x-small;"><span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">Net</span> <span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">Chinese</span> Co., Ltd.</span></span><span lang="EN-US" style="color: #7f7f7f;"><span style="font-family: Arial; font-size: x-small;">The Only ICANN Accredited Registrar in Taiwan</span></span><span style="font-family: Arial;"><span style="font-size: x-small;"><span lang="EN-US" style="color: #7f7f7f;">E-mail: </span><span lang="EN-US">service@<span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">net</span>-<span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">chinese</span>.com.tw</span></span></span><span lang="EN-US" style="color: #7f7f7f;"><span style="font-family: Arial; font-size: x-small;">Tel: +886-2-2531-9696</span></span><span lang="EN-US" style="color: #7f7f7f;"><span style="font-family: Arial; font-size: x-small;">Fax: +886-2-2531-9522</span></span><span style="font-family: Arial;"><span style="font-size: x-small;"><span lang="EN-US" style="color: #7f7f7f;">Website: </span><span lang="EN-US">www.<span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">net</span>-<span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">chinese</span>.com</span></span></span></div>
</blockquote>
Even though they were designated as the new registrar back on the 4th of December, it looks like the transfer was initiated on the 23rd of December, completing on the 26th. Whilst the lack of English language material on their site is disconcerting (and perhaps, it's an interesting choice for ICANN given the likely nature of the existing client base). The charge they're talking about is because when I went to pay by Paypal, it added a charge that said "GST" on my end, but apparently is them adding the Paypal transaction fee to the transaction cost when paying by Paypal. I suggested to them that they include a link to the ICANN press release in future mailouts as that's how I verified their authenticity.<br />
<br />
The whole experience still leaves me irritated, but to their credit, the gaining registrar, Net-Chinese, is doing its best to respond quickly.<br />
<br />
<b>UPDATE 2:</b> They processed my payment (which I did via Paypal) about two days after my domain was listed to expire but otherwise without issue, and my domain's now got another year on it. I will say that if they want to keep their mostly Australia/New Zealand acquisitions from PacNames, they're probably going to have to work on their English language copy and put up more of an explanation on their English language site.<br />
<br />
<b>UPDATE 3:</b> On January 13th I received an email inviting me to create a domain management account to which I could tie my domain, and perform basic management tasks<br />
<blockquote class="tr_bq">
<div style="text-align: left;">
Dear Sir/Ma’am,</div>
<span lang="EN-US"></span><br />
<div style="text-align: left;">
</div>
<span lang="EN-US">
</span><span lang="EN-US"></span>
<br />
<div style="text-align: left;">
<span lang="EN-US">Greetings, this is Net-Chinese, an ICANN accredited registrar in Taiwan. This is an invitation letter to invite you to sign up a domain management account with us. Please click <b><span style="color: red;"><http://www.net-chinese.com/<wbr></wbr>Registration.asp?code=REDACTED></span></b><span style="color: red;"> </span>to sign up an account and we will push the domains listed below to your account. If you had sign up an account through www.net-chinese.com before please reply us your account name and we will also push domains in your account.</span></div>
<span lang="EN-US">
</span><span lang="EN-US"></span>
<br />
<div style="text-align: left;">
</div>
<span lang="EN-US">
</span><span lang="EN-US"></span>
<div style="text-align: left;">
<span lang="EN-US">Click <b><span style="color: red;"><http://www.net-chinese.com/<wbr></wbr>domainlist.asp?code=REDACTED></span></b> to see domains.</span></div>
<span lang="EN-US">
</span><span lang="EN-US"><div style="text-align: left;">
</div>
</span><span lang="EN-US"><div style="text-align: left;">
After sign up an account if you hope to incorporate the other domains with this account please click<b><http://www.net-chinese.com/<wbr></wbr>LookUpDN.asp></b> to retrieve domain password and reply us the domain names and passwords. We will also push these domain names to your account.</div>
</span><b><div style="text-align: left;">
<b><span lang="EN-US">Note: Please login your account before click domain name password.</span></b></div>
</b><span lang="EN-US"><div style="text-align: left;">
</div>
</span><span lang="EN-US"><div style="text-align: left;">
</div>
</span><span lang="EN-US"><div style="text-align: left;">
Best regards,</div>
</span><span lang="EN-US"><div style="text-align: left;">
</div>
</span><span lang="EN-US"><div style="text-align: left;">
Net Chinese Co., Ltd.</div>
</span><span lang="EN-US"><div style="text-align: left;">
The Only ICANN Accredited Registrar in Taiwan</div>
</span><span lang="EN-US"><div style="text-align: left;">
E-mail: <span class="il" style="background-color: #ffffcc; background-position: initial initial; background-repeat: initial initial; color: #222222;">service@net-chinese.com.tw</span></div>
</span><span lang="EN-US"><div style="text-align: left;">
Tel: +886-2-2531-9696</div>
</span><span lang="EN-US"><div style="text-align: left;">
Fax: +886-2-2531-9522</div>
</span><span lang="EN-US"><div style="text-align: left;">
Website: www.net-chinese.com</div>
</span></blockquote>
I followed the link, found a few quirks with their javascript form validation but managed to complete the form. What I found a bit disconcerting was that the whole operation happens over HTTP - there is NO HTTPS available. When I asked them, after looking on the management interface, how to unlock my domain, I was advised<br />
<blockquote class="tr_bq">
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;">Dear Sir/Madam,<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;">Thank you for your email.<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<br /></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;">Based on ICANN’s regulations, we would not allow the domain to transfer out within the first 60 days counted from the day the domain transferred in.<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;">Because the transfer is approved and completed on 2013.12.24 by registry, the transfer will be unlocked on <span class="aBn" data-term="goog_909129002" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; position: relative; top: -2px; z-index: 0;" tabindex="0"><span class="aQJ" style="position: relative; top: 2px; z-index: -1;">2014.2.22</span></span>.<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;">If you still want to transfer out your domain after <span class="aBn" data-term="goog_909129003" style="border-bottom-color: rgb(204, 204, 204); border-bottom-style: dashed; border-bottom-width: 1px; position: relative; top: -2px; z-index: 0;" tabindex="0"><span class="aQJ" style="position: relative; top: 2px; z-index: -1;">2014.2.22</span></span>, please contact us directly.</span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<br /></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;">We appreciate your patience.<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;">If you have further questions, please feel free to contact us.</span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<br /></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f; font-family: Calibri, sans-serif;">Best regards,<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<br /></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f; font-family: Calibri, sans-serif;">Net Chinese Co., Ltd.<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f; font-family: Calibri, sans-serif;">The Only ICANN Accredited Registrar in Taiwan<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f; font-family: Calibri, sans-serif;">E-mail: </span><span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;"><span style="color: blue;">service@net-chinese.com.tw</span></span><span lang="EN-US" style="color: #7f7f7f; font-family: Calibri, sans-serif;"><u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f; font-family: Calibri, sans-serif;">Tel: +886-2-2531-9696<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f; font-family: Calibri, sans-serif;">Fax: +886-2-2531-9522<u></u><u></u></span></div>
<div class="MsoNormal" style="background-color: white; color: #222222; font-family: 'Times New Roman', serif; font-size: 12pt; margin: 0cm 0cm 0.0001pt; text-align: start;">
<span lang="EN-US" style="color: #7f7f7f; font-family: Calibri, sans-serif;">Website: </span><span lang="EN-US" style="color: #1f497d; font-family: Calibri, sans-serif;"><span style="color: blue;">www.net-chinese.com</span></span></div>
</blockquote>
I've checked the ICANN policy previously and they're right. So, if you're looking to move your domains to another registrar, you'll have to wait until late February.<br />
<br />
Let me be clear, they've been nothing but polite, answered my questions fairly promptly and the fact that PacNames didn't want to keep up with their auditing requirements is not their fault. Also, they copped an inbound flood of transfers on Christmas Eve. That said, their customer facing copy and security around things like domain name administration needs to be improved. I'm also a bit miffed my domain was "decloaked" when they shifted it though I suspect that was just part of how transfers between registrars have to work.</div>
Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com12tag:blogger.com,1999:blog-1853493731081179357.post-63184002194478118092013-09-18T10:00:00.000+10:002013-09-18T10:00:06.377+10:00Weird noise from my phone...<div>
<div dir="ltr">
Awhile back, I noticed that every so often, my phone would make a weird sound and I couldn't figure out what it was.</div>
<a name='more'></a>Turns out, it was my Galaxy Nexus responding to the NFC tags in my public transit card as well as my Paypal 2 factor authentication card in my wallet (they have NFC - who knew?) - but that the Galaxy Nexus only responds to these when the screen is unlocked. I often prop my phone up on my wallet when reading news in Google Currents during my lunchbreak, so in that case the screen is unlocked and when NFC is on, the phone will detect and read the tags in my wallet..<br /><br />I do think, perhaps, that Google could introduce notifications on screen for when event noises happen that aren't otherwise followed by an onscreen activity. Like when I'm in Maps in navigation mode, and I hear a weird sound that sounds like a warning sound, but there's no onscreen prompt or notification area message.<br />
<div dir="ltr">
<br /></div>
<div dir="ltr">
These days, as Australian mobile carriers haven't gotten into the NFC payments arena and Melbourne's public transport system decided not to allow people to read the balance on their own transit cards (instead forcing them to either use at-station terminals or use a 48 hour old balance online), there's not much point to having NFC enabled on my handset, so I turn it off. </div>
</div>
Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0Melbourne VIC, Australia-37.814107 144.96327999999994-38.6164245 143.67238649999993 -37.0117895 146.25417349999995tag:blogger.com,1999:blog-1853493731081179357.post-36276163731782523902013-09-15T00:47:00.001+10:002013-09-15T00:47:53.675+10:00Experience with a Telstra Samsung Galaxy Nexus Google PhoneI've had my Telstra Samsung Galaxy Nexus (I-9250TGSMH) for almost a year now (it's September now, and I bought it the January before last). Overall I'm happy with it, but there are also some things I'm not entirely convinced by or thought should have come standard...<br />
<a name='more'></a><h2>
The generally good...</h2>
<br />
<h3>
Stock Android, Unlockable Bootloader </h3>
First and foremost, the thing that drew me to the phone was that it runs stock Android. As a Google co-designed phone, if Google release a new version of Android, it's likely to have access to that for quite some time, and very close to the time of that version of Android coming out.<br />
<br />
Indeed, there's a page on Google where you can <a href="https://developers.google.com/android/nexus/images" target="_blank">download the latest released firmware for Nexus devices</a>.<br />
<br />
Additionally, as essentially a developer phone, it's designed to have the bootloader unlocked, it has the binary drivers available for the components that are under NDAs should I wish to compile my own OS, and other vendors, such as Ubuntu have even released completely different operating systems for it.<br />
<br />
Not having manufacturer specific overlays, such as Touchflow, Touchwiz etc. etc. means that it "just works" with my Google Apps account, that updates to the OS aren't delayed (though that's less of a concern now that Google are running their functionality updates through their system shim, <a href="http://arstechnica.com/gadgets/2013/09/balky-carriers-and-slow-oems-step-aside-google-is-defragging-android/" target="_blank">"Google Play Services"</a>) and there's less complexity atop the core OS to go wrong or to interact badly.<br />
<br />
When I first got the phone, it came with Android 4.0 and since I've had it, I've upgraded it using a mix of OTA and downloaded updates. I noticed that on the stock Telstra firmware, it came loaded with a more complete office application and an Australian dictionary which I have not been able to find in the Google released firmware (only offering US and UK English, myself choosing the latter). I've also noticed that occasionally the phone will, when upgrading between versions using a total reflash, fail to properly reload all my apps and settings from Google's cloud storage, often resulting in me resetting the phone and disabling the restore option, then re-installing the apps one by one.<br />
<h3>
Screen, Connectivity, Filesystem access</h3>
The screen is nice and big compared to the average iPhone, and whilst the display resolution may not be as high, is just fine for what I need it for. It has Bluetooth, NFC, WiFi and USB tethering (which sometimes I have used to establish a USB network connection back to the phone when transferring large amounts of data and my home WiFi's been a bit flakey). I like the fact that with Android, I can install a file browser such as <a href="https://play.google.com/store/apps/details?id=lysesoft.andexplorer" target="_blank">AndExplorer</a> or <a href="https://play.google.com/store/apps/details?id=org.openintents.filemanager" target="_blank">OI File Manager</a> and interact with files on the system between most applications without having to bounce things back and forth between different cloud silos like iOS. That's one thing I hate about iOS, that there's no formal user exposure to an on-device filesystem. Rather, it's all about the cloud. Google is all about the cloud too, but gets people there by making the experience a positive one that people will want to use, versus one that you HAVE to use to get a positive experience (I mean, it took them HOW many releases to be able to upload photos and videos from the web browser rather than needing to use a separate app or email? ... and you still can't select any old file, just pictures in the camera reel).<br />
<br />
Using applications like <a href="https://play.google.com/store/apps/details?id=com.sand.airdroid" target="_blank">AirDroid</a>, <a href="https://play.google.com/store/apps/details?id=lysesoft.andsmb" target="_blank">AndSMB</a> and <a href="https://play.google.com/store/apps/details?id=lysesoft.andftp" target="_blank">AndFTP</a>, I can pull files from local networks I'm connected to, or encrypted across the general internet from Windows Servers through to FTP and SFTP servers. If I'm out and about taking photos, I can push the pictures I take home, rather than via some intermediate cloud service. I do admit that I have some misgivings about AndFTP as I'm not entirely sure it verifies the host key of SFTP servers it connects to, possibly allowing an MITM attack. That said, as the apps are on the Google Play market and therefore distributed by Google, a US company, they are subject to potential NSA tampering (but I'll talk about my feelings on PRISM and the like later on in another post). I'll speak more about AirDroid in another post, as I feel it warrants a review of its own.<br />
<br />
With <a href="https://play.google.com/store/apps/details?id=org.connectbot" target="_blank">ConnectBot</a>, I can SSH to home and various other servers to get shell level access. It hasn't been updated in ages, however, and therefore has issues with external bluetooth keyboards (which sucks.. I have a nice keyboard from Aldi that would make longer shell sessions out and about soooo nice). I'm considering giving <a href="https://play.google.com/store/apps/details?id=com.sonelli.juicessh" target="_blank">JuiceSSH</a> a try to see how it fares with a bluetooth keyboard.<br />
<h3>
User removable battery</h3>
It's VERY easy to remove the battery from the phone - the back cover basically peels off. Under the cover is the SIM slot, the battery compartment, and even an external antenna connector for the phone radio. <br />
<h3>
Navigation</h3>
Google Maps and its related navigation feature are very handy, and excellent for a free option. That said, clearly it's all about data mining for Google, and its offline capability is woeful. Being a "Google Phone" means that it doesn't come with the offline satnav options frequently bundled with manufacturer focussed handsets.<br />
<h3>
Ability to disable USB data connection whilst still charging</h3>
Particularly after researchers developed a trojan charger for the iPhone, but even prior to that, I always felt a little dubious about how blasé people can be about plugging their USB devices into whatever USB port they could find to charge their device, never considering that there's potentially a data connection involved also. On the Galaxy Nexus, I can go into the storage settings and disable MTP, PTP, and USB pairing and debugging support. The operating system doesn't see a data enabled device being connected (I checked in Linux, *nothing* in dmesg) and the phone only acknowledges USB charging and nothing else.<br />
<h3>
720p HDMI output</h3>
With the optional MHL HDMI adapter, the phone can put out a 720p signal suitable for a vast array of display devices. It rotates everything into landscape display, EVEN the homescreen (the home screen NEVER rotates into landscape unless it's connected to the HDMI adapter OR docked).<br />
<h2>
The bad...</h2>
For all the sunshine, happyness, light and cute kittens, there has to be a dark side or at least, a not so happy side to the device.. and yes, this has that. My previous phone experiences have been a Hyundai-Curitel CDMA HGC-310e, a Nokia CDMA 2280, a Nokia GSM/3G N70-1 and a Nokia GSM/3G N95 (4GB) and so my main use comparisons are based around this. I have also used iPhones before and have had to wrestle with the odd Blackberry (pre v.10 OS).<br />
<h3>
Battery life</h3>
<br />
The battery life on the Samsung Galaxy Nexus, with the stock battery it came with (EB-L1F2HVU 1750mAh), is pretty poor. Whenever viewing the Android battery graph, the screen power draw is higher than anything else on the device ALWAYS, to the degree that I wish you could drill down in the battery details and eliminate the battery graph, as having one item so far above all others in battery consumption skews the graph. I have a third party extended life battery on order (which will stick out the back of the phone and comes with a third party cover to accomodate it).<br />
<br />
Right now, I can last for the train trip into the city, and the train trip home, having it charging whilst I'm at work, and overnight when I go to sleep.<br />
<h3>
The camera</h3>
The rear camera is WOEFUL. It's basically a webcam - it has really really really poor low light response and can be really blurry in low light. It has a LOT faster shutter time than the N95, but the N95 had Carl Zeiss optics and took MUCH better photos. It also had a shutter that protected the lens whilst the camera was not in use. The 3D sphere and panorama modes are cool, but again require LOTS of light to work properly. Apparently more recent Google phones have a better camera, but this phone, it felt like Samsung was keeping the best hardware for its own phone and phoned in a token effort on the camera here.<br />
<br />
The front camera is even worse!<br />
<h3>
The speaker</h3>
The speaker is also woeful - a single speaker for mono sound, poor response and really quiet compared, again, with the N95's stereo setup which was SIGNIFICANTLY louder with a much better frequency response. Again, they phoned it in with this effort. There was NO WAY I could sleep through the alarm on my N95, but with the Galaxy Nexus, I frequently realise I've slept through an initial alarm without waking.<br />
<h3>
No memory card slot</h3>
The phone has only the storage built into it. Whilst it supports USB OTG with an appropriate cable, it can't do OTG whilst charging or connected to the MHL HDMI adapter. Clearly Google want people to be using the cloud for their storage and not carrying their files from them, so this is a design decision on their part, but otherwise, it's a standard feature in the Android world to have a MicroSD slot.<br />
<h3>
No USB mass storage support / Reliance on MTP/PTP</h3>
This one is kind of understandable. As the storage is no longer partitioned into separate areas for apps and data, if the phone were to allow the partition to be accessed by another device, such as a computer, via USB mass storage, it would have to lock out the applications from making changes to the partition during operation to prevent corruption of the partition. The problem is that instead they rely on MTP. MTP support, unfortunately, only comes standard in Microsoft Windows. Apparently software is available for Mac and Linux, but whenever I've tried MTP support in Linux, I've been met with all sorts of bugs. In the end, I use SMB, SFTP and/or AirDroid to transfer files to and from the phone and my desktop. I do feel, however, that going over WiFi is probably slower than going over a simpler USB protocol. There is the possibility of using USB debug mode with the Android Debug Bridge push and pull features, but this is clunky and only really useful for pushing things like SuperSU when rooting (getting full admin access) the phone.<br />
<h3>
No iView access</h3>
This isn't really the phone's fault as much as Android and the Android hardware environment's fault. As the environment is not as homogenous as, say, Apple's environment, it's harder for people like the ABC to code suitable video acceleration that will work across a multitude of devices whilst maintaining the level of DRM that various content providers require. That said, other public broadcasters, such as the BBC (who is a major content provider for the ABC) as well as ITV (also a content provider to the ABC) have their own Android apps. One wonders if a lot of the content providers have their own apps, why the ABC is not considering similar technology. In the meantime, it means no iView on Android 4.1 and later devices without sideloading an ancient flash version and finding a cooperative browser or going for an unauthorised third party solution..<br />
<h2>
Overall...</h2>
Overall, I like the phone. It's flexible enough to let me install what I want, how I want. To let me tweak if I want to. I'm not locked into using all of Google's cloud if I don't want to. I can change the battery if I want to..<br />
<br />
It does feel like some of the hardware was a bit cheap - the speaker, the cameras, the rear camera optics and the flash.<br />
<br />
I don't regret the purchase and reckon, with the new battery on its way, the phone will continue to do what I need to do for some time yet (I don't *need* 4G).Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0Melbourne VIC, Australia-37.814107 144.96327999999994-38.6164245 143.67238649999993 -37.0117895 146.25417349999995tag:blogger.com,1999:blog-1853493731081179357.post-86759735321814703002012-09-28T21:45:00.000+10:002012-09-28T22:07:48.324+10:00So, what does that security vulnerability do on a Samsung Galaxy Nexus running stock Android JellyBean 4.1.1?Thanks to <a href="http://mikeybear.wordpress.com/" rel="" target="_blank">Mikeybear</a> to highlighting this one for me on Facebook and <a href="http://dylanreeve.posterous.com/" target="_blank">Dylan Reeve</a> for a nifty testing tool and an example.. It seems that <a href="http://dylanreeve.posterous.com/remote-ussd-attack" target="_blank">some Samsung Android handsets have a vulnerability</a> that allows invoking USSD codes from a browser with minimal user interaction.<br />
<br />
Not seeing anything about my particular handset, the Samsung Galaxy Nexus, I decided to test it out.<br />
<a name='more'></a>Turns out, it half works.<br />
<br />
In stock Android 4.1.1 Jellybean (I upgraded from my telco supplied image, using <a href="http://code.google.com/android/nexus/images.html" target="_blank">images available from Google</a> on their website) on the Samsung Galaxy Nexus (with Skype installed alongside the default "Phone") I tested loading a page with:<br />
<blockquote class="tr_bq">
<html><br />
<body><br />
<iframe width="4" height ="4" src="tel:%23100%23"></iframe><br />
</body><br />
</html> </blockquote>
in it. #100# is the USSD code for account information on my telco.<br />
<h2>
Putting it to the test... </h2>
<h3>
<b>Chrome
18.0.1025308</b></h3>
It doesn't load initially, but if you go to another page
and then go back... or go to previous page and then forward, it invokes
the dialler keypad but does not execute the code, you have to hit dial,
then it will give dialler options (on my phone, standard and skype).. If
you pick the standard one, then it will run the code supplied.<br />
<h3>
Firefox 15.0.1</h3>
Immediate load of dialler keypad, again it won't run it until you hit dial.<br />
<h3>
Android 4.1.1 Jellybean Browser </h3>
Immediate load of dialler keypad, again it won't run it until you hit dial.<br />
<h2>
Conclusion </h2>
The Galaxy Nexus running current firmware isn't fully vulnerable, but there is room for 'mischief'.. You have to be careful not to hit dial if you weren't expecting to dial a number, and if you were, that the number doesn't contain unusual codes. Not all codes will necessarily be available, but clearly some do work if you let them proceed.Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0tag:blogger.com,1999:blog-1853493731081179357.post-20943527484150160552012-09-22T17:16:00.000+10:002012-09-22T17:23:51.486+10:00Apple updates iOS6 mobile Safari to support file uploads - another reason why I choose AndroidApple has added another "revolutionary" feature to iOS6. The ability to upload from the phone via a web form.<br />
<br />
<a href="https://developer.apple.com/technologies/ios6/" rel="nofollow" target="_blank">iOS6 for Developers</a> - see the Safari/Webkit section<br />
<br />
<a name='more'></a>Never mind that other mobile browsers have done it out of the box for years. Never mind that Apple was railing against Flash and eventually killed it for not being standards compliant, but then forced website owners into app development or email upload systems.<br />
<br />
Don't get too excited - Apple still only allow uploading files from the camera roll.. So if it's not a video or a photo in your camera roll, it's not going to be uploadable. <br />
<br />
Now, full disclosure, I have a <a href="http://www.google.com/nexus/#/galaxy" target="_blank">Samsung Galaxy Nexus</a> handset. It's running a <a href="https://developers.google.com/android/nexus/images" target="_blank">Google supplied</a> <a href="http://Android Jellybean 4.1.1" target="_blank">Android Jellybean 4.1.1</a> image with the exception that I've unlocked the bootloader and injected the "Superuser" package to give me full admin privileges as and when I require.<br />
<br />
Out of the box, fresh from the store, the Galaxy Nexus does NOT have a file browser and therefore, similar to iOS6 does not allow upload from anything outside of the "Gallery". Installing a freely available app from the Google Play store (such as <a href="https://play.google.com/store/apps/details?id=org.openintents.filemanager" target="_blank">OI File Manager</a> or <a href="https://play.google.com/store/apps/details?id=lysesoft.andexplorer" target="_blank">AndExplorer</a>), however, adds in options quickly and easily, such that when you go to upload from the browser, you now have the ability to say "Actually, rather than browsing the Gallery, I'd like to pick a file from my files on the device".<br />
<br />
As an example, I fired up my browser and went to an upload form.. This is what I see:<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8r21DztmKWBhfWRoO19MFPzPBWYZ26wmKHMRcJYC8TCTnwb3kWpFT6BNTnudqePZcVJ9uWo8lOBnJudPlX2DTGZ9h2fSZ4AdKVLKM-VY8EkJ-5z6OAw64hDJ8kZXpCwIhEQxmtYMpngYk/s1600/Screenshot_2012-09-22-16-04-02.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="320" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg8r21DztmKWBhfWRoO19MFPzPBWYZ26wmKHMRcJYC8TCTnwb3kWpFT6BNTnudqePZcVJ9uWo8lOBnJudPlX2DTGZ9h2fSZ4AdKVLKM-VY8EkJ-5z6OAw64hDJ8kZXpCwIhEQxmtYMpngYk/s320/Screenshot_2012-09-22-16-04-02.png" width="183" /></a></div>
Whilst Apple say there's no file system, <a href="http://iphoneincubator.com/blog/data-management/local-file-storage-in-ios-5" target="_blank">applications can store things in their own "Documents" folder</a>, so arguably, like Android, there's room for them to allow applications to register a way of exposing their files to one another for access. This, however, goes against Apple's trend of silos. Files? What files? It's all *waves wand, makes woo woo noises* "in the cloud" - which is all well and good, until you want to move something from one cloud service to another, right there and then, on the go. Being able to share a weblink from one app to another app is not sharing the content - it's securing the content in the given cloud platform and dragging people there! Apple doesn't want you moving stuff between services - they want you to store everything in iCloud.<br />
<br />
This recent move by Apple to allow file uploads reminds me of the whole MMS debacle. Apple decided, in their wisdom, when first releasing the iPhone that MMS (sending content via an SMS like mechanism) was a dead technology and that they'd only support SMS. Apple was pushing email as the way forward - but not all phones do email. Third party app developers worked on hacks, people complained and complained.. and then they added it, to much fanfare.. as if it was a radical feature!?<br />
<br />
This, I believe, demonstrates the need for Apple to have competitors to keep it in check. Apple, and indeed its late co-founder, swear that Android is a clone platform, an iOS knockoff. I would argue that iOS and Android are fundamentally different, but that <b>both</b> benefit from having the other in the marketplace... for giving users choice.<br />
<br />
The state of intellectual property laws as they are today, primarily thanks to the United States and things like its <a href="http://en.wikipedia.org/wiki/Copyright_Term_Extension_Act" target="_blank">Mickey Mouse</a> approach are killing innovation. Where, otherwise, technology is moving at a rapid pace, things like increasing copyright terms and broadening of what can be patented are stifling it. I'd argue that inventors and developers need to be rewarded for their work, but given the pace of innovation, the duration of the term for which the works are protected needs to be reconsidered - and growth of these terms certainly halted.<br />
<br />
That's my rant for today - what do you think?Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0Melbourne VIC, Australia-37.8113667 144.9718286-38.6142332 143.7084011 -37.0085002 146.23525610000002tag:blogger.com,1999:blog-1853493731081179357.post-34515283427967696852012-04-01T17:34:00.000+10:002012-04-01T17:34:08.753+10:00Do we really need printers at home?After not having a printer for four years - I don't really miss it. I think there's technology that we're accustomed to that we only feel we "need" because we're used to it.<br />
<a name='more'></a><br />
After I'd been living away from home for awhile, I managed to pick up a laser printer from a department store where I was working. It was an HP LaserJet 5L - loaded paper and returned it kind of like a fax machine - top loading and ejecting without a large paper tray. I had it from the mid 90s to the mid 00s and in that time only changed the toner cartridge twice. Eventually the paper feed mechanism died and even with a new cartridge, the image became cloudy and poor (probably the fuser or the corona wire).<br />
<br />
I left it for awhile, I had other things on my mind and didn't have any pressing need to print things. In the past I might have printed things like Google Maps directions, or documents to send to people etc.. Sometimes photos in greyscale or little signs or notes to label things, remind me of stuff, shopping lists etc.<br />
<br />
It's now a good.. hrmm.. at least 4 years since I've had a printer set up at home. Sure, I think I have an inkjet laying around somewhere in my garage, crying out for some new ink cartridges, but in that time I really haven't had an absolute need to print any more than perhaps 20 pages in 4 years. When that's happened, I've either gone to my parents house, or to my workplace at the time, and printed the pages off there.<br />
<br />
When I had to lodge a damage report with my insurance company after being rear-ended by a cab, the broker I go through emailed me a PDF. I filled in the PDF electronically, dropped in a copy of my signature and emailed it back. I'm not forging the document - it is me placing my impression on the document. It just happens that I never actually printed it myself.<br />
<br />
The upshot is I didn't have to post or fax it, the recipient got the file back in exactly the same quality I sent it and I was able to include computer drawn diagrams, Google Maps and photos. The problem I did have was the receiving company's systems having problems with my .id.au address attached to a Google Apps account.<br />
<br />
When I need to do my shopping - if I need to make a list, I'll either grab an envelope from one of the bills that I can't get electronically and scribble on it, or I'll drop a note in my phone and just refer to it.<br />
<br />
If I need directions, I have Google Navigation on my phone.. Ok, sometimes it gets it horribly, HORRIBLY wrong, but the point is, that except for perhaps printing a CV to take to a job interview (where I've already emailed them a PDF anyway), I have not NEEDED a printer.<br />
<br />
Now, I know some people love to print photos out - they like that whole physical element - but that's just something we've grown accustomed to. Even my paternal grandparents have an electronic picture frame in their house. Sure, us grandkids are probably the ones who load the photos on, but the point is, if you provide the right interface to the information and keep it available, you don't ever need to transfer it to hard copy.<br />
<br />
I can't remember the last time I bought a ream of paper - and I think that's a good thing!Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com0Melbourne VIC, Australia-37.8136111 144.9630556-37.838699600000005 144.9235736 -37.7885226 145.00253759999998tag:blogger.com,1999:blog-1853493731081179357.post-91181929448436329582011-08-27T19:35:00.008+10:002011-08-27T20:04:59.450+10:00My first week's experience using MykiVictoria (the state in which I live) has an electronic ticketing system called <a href="http://www.myki.com.au/">Myki</a> (pronounced "My Key") which revolves around a proximity/RFID card which one can charge online or at dedicated terminals. The general idea is on all supported public transport services, one "touches on" with their card upon entering a ticketed area, and then "touches off" upon leaving said area.. at each point the system should advise if the process was successful and whether you're currently covered for the trip... They're still working out bugs, it seems.<a name='more'></a>
<br />
<br />With my car presently out of action, I decided to log in and check my account to see if everything was in order. I saw a lot of "default fares" (the system charges the maximum fare if you don't "touch off" on everything except non Zone 1 tram services)...
<br /><span style="font-size:85%;">
<br /><span style="font-family:arial;"> </span></span><style> <!-- BODY,DIV,TABLE,THEAD,TBODY,TFOOT,TR,TH,TD,P { font-family:"Arial"; font-size:x-small } --> </style> <table style="font-family: arial;" frame="VOID" rules="NONE" border="0" cellspacing="0" cols="9"> <colgroup><col width="72"><col width="49"><col width="173"><col width="60"><col width="46"><col width="52"><col width="52"><col width="48"><col width="64"></colgroup> <tbody> <tr> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" height="19" width="72"><span style="font-size:85%;">Date</span></td> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" width="49"><span style="font-size:85%;">Time</span></td> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" width="173"><span style="font-size:85%;">Transaction Type</span></td> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" width="60"><span style="font-size:85%;">Service</span></td> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" width="46"><span style="font-size:85%;">Zone</span></td> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" width="52"><span style="font-size:85%;">Desc</span></td> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" width="52"><span style="font-size:85%;">Credit</span></td> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" width="48"><span style="font-size:85%;">Debit</span></td> <td style="font-weight: bold; text-align: center; color: rgb(255, 102, 0);" bg="" width="64"><span style="font-size:85%;">Balance</span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-25</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">19:10</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">2</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Home</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$2.08</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$21.28</span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">11-08-25</span></i></span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">18:11</span></i></span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;"><b><i><span style="color:#000000;">Touch off (Default Fare)</span></i></b></span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">Train</span></i></span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">1</span></i></span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">City</span></i></span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">- </span></i></span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">$3.02</span></i></span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">$23.36</span></i></span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-25</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">18:11</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">City</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-25</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">17:59</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-25</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">09:53</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">City</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$5.10</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$26.38</span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-25</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">08:59</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">2</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Home</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-24</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">19:18</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">2</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Home</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$2.08</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$31.48</span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-24</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">18:19</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">City</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">11-08-24</span></i></span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">18:19</span></i></span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;"><b><i><span style="color:#000000;">Touch off (Default Fare)</span></i></b></span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">Train</span></i></span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">1</span></i></span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">City</span></i></span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">- </span></i></span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">$3.02</span></i></span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">$33.56</span></i></span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-24</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">18:07</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-24</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">18:07</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off (Default Fare)</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-24</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">09:55</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-24</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">09:47</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">City</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$5.10</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$36.58</span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-24</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">09:04</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">2</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Home</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-23</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">20:50</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">2</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Home</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$2.08</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$41.68</span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">11-08-23</span></i></span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">19:25</span></i></span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;"><b><i><span style="color:#000000;">Touch off (Default Fare)</span></i></b></span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">Train</span></i></span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">1</span></i></span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">City</span></i></span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">- </span></i></span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">$3.02</span></i></span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;"><i><span style="color:#000000;">$43.76</span></i></span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-23</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">19:25</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">City</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-23</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">19:13</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch off (Default Fare)</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-23</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">19:13</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-23</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">10:51</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-23</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">10:48</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">City</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$5.10</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$46.78</span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-23</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">09:10</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">2</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Home</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-22</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">20:48</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">2</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Home</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-22</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">19:39</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">City</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">11-08-22</span></i></span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">19:39</span></i></span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;"><b><i><span style="color:#000000;">Touch off (Default Fare)</span></i></b></span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">Train</span></i></span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">1</span></i></span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">City</span></i></span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">- </span></i></span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">$3.02</span></i></span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;"><i><span style="color:#000000;">$51.88</span></i></span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-22</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">19:28</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch off (Default Fare)</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-22</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">19:28</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-22</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">10:00</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Tram</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-22</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">09:55</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Touch off</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">1</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">City</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$5.10</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$54.90</span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">11-08-22</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">09:05</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Touch on</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="RIGHT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">2</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">Home</span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="LEFT" style="color:#E6E6E6;"><span style="font-size:85%;color:#000000;">- </span></td> </tr> <tr> <td bg="" align="RIGHT" height="19" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">11-08-21</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">20:39</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Top up myki money</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">Train</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">-</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">-</span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$60.00</span></td> <td bg="" align="LEFT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">- </span></td> <td bg="" align="RIGHT" style="color:#FFFFFF;"><span style="font-size:85%;color:#000000;">$60.00</span></td> </tr> </tbody> </table><span style="font-size:85%;"><span style="font-family:arial;"> </span></span>
<br />I'm curious to know why I've copped a default fare at the City station even though I always used Myki enabled gates to get to the platform before I depart. I suspect it's because the gates I use on my home trip are old and a dodgy, half-enabled retrofit's been done (unlike normal Myki gates, they only say "CSC PASS" instead of "Touch on/off successful"). Anyway, I've lodged a query with Transport Ticketing Authority - will be interesting to see what their response is.
<br />Anthony Hoganhttp://www.blogger.com/profile/05107637011427516949noreply@blogger.com2