Tuesday, May 2, 2017

Melbourne to Europe via Perth on Qantas

With the purchase of Boeing 787s, Qantas are pushing ahead with flying direct from Perth to London - no stopping at any Middle East airports such as Dubai. For travellers in Perth, this is great news but what about those of us out east, especially those in Melbourne? Lets have a look and compare flights between "now" and in April 2018.

Looking at flights between Melbourne and Europe in September, 2017:
FromToFlightsDurationDepartureArrival
MelbourneLondonQF8409-QF800322:4005:0018:4
MelbourneLondonQF924:1522:2514:10
MelbourneViennaQF9-QF817222:0021:2512:55
LondonMelbourneQF1022:2513:3020:55
ViennaMelbourneQF8128-QF1021:2515:3020:55

Looking at flights between Melbourne and Europe in April 2018:
FromToFlightsDurationDepartureArrival
MelbourneLondonQF923:5015:2005:10
MelbourneViennaQF9-BA69627:5015:3020:55
LondonMelbourneQF1020:4013:3020:10
ViennaMelbourneBA699-QF1028:2007:5020:10

Quite clearly the change to going via Perth has a huge negative impact on the flight time from Melbourne:
FromToChange% Change
MelbourneLondon+1:20+5%
MelbourneVienna+5:50+27%
LondonMelbourne-0:45-3%
ViennaMelbourne+6:55+32%

And that's just the flight time.

One of the not so obvious impacts of the Melbourne to Europe via Perth is the new departure time of 3:20pm. This will require passengers to be at Tullamarine airport by around 12:20pm. This is in contrast to the current requirement to be there by 6:25pm. 5 hours earlier, how can that be significant? With a 6:25pm "be at the airport" time, it makes it possible for travelers to spend a full day at work. This might be a normal day at work if you live in the city, or leave work early to get home and off to the airport or maybe just get to work earlier so that you can get a full day of work in before 5pm (depending on how flexible your boss is.) The new route via Perth does not allow for that. This means that travelers leaving Melbourne and flying to Europe via Perth will have to spend a day of vacation time not in Europe but simply leaving Australia. If I have to be at the airport by 12:20pm then I need to leave home at (say) 11:20am if it takes me an hour to drive to the airport. There's absolutely no way that I can pretend that between 9am and 11:20am that I can do any sort of meaningful work, thus it is necessary to allocate an entire day to "leaving Melbourne" rather than just an evening.

But what about if you leave for holidays on a Saturday or Sunday? Then there will be no difference to the amount of time that you need to take off work. But if you would have previously left for holiday on any other day of the week, then flying through Perth will cost you an extra day of holiday - for no gain to you as a traveler.

For whom does using Perth as the stepping stone to Europe make sense? Good question. Obviously it makes sense for Qantas (or else Qantas wouldn't be doing it.) It also makes sense for people that live in Perth. But who else? That I cannot work out. People that live in Adelaide? Is Europe no longer such a popular destination for the population of Melbourne and Asia now is? Whatever the case, the relative differences in travel time to continental Europe is huge. From under a day to over a day. In both directions. After the 24th of March, 2018, flying to Europe via Perth on Qantas is now the least desirable option.
What about using Perth as a stopping point for going to Paris? You've got to wonder at how many travelers Qantas has going to/from Paris on a daily basis. On the up side, given Brexit, it may not be a bad idea but it is too early yet to know where business travelers will want to go as companies relocate themselves out of London. Back to Paris. It sounds nice to travel direct from Australia to Paris and avoids the "via Heathrow" problem but once again comes down to timing.
Dubai as a hub or stepping stone for air travel between Australia and Europe makes a lot of sense. A lot. It is a relatively short flight from there to most European cities and doing some quick searching, cities such as Istanbul, Budapest, Rome and Vienna are all a direct flight from Dubai. This works both ways for airlines that use Dubai: it brings more people to the airport as well as being a funnel for more people leaving the airport.
It would seem to me that Qantas have become too carried away with the emotional side of flying to Europe and being able to do it in one direct flight from Australia rather than sitting down and working out what it means for travelers. "Fly to Europe non-stop from Australia" sounds great. But it only applies if you live in Perth. For everyone else it is still at least one stop to Europe and possibly the new route will make going via Perth less attractive. A big problem that Qantas has in trying to use Perth as its hub for Europe is where will people come from that want to fly through Perth. Adelaide might be better. But what about the cities on the eastern side of the country? See above for what it means there. Qantas will have competition from Emirates. Sydney, Perth, London, Berlin anyone? Or Sydney, Dubai, Berlin? Or Sydney, Singapore, Berlin?

Wednesday, August 26, 2015

Castles and chateaus in the Czech Republic




Name
Out of 10? URL Type Condition GPS
Becov n Teplou CZ 7 www.zamek-becov.cz/en/ Zamek
50°05'05.68" N  12°50'23.88" E
Bezdez CZ
www.hrad-bezdez.eu/ Castle Part ruins 50°32'20.44" N  14°43'11.31" E
Bitov CZ
www.hradbitov.cz/ Castle
48°56'37.82" N  15°42'01.67" E
Blatná Water Castle CZ 6 www.zamek-blatna.cz/ Zamek
49°25'22.23" N  13°52'45.97" E
Bouzov CZ

Castle
49°42'17.79" N  16°53'22.23" E
Bucovice CZ
www.zamek-bucovice.cz/en/ Zamek
49°08'51.63" N  16°59'52.72" E
Cervena Lhota CZ 6 www.zamek-cervenalhota.eu/ Zamek
49°14'47.91" N  14°53'06.47" E
Decin CZ

Zamek
50°46'44.36" N  14°12'37.78" E
Duchov CZ 2 www.zamek-duchcov.cz/ Zamek
50°36'08.07" N  13°44'40.83" E
Hasistejn CZ
www.hasistejn.cz/ Castle Ruins 50°26'42.76" N  13°15'25.57" E
Hazmburk CZ
www.hrad-hazmburk.cz/ Castle Ruins 50°26'02.99" N  14°00'52.19" E
Helfstejn CZ
www.helfstyn.cz/ Castle Part ruins 49°31'02.62" N  17°37'38.53" E
Horovice CZ 5 en.wikipedia.org/wiki/Ho%C5%99ovice_Castle Zamek
49°50'15.46" N  13°54'32.05" E
Horsovsky Tyn CZ



49°31'46.92" N  12°56'33.43" E
Hukvaldy CZ
www.janackovyhukvaldy.cz/en/castle/ Castle Ruins 49°37'15.65" N  18°13'38.23" E
Hradec nad Moravicí CZ

Chateau

Jaromerice nad Rokytnou CZ

Zamek

Jicin CZ




Jindrichuv Hradec CZ 6 www.zamek-jindrichuvhradec.eu/en/ Zamek

Kacina CZ 4 www.kacina.cz/ Zamek

Kokorin CZ
www.hrad-kokorin.cz/ Castle

Kost CZ 8 www.hrad-kost.cz/en/ Castle

Kozi Hradek CZ 1

Ruins
Kuneticka Hora CZ
www.hrad-kunetickahora.cz/ Castle

Kynzvart CZ 4
Zamek

Landstejn CZ
www.hrad-landstejn.eu Castle Ruins
Ledec n S. CZ




Lednice CZ
http://www.zamek-lednice.com/en/ Zamek

Litice CZ




Loket CZ 5 www.czechtourism.com/c/loket-castle/
Part ruins
Malenovice CZ 3 en.wikipedia.org/wiki/Malenovice_Castle Castle

Milotice CZ
www.zamekmilotice.cz/en/ Zamek
48°57'34.02" N  17°08'17.36" E
Pardubice CZ




Pecka CZ




Pernstejn  CZ 7 www.hrad-pernstejn.eu/en/


Pribor CZ
en.wikipedia.org/wiki/P%C5%99%C3%ADbor


Rabi CZ 4 www.hrad-rabi.eu
Ruins
Radun Zámek CZ
www.zamek-radun.cz/ Zamek

Slavkovu u Brna CZ
www.slavkov.cz/ Zamek

Sovinec CZ 6 akce.sovinec.cz/


Spilberk CZ 3 www.spilberk.cz/en/


Sternberk CZ




Stramberk Truba CZ
www.stramberskatruba.cz/


Svihov CZ 6 www.hradsvihov.cz/en/


Teplice CZ




Tocnik CZ 3 en.wikipedia.org/wiki/To%C4%8Dn%C3%ADk_Castle


Trosky CZ
www.hrad-trosky.eu/ Castle Ruins
Zámek Uhercice  CZ

Zamek

Usov CZ




Valtice CZ
www.zamek-valtice.cz/en/ Zamek

Veveri CZ
www.veveri.cz/


Vranov n. D. CZ




Zakupy CZ




Zebrak CZ 2 www.hrad-zebrak.cz Castle Ruins? (tower only)
Zinkovy CZ

Zamek

Zleby CZ 5 www.zamek-zleby.cz/en/ Zamek

Znojmo CZ




Znojemský hrad CZ




Zruc n. S. CZ




Zvikov CZ 6 www.hrad-zvikov.eu/en/ Castle

Thursday, July 10, 2014

Which IT companies will still be here in 50 years?

If you had to pick a set of companies, today, that would still be around in IT in another 50 years, who would they be? And perhaps what would they be?

IBM. They've been around for 50+ years already, won't they be around in another 50? IBM is a diverse company, with its fingers in the R&D pie, as well as still being a provider of its legacy "400" hardware and software pairing. It is hard to see a weakness if it is well managed and adapts well. It is a beak weak when it comes to networking. Would eating Juniper fix that gap?

HP. Another IT company that has been around for some time but unfortunately it has not been managed nearly as well. Its Un*x and other operating systems are either dead or on life support. Age has not been kind to HP so it is hard to see it staying strong by itself for too long. What would be best if Cisco jumped in and ate it for dinner. If Cisco picked the time right, it could quite likely get a lunch special and for desert, Cisco could add in some SAP just to round things out.

Would EMC get hungry and want a piece of action? EMC has a well performing portfolio of virtualisation technology in the guise of VMware and storage. It isn't going to let VMware go anywhere, you can be sure of that, unless there's a fire sales of EMC assets and I can't see that happening. Maybe as Larry gets close to retirement, he'll get flirty like Mr Jonathan Schwartz did and cuddle up to EMC or maybe just jettisons pieces like Solaris/SPARC if they continue to not impress in sales. Which leaves Oracle as a one-trick pony (the database) and that just seems too vulnerable to be left alone. EMC would have little trouble with anti-trust there, so gobble-gobble, goes the take over monster. Plus EMC might want to add something software-ish to add to VMware in order to be less reliant on hardware as the world virtualises more and more.

I can't see Microsoft staying out of the action forever so the only question is with whom. Whichever of IBM/HP is less in love with Linux, so maybe that's a Cisco/HP/Microsoft marriage. Or would the prenuptials involving anti-trust and Microsoft's dominance be a problem? Not if it happened far enough into the future (10-20 years?) such that Windows has less market share due to Android devices and Apple things.

Apple's a rich company these days where would they go? And why won't they stay alive by themselves? There was a time when Steve Jobs was not at Apple during the 1990s and the impact on the share price was not good. The big question has got to be what sort of training and successor selection was he able to do before he passed on? In 5 or 10 years I think we ought to have an idea of what that answer might be but otherwise, I can easily see a marriage between Apple and IBM (with Juniper) looking like a marriage made in heaven. Although I cannot see a joining there based on corporate cultures but then neither was Oracle/Sun and that still happened.

Who's left. Dell. Throw Dell in the EMC pile as a provider of children's toys and other bits and pieces to compliment the adult kit. This would still leave the EMC basket without a real player in the network space so maybe there is room there for someone like Linksys to grow up and provide EMC customers with a fully fledged network stack. Maybe throw in some Qualcomm for good measure?

What about facebook and Google? They're Internet advertising companies, not IT companies, and I can't see either getting into the hardware business.

As for Ericson, Nokia, etc, well, get out some playing cards and write some names on them, shuffle then and deal.

My problem here is that I've ended up with three piles, not two, and I'm told that long term strategists see only two vendors being the providers in 50 years. If you were to start with Juniper as the base of one stack and Cisco for other, how would you build up a stack of companies that each had its own collection or puzzle pieces for delivering turn-key customer solutions?

Of course the big omission here (or perhaps mistake, if you like) is the absence of disruptive technologies from new companies that start up, strike gold and grow up to rival those that I've mentioned here. I'll note that none of the new and big companies (e.g. facebook, Google) do rival the older in big companies in any direct fashion: they've got their own new market. Thus what is perhaps possible is for a new comers (or two) to enter a new field (bio mechanics where pieces of humans are build using stem cell technology or welding bits of computers into humans (bionic eye and ear), etc) and gobble up some of the present incumbents (should they last long enough.)

Friday, March 29, 2013

Hard drive noise, power, rpm (Seagate & Western Digital)

1.4
DriveNoise IdleNoise RWPower IdlePower RWGBRP MSize
ST1000DL00221234.55.8100059003.5
ST1000DM00324254.05.9100072003.5
ST1500DL00321234.55.8150059003.5
ST2000DL00321234.55.8200059003.5
ST2000DM0015.88.0
ST2000VX000
ST2000VX00227280.55.8200059003.5
ST250DM000222325072003.5
ST31000322CS243.84.1100059003.5
ST31000333AS2729100072003.5
ST31000340AS2729100072003.5
ST31000340NS2932810.6100072003.5
ST31000520AS10005900
ST31000524AS252759.4100072003.5
ST31000524NS22284.617.42100072003.5
ST31000525SV2728710.4100072003.5
ST31000526SV272817100072003.5
ST31000528AS2628100072003.5
ST31000640SS27912.5100072003.5
ST3120210AS272912072003.5
ST3120211AS272912072003.5
ST3120213A252812072003.5
ST3120810AS272912072003.5
ST3120811AS272912072003.5
ST3120814A252812072003.5
ST3146356SS3537146150003.5
ST3146807LC36146.8100003.5
ST3146855LC3537146.8150003.5
ST3146855LW36146.8150003.5
ST31500341AS2829150072003.5
ST31500541AS15005900
ST3160210AS272916072003.5
ST3160211AS272916072003.5
ST3160212A252816072003.5
ST3160215A282916072003.5
ST3160215AS282916072003.5
ST3160318AS26284.66.216072003.5
ST3160810AS272916072003.5
ST3160811AS272916072003.5
ST3160812A252816072003.5
ST3160813AS232616072003.5
ST3160815A282916072003.5
ST3160815AS282916072003.5
ST32000542AS2526200059003.5
ST32000641AS27296.399.23200072003.5
ST32000644NS27306.399.03200072003.5
ST3200820A20072003.5
ST3200822A20072003.5
ST3200827ACE252620072003.5
ST320DM000222332072003.5
ST320LT02020220.481.432054002.5
ST320LT02220220.481.432054002.5
ST3250310AS272825072003.5
ST3250310NS25810.625072003.5
ST3250312AS26285825072003.5
ST3250318AS2507200
ST3250410AS272825072003.5
ST3250620AS253025072003.5
ST3250624AS272925072003.5
ST3250820A253025072003.5
ST3250820AS253025072003.5
ST3250824AS252825072003.5
ST33000651AS28326.399.23300072003.5
ST3300655LC300150003.5
ST3300655LW36300150003.5
ST3300656SS3537300150003.5
ST3300657SS368.7412.92300150003.5
ST3300822AS272930072003.5
ST3320413AS26285832072003.5
ST3320418AS26284.66.232072003.5
ST3320613AS252632072003.5
ST3320620A253032072003.5
ST3320620AS253032072003.5
ST3320633AS272932072003.5
ST3320820AS253032072003.5
ST3320833A283232072003.5
ST3320833AS272932072003.5
ST3400620A283740072003.5
ST3400620AS283740072003.5
ST3400633A283240072003.5
ST3400832A283740072003.5
ST3400833AS272940072003.5
ST3402111A20244072003.5
ST340211AS27294072003.5
ST3450857SS3610.114.6450150003.5
ST3500312CS33.450059003.5
ST3500320AS252850072003.5
ST3500320NS2732810.650072003.5
ST3500410AS50072003.5
ST3500412AS19203450059003.5
ST3500413AS26286850072003.5
ST3500418AS50072003.5
ST3500514NS19273.746.4750072003.5
ST3500620AS252850072003.5
ST3500630A283750072003.5
ST3500630AS283750072003.5
ST3500630S283750072003.5
ST3500641A283250072003.5
ST3500832A283250072003.5
ST3600057SS3611.6816.35600150003.5
ST3640323AS252864072003.5
ST373455LC73.4150003.5
ST373455LW368.173.4150003.5
ST3750330AS272975072003.5
ST3750330NS2932810.675072003.5
ST3750525AS25276875072003.5
ST3750528AS7507200
ST3750630AS272975072003.5
ST3750630SS2932810.675072003.5
ST3750640A283775072003.5
ST3750640AS283775072003.5
ST3750640NS279.31375072003.5
ST3750640SV283775072003.5
ST380210A25278072003.5
ST380211AS27298072003.5
ST380215A28298072003.5
ST380215AS28298072003.5
ST380810A25278072003.5
ST380811AS27298072003.5
ST380815AS28298072003.5
ST500DM0026.1950072003.5
ST500NM0001274.677.8950072003.5
ST910021AS252910072002.5
ST9100821AS252910072002.5
ST9100824A242910054002.5
ST9100824AS242910054002.5
ST9100828A243010054002.5
ST9100828AS243010054002.5
ST9120817AS242612054002.5
ST9120821A242912054002.5
ST9120821AS242912054002.5
ST9120822A243012054002.5
ST9120822AS243012054002.5
ST9120823AS252912072002.5
ST9160310AS16054002.5
ST9160314AS242616054002.5
ST9160411AS232516072002.5
ST9160821A243016054002.5
ST9160821AS243016054002.5
ST9160823AS252916072002.5
ST9160827AS242616054002.5
ST9200420AS252920072002.5
ST9200827AS242620054002.5
ST9250315AS242625054002.5
ST9250410AS23250.6725072002.5
ST9250421AS232525072002.5
ST92505610AS23260.82.272002.5
ST9250827AS242625054002.5
ST9320320AS32054002.5
ST9320325AS32054002.5
ST9320421AS232532072002.5
ST9320423AS32072002.5
ST93205620AS23260.82.272002.5
ST93811A24293054002.5
ST93811AS24293054002.5
ST94015A25294072002.5
ST940814AS24304054002.5
ST940815A24304054002.5
ST94813A24294054002.5
ST94813AS24294054002.5
ST9500325AS24261.41.5450054002.5
ST9500325ASG24261.41.7850054002.5
ST9500420AS23250.6750072002.5
ST95005620AS23260.82.272002.5
ST96023A25296072002.5
ST96023AS25296072002.5
ST960813AS24306054002.5
ST960815A24306054002.5
ST9640320AS23260.681.2564054002.5
ST96812A24296054002.5
ST96812AS24296054002.5
ST9750423AS23260.51.475054002.5
ST980411AS23258072002.5
ST980811AS24308054002.5
ST980813AS25298072002.5
ST980813ASG25298072002.5
ST980815A24308054002.5
ST980825A25298072002.5
ST980825AS25298072002.5
ST98823A24298054002.5
ST98823AS24298054002.5
STM31000340AS2530100072003.5
STM31000528AS2527510.4100072003.5
STM3160215A272916072003.5
STM3160215AS272916072003.5
STM3160815AS272916072003.5
STM3250310AS253025072003.5
STM3250318AS26285825072003.5
STM3250820A253025072003.5
STM3250820AS253025072003.5
STM3320613AS253032072003.5
STM3320820A253220072003.5
STM3320820AS253032072003.5
STM3500320AS253050072003.5
STM3500418AS26285007200
STM3750330AS253075072003.5
STM380215A27298072003.5
STM380215AS27298072003.5
STM380815AS27298072003.5
STM940215A24294054002.5
STM960212A24296054002.5
STM980215A24298054002.5
WD1000FYPS242910003.5
WD1001FALS2433100072003.5
WD1002FAEX28336.16.8100072003.5
WD1002FBYS2833100072003.5
WD1003FBYX28335.9100072003.5
WD10EACS2527100054003.5
WD10EADS252710003.5
WD10EADX23272.84.910003.5
WD10EALS28336.16.8100072003.5
WD10EALX28336.16.8100072003.5
WD10EARS23272.84.8610003.5
WD10EARX23272.84.8610003.5
WD10EFRX21223.23.710003.5
WD10EUCX23243.35.310003.5
WD10EURS23244.24.910003.5
WD10EURX23243.35.310003.5
WD10EVDS24254.24.9100054003.5
WD10EVVS24254.24.9100054003.5
WD10EZEX29306.16.8100072003.5
WD10EZRX21223.35.310003.5
WD10TPVT24250.751.7100052002.5
WD1200BEAE202112054002.5
WD1200BEVE202112054002.5
WD1200BEVS242612054002.5
WD1200BEVT24260.12.512054002.5
WD1200JB282912072003.5
WD1500HLFS27344.56150100003.5
WD1501FASS29348.210.7150072003.5
WD1502FAEX29348.210.7150072003.5
WD1502FYPS25290.86.815003.5
WD1503FYYS29348.210.7150072003.5
WD15EADS2529150054003.5
WD15EARS24292.754.7315003.5
WD15EARX24292.54.515003.5
WD15EURS24254.85.315003.5
WD15EVDS25264.95.9150054003.5
WD15EZRX24295.5615003.5
WD1600AABB303216072003.5
WD1600AABBS303216072003.5
WD1600AAJB242716072003.5
WD1600AAJS26311603.5
WD1600BEKT22250.852.516072002.5
WD1600BEVE232516054002.5
WD1600BEVS242616054002.5
WD1600BEVT242616054002.5
WD1600BPVT24250.851.616054002.5
WD1600JB282916072003.5
WD1600JS282916072003.5
WD2000BB303220072003.5
WD2000JB282920072003.5
WD2000JS282920072003.5
WD2001FASS29348.210.7200072003.5
WD2002FAEX29346.110.7200072003.5
WD2002FYPS25290.86.820003.5
WD2003FYYS29348.210.7200072003.5
WD20EADS24293.76200052003.5
WD20EARX24292.54.520003.5
WD20EFRX23244.14.42000
WD20EURS24254.85.320003.5
WD20EVDS25264.95.9200054003.5
WD20EZRX3.5295.5620003.5
WD2500AAJB252925072003.5
WD2500AAJS25267.27.825072003.5
WD2500AAKS283325072003.5
WD2500AAKX29305.6625072003.5
WD2500BB303225072003.5
WD2500BEKT222525072002.5
WD2500BEVE232525054002.5
WD2500BEVS242625054002.5
WD2500BEVT242625054002.5
WD2500BJKT22250.152.52502.5
WD2500BPVT22250.852.525054002.5
WD2500JB282925072003.5
WD2502ABYS252925072003.5
WD25EZRSDTL24295.5625003.5
WD25EZRX24295.5625003.5
WD3000BKFG27345.27.4300100002.5
WD3000GLFS2936300100002.5
WD3000HLFS27344.5630010000
WD30EFRX23244.14.430003.5
WD30EURS23244.14.430003.5
WD30EZRSDTL24255.56.330003.5
WD30EZRX23275.5630003.5
WD3200AAJB283332072003.5
WD3200AAKS29304.925.3632072003.5
WD3200AAKX29305.6632072003.5
WD3200BEKT222532072002.5
WD3200BEVE222532054002.5
WD3200BEVT242632054002.5
WD3200BJKT22250.152.53202.5
WD3200BPVT24260.852.532054002.5
WD3200JB283332072003.5
WD3202ABYS252932072003.5
WD4000AAJB282940072003.5
WD4000AAJS282940072003.5
WD4000AAKB283340072003.5
WD4000AAKS283340072003.5
WD4000BEVT242640054002.5
WD400BB30324072003.5
WD400BD30324072003.5
WD400BEAE20214054002.5
WD400BEAS24264054002.5
WD400BEVE20214054002.5
WD400BEVS24264054002.5
WD400JB28294072003.5
WD400JD28294072003.5
WD4500BKHG28345.48.3450100002.5
WD4500HLHX27344.36.445010000
WD5000AACS252750072003.5
WD5000AADS252950054003.5
WD5000AAJB282950072003.5
WD5000AAJS282950072003.5
WD5000AAKB25297.78.350072003.5
WD5000AAKS28335.6650072003.5
WD5000AAKX28335.6650072003.5
WD5000AAVS24295003.5
WD5000AUDX21222.63.75003.5
WD5000AVCS2122345003.5
WD5000AVDS21223.74.15003.5
WD5000AZRX21222.63.85003.5
WD5000BEKT25280.831.850072002.5
WD5000BEVT242650054002.5
WD5000BPKT28280.81.7550072002.5
WD5000BPVT0.252.550054002.5
WD5001AALS252950072003.5
WD5002AALX29348.210.750072003.5
WD5002ABYS25296.67.150072003.5
WD5003ABYX27304.56.450072003.5
WD6000BKHG28345.48.3600100002.5
WD6000HLHX27344.36.460010000
WD600BEAS24266054002.5
WD600BEVE20216054002.5
WD600BEVS24266054002.5
WD6400AACS24296403.5
WD6400AADS25276403.5
WD6400AAKS25297.78.364072003.5
WD6400AARS23272.84.866403.5
WD6400BEVT22250.651.664054002.5
WD6400BPVT22250.651.664054002.5
WD6401AALS252764072003.5
WD6402AAEX28336.16.864072003.5
WD7500AACS252775072003.5
WD7500AADS24292.84.910003.5
WD7500AAKS283375072003.5
WD7500AALX28336.16.875072003.5
WD7500AARS23272.84.97503.5
WD7500AARX23273.35.37503.5
WD7500AVDS24254.24.975054003.5
WD7500AVVS24254.24.975054003.5
WD7500BPKT28280.81.7575072002.5
WD7500BPVT222575054002.5
WD7500KPVT75052002.5
WD7501AALS242975072003.5
WD7502AAEX28336.16.875072003.5
WD7502ABYS283318.475072003.5
WD8000AARS23272.84.868003.5
WD800AAJB29304.925.368072003.5
WD800AAJS8072003.5
WD800BB30328072003.5
WD800BD30328072003.5
WD800BEAE20218054002.5
WD800BEAS24268054002.5
WD800BEVE20218054002.5
WD800BEVS24268054002.5
WD800JB28298072003.5
WD800JD28298072003.5
WD10JFCX2425.61.410002.5
WD7500BFCX2425.61.47502.5
WD3200BEKX2528.832072002.5
WD5000MPCK1517.551.550054002.5
WD5000BPVT2225.651.650054002.5
WD3200BPVT2225.852.532054002.5
WD2500BPVT2225.852.525054002.5
WD3200LPVX1722.551.432054002.5
WD2500LPVX1722.551.425054002.5
WD10SPCX2021.571.7100054002.5
WD10JPVX2425.591.4100054002.5
WD7500LPCX2021.571.775054002.5
WD7500BPVX2425.651.675054002.5
WD7500BPVT2425.651.675054002.5
WD5000BPVX2425.591.450054002.5
WD5000LPVX1722.551.450054002.5
WD5000LPVT1722.551.450054002.5
WD40EFRX25283.34.540003.5
WD30EFRX23273.04.130003.5
WD20EFRX23273.04.120003.5
WD10EFRX21242.53.310003.5
WD4000F9YZ31348.19.5400072003.5
WD3000F9YZ31348.19.5300072003.5
WD2000F9YZ31345.97.3200072003.5
WD1000F9YZ30344.67.1100072003.5
WD4003FZEX29348.19.5400072003.5
WD4001FAEX29348.19.5400072003.5
WD3003FZEX29348.19.5300072003.5
WD3003FAEX29348.19.5300072003.5
WD2003FZEX29348.19.5200072003.5
WD1003FZEX29306.16.8100072003.5
WD1002FAEX28306.16.8100072003.5
WD5003AZEX29306.16.850072003.5
HDS724040ALE640296.1400072003.5
HDS5C4040ALE630254.9400054003.5
ST4000DM00025305.07.540003.5
ST3000DM0015.88.030003.5
ST3000DM00325305.07.530003.5
HTS545050A7E381.51.850054002.5
HTE545050A7E380.51.850054002.5
ST1000DX00122243.45.9100072003.5
ST2000DX00124274.56.7200072003.5
ST4000DX00123306.27.5400059003.5
ST2000NM00344.848.93200072003.5
ST4000NM00345.739.59400072003.5
ST5000NM00346.9610.72500072003.5
ST6000NM00347.9711.86600072003.5
ST2000NM00244.58.08200072003.5
ST4000NM002469.42400072003.5
ST5000NM00246.911.27500072003.5
ST6000NM00246.911.27600072003.5
ST2000VN000192134.320003.5
ST3000VN00023253.954.830003.5
ST4000VN00023253.954.840003.5
ST1000VX00022243.45.9100072003.5
ST2000VX00024275.48200072003.5
ST3000VX00024275.48300072003.5
ST3000VX002242657.5300059003.5
ST4000VX000242657.5400059003.5
WD10JFCX24251.40.610002.5
WD2001FFSX31346.58.6200072003.5
WD3001FFSX31346.58.6300072003.5
WD4001FFSX31344.96.5400072003.5
WD50EFRX25285.33.450003.5
WD60EFRX25285.33.460003.5
WD7500BFCX24251.40.67502.5
WD5000AZRX21222.53.35003.5
WD40EZRX25283.45.340003.5
WD50EZRX25283.45.350003.5
WD60EZRX25283.45.360003.5
WD20NPVX24250.81.720002.5
WD15NPVX24250.81.715002.5
WD2503ABYZ27304.46.525172002.5
WD5003ABYZ27304.46.550072002.5
WD2000FYYZ31346.49200072002.5
WD200MFYYZ31348.610.9200072002.5
WD3000FYYZ31348.610.9300072002.5
WD4000FYYZ31348.610.9400072002.5

Saturday, February 2, 2013

Fixing IRC....

From time to time I see stories around the Internet about IRC and various comments about how it should just "be fixed", as if that were something easy to do. Unfortunately "fixing" IRC is quite hard. Why you ask?

IRC (Internet Relay Chat) works by sending messages between clients connected to the edge of a network of connected servers. The network of connected servers might be as few as one or as many as a hundred. Each server passes messages on to other servers or clients depending on various fields in the IRC message. The goal is near to instantaneous transmission of text messages from one client to another. That the transmission isn't instantaneous is where the problems begin.

To think about an IRC network in a more abstract sense, it could be considered to be a large distributed database where each IRC server holds its own copy of the database where the database contains information relating to other IRC servers that are connected to the network, all of the IRC clients that are connected to the network and which server they are connected to and lastly all of the channels (chat rooms) that a client is a member of. All of this information can be used to build a graph that maps the path between any two clients at a given point in time.

When a new client connects to the IRC network, its presence is announced by a message being distributed throughout the IRC network by the server that it first connects to. Similarly messages that represent the client joining a channel are broadcast throughout the network, as too is a message sent out when the client disconnects, effectively removing the client from the database.

When a new server connects to the IRC network its name is announced to all of the other servers in the IRC network, similar to what happens with an IRC client. However it must also receive a complete dump of the IRC database from the server it connected to. When two servers join together with each owning their own IRC network, the fun begins.

If an IRC network becomes divided due to a connection between IRC servers severing then in order to allow the two parts to continue functioning as a chat network, clients are allowed to leave/join, etc. This now means that it is possible for two clients to connect to each half and both choose (for example) the same chat name. When the networks joins back together, each IRC server will see a name collision. This problem is partially overcome with the use of time stamps - synchronised time stamps - but this starts to highlight the problem.

The problem for IRC is that it is a distributed database with clients attached to each database server that want to exchange messages with each other via the servers and not just interact with the server to which it is directly attached. It is a distributed database without any concept of there being a master server making the network of IRC servers functionally similar to a hive: the knowledge about the environment is shared with each and every member knowing everything there is to know.

Whilst there has been consideration given to using multicast, support for it is required across backbone routers but that brings another problem to the fore: reliability. It is essential for a message announcing that a client is joining a chat room reach all of the participants before any messages sent to the chat room for as part of the group communication. Similarly a message announcing a client withdrawing from the network must be distributed after all of the other messages from a client. This rules out using simple protocols that are layered on UDP. To meet all of these usability concerns, TCP is the transport layer protocol that delivers all of the IRC data.

So there you have it: fixing IRC requires developing a new database transport protocol that is light weight, reliable, provides sequenced delivery of data from one side of the Internet to another, allows for databases to merge with potentially conflicting data.

Saturday, August 18, 2012

Consuming Advertising

As an ordinary person that watches movies, TV, listens to the radio, reads newspapers and hangs out on the Internet, I'm delivered a lot of different advertising. Some of it is effective, a lot of it is not.

When I'm watching advertising on the TV, it is rare for me to actually pay attention to it unless it is actually about an event or something else that I'm interested in but in the age of TiVO and other such devices, advertising is all too often the victim of fast-forwarding, with the exception of the 5 to 10 seconds prior to when the advertising finishes and the TV show begins. Some ads are carefully designed to deliver visuals that convey a readable message even whilst fast-forwarded, some are not. But for the most part, I find TV adverts annoying because they interrupt my consumption of the content being delivered by the television. This has ultimately resulted in "reality" TV shows saying "and the winner is..." - ad break, meaning it is time to get up and exercise or leave the room in disgust at the programming being done by the TV station. Whilst the TV stations may think it is a clever trick, I don't know anyone that looks kindly upon this tactic and I expect that if your ad was the first ad being displayed following that, the chances of the consumer actually being in a receptive state of mind are going to be quite low. Thus it is quite hard for an advertiser to get through to me about general products and in the Internet age, a TV ad alone is not likely to cause me to buy a product.

When I listen to the radio, my goal is generally to listen to music, the football or cricket. Talk-back radio and radio jockeys talking about random topics is not particularly interesting as it is more or less a collection of people with nothing better to do than ring up the radio station and wait to be heard on air. Maybe that's great if you're 75. Not if you're 35. Similarly comedians on the radio can be somewhat boring too and I can't help but wonder if as we grow older as a radio listener, we are able to see through the banter which we once thought was funny and wander off to greener pastures for our ears. When it comes to advertising, It couldn't be more different to TV if it tried. As a person that enjoys listening to music, it is between the hours of roughly 11pm and 5am when radio music content is at its best and adverts are at their fewest. Would that I could TiVO my local FM stations during those 6 hours at night and replay them during the daylight hours. But to drag myself back to the topic at hand, I rarely change radio station because of advertising. I'll change radio station because someone likes the sound of their voice to much or because I've heard that song 5 times today already, but I never walk out of the room when an ad comes on the radio, rather it is more likely that I stay sitting at the desk or table and continue doing whatever it was that I was doing.

Of a morning I read the newspaper headlines over breakfast. This is perhaps the most relaxing way to consume news and current affairs that I know of, save for laying down on the floor/bed and spreading the newspapers out in front of me. In consuming news this way, I can take my time, reread sections that I don't believe at first, ponder what's read and think about it. I don't get 5 seconds to find out about the latest car accident that killed 2 passengers, rather I can take 50 seconds to read and laugh at the Odd Spot on the front page. If there are adverts on the page of a newspaper that look mildly interesting, such as a bank offering a new product for a better return on deposits, there's a good chance that I'll read the fine print and so forth. The ad never gets in the way of the story, even when I have to change page to find the rest of the front page story. Perhaps most importantly, newspapers is the only place I know of where it is common to find out about today's specials or this week's specials, etc. Internet advertising never delivers that. Some newspapers will dedicate the entire back page to advertising for a local store or chain of stores that is running a promotion that day or weekend. On the Internet, the only way to find such information is to directly visit a store's website.

When it comes to Internet advertising, I do my best to block as much of it as I can. The simple reason for this is that ads themselves never have any value to me and are too often distracting and interrupting me. When I access web pages on the Internet, I'm generally looking for content/information. That includes when I use web search engines to search.

I've never deliberately clicked on a facebook ad and never intend to although I occasionally click on one by mistake.  In the first instance, facebook ads are very nicely grouped on the right side of facebook's page, meaning that even if anti-script applications have difficulty in blocking them, I've been able to train my brain to easily exclude paying any attention to that part of the screen. If someone asked me what I thought of facebook ads, I'd probably go "What facebook ads?" Sure, they're there, but they barely get noticed. If anyone is paying to have me see them, they're wasting their money.

To compare with Google, I've disabled the sponsored ads on the right and only click on the sponsored ad for a product if it is the product that I want but in many circumstances, the sponsored ad link from a vendor isn't the one I want as they're usually a general link whereas what I'm seeking is a product specific link

So in summary, for me Internet advertising doesn't work. At all. The Internet is where I go in search of information and I usually have a specific target or focus whilst doing so. Whilst in this state of mind, I'm not going to be receptive to advertising of any sort. My state of mind whilst reading a newspaper is completely different, as it is when watching TV.

I suspect that I'm atypical of the average "heavy Internet user" in various ways but mainly that of sitting down and reading a printed newspaper. When it gets delivered to your door every morning, it is very easy to sit down and read. On a weekend, there's almost nothing better than sitting down on the couch and reading through the paper with a cup of tea and a packet of biscuits.

Monday, April 2, 2012

Logging in with username@google.com to Unix

As part of an April Fools Day prank, Alan Coopersmith wrote about some ideas that were proposed for Solaris 12 but rejected. Amongst those was one where you could use a PAM plugin to login using your Google/facebook account. Whilst at first it seems silly, is it really as silly as it sounds?

Modern, smart, mobile phones are usually running a small operating system not that unlike what you use on your computer. There is a variation of Windows 7 that runs on mobile phones. Android is another example. Apple uses its own proprietary operating system. All of these mean that behind the glassy screen on your phone is a complex set of software that responds to your taps and touchs in a way that allows you to use the device like a phone. A large number of these devices are now able to connect to the Internet via 3G/4G technology.

So how does the Google/facebook account factor into this?

To use our mobile phones, we typically enter in a PIN for either the phone or SIM card and sometimes both. What this amounts to is determining whether or not the person holding the phone is actually authorised to use it. Once we've entered the PIN, all of the phone's capabilities unlocks. Phones are typically used by 1 person, so any customisation is saved locally, along with our contacts, SMS history, etc.

Given that the phone has Internet connectivity via 3G/4G, what if instead of unlocking the SIM card at power on, you logged into your Google account and instead of your contacts being stored locally, on the phone, they're stored on the Google cloud. Now if you lose your phone, you don't lose your contacts list or your SMS history. Similarly, if you needed to call someone, you could use someone else's phone and login as yourself through the very same portal.

For people that use their mobile phone as an Internet access device, logging in using your facebook account and having the phone then dedicate itself to you using facebook could also work.

To protect the privacy of users, the details of every session that get stored locally would need to be encrypted with a session key that is generated anew for each login. This would mean that the phone would have to pull all of my contacts and other bits down every time it was turned on, but the alternative is that guests using the phone would have no privacy from the owner of the phone.

Each session for a given user would run as a distinct user, inside its own virtual screen.

This idea completely shifts the way in which we use a phone from it being the centre piece to being just the access node and the phone itself has little value. To expand this further, you could create a public phone variation of this where anyone can come up to the phone and login using their Google/facebook credentials and have immediate access to all of their contacts.

So to summarise, maybe a PAM plugin to allow a login to be authenticated with a Google/facebook account is really not that silly as it sounds - just different.

Saturday, July 30, 2011

No ads with Mafia Wars on facebook

When I started playing Mafia Wars on facebook, the game was very much centered around input in the top area of the screen. Over time, Zynga have added their own bars and gadgets at the top of the screen, pushing the game content down. In more recent additions to Mafia Wars, you often find yourself spending large amounts of time scrolling down a long way, so much so that the top part of the page is never seen.

And this means that the ads that facebook throws at you are also not seen. Whilst this is a good thing for me (I'm not bothered by ads whilst I play), it also means that those paying for those ads are also not getting what they think they're getting. Why? Although I might be present on a given page for many minutes, as the ads are never seen even though they may be present for many minutes,. Thus a page impression from Mafia Wars results in me seeing the ad for a vastly shorter period of time than I would if it were facebook itself.

With other games such as FarmVille, the action is very much centered on the main playing screen, such that you don't have to scroll away from the ads.

If facebook and Zynga are in bed together to keep customers around, then it would seem that it's the third party in this menage a trois - the advertisers - that are getting screwed by both of their bed mates when it comes to Mafia Wars.

Monday, June 27, 2011

In search of hidden waterfalls

With this year being a very wet year in California, it seemed like a good idea to go in search of waterfalls. Not just the well known ones such as Yosemite, but others. This is something of a mixed blessing as quite often waterfalls look better in photographs when there is not as much water flowing.

This quest led me to a website called Waterfalls of the West. Note: only very easy/popular water falls have their full information available. Others require you to register. Registering requires submitting your email, after which you get a short period (24 hours?) of "free access" to information about the waterfall. This includes its height (estimated), GPS co-ordinations, etc.

A few weekends ago, I tried it out. For the waterfalls that are easily reached by a recognised and dedicated trail, the website provides good information. For others, the directions are somewhat lacking. The problem with the directions is that the person providing them is a GPS navigator and does not understand what is necessary to describe for others hiking using the directions rather than following GPS co-ordinates. For example, in one description it recommends that you "park at the turnout and walk down the road." However road is a misleading word - unused, overgrown track is more appropriate. Thus my first attempt to find that waterfall failed as I was looking for something resembling a road. After this, I made another go and discovered that there is something there that may have once been a track - not a road.0 Even USGS maps prior to the expedition being described it is clear that what's being described was never a road. When confronted with details like this, the website author complained that I was being "too picky". I'm flabberghasted. Details are extremely important when you're describing where and how to get somewhere but maybe this is a result of dealing with the Internet generation that use a GPS instead of a map.

Perhaps the most galling part of my interactions with the web site owner was that he still expressed hope that I'd pay him money. For what? Writing inaccurate directions that lead to people going astray with a caveat "you may want to use a GPS."?

Nevertheless, I found the waterfalls that I wanted - such as Mossbrae - and others that I didn't want - Little Roaring Creek. The latter is a story in itself.

Sunday, January 30, 2011

Online Persona

Every website asks us for the same information: date of birth, zipcode, phone#, etc, so that it can later verify that we are who we say we are by answering a question or two based on this information. The catch is that those who are close to us probably also know all of that information, including what our friends look like. So long as everything is calm, this poses no risk. But what happens if you have a rather acrimonious break up with your partner? Suddenly all those secret questions that offer you privacy do not seem so strong..

Enter the Online Persona.

If we carefully construct our online persona to be fictitious by choosing a different date of birth, where we were born, etc, then we're adding layers of security (although only by obscurity.) Each extra piece of incorrect information acts as another password that only we know. Whilst this means that features like facebook's birthday announcements become meaningless, does it really matter? Those who need to know when your birthday is will know, one way or another. The real catch with this is you need to be able to remember all of the false answers or you may find yourself locked out of your own accounts!

Wednesday, September 8, 2010

IPFilter: Designing for security

In the last 15 years, IPFilter has been popular enough that it has inspired at least one other firewall to imitate its configuration syntax (pf) and seemingly the basis of another in progress (npf). The examples that I've seen used for each indicate to me that neither of them is intended to be used in a manner that focuses on security as the prime goal of the design. That is distinct from saying that they can't be used to implement or achieve security.

One of the central themes in security is the ability to audit. For IPFilter, my interpretation of this requirement is that it is absolutely necessary to be able to audit the running configuration of the machine against what is found in its configuration file otherwise how else do have any assurance of what security policy is actively being applied to packets? In this instance, rule expansion where one rule with 5 ports becomes 5 rules or when you're using a text expression that is compiled into opcode makes it significantly harder to verify what's loaded into the kernel with what's in your configuration file.

To successfully audit an IPFilter configuration, three steps are required:
(1) collect the sorted rules from the kernel
(2) generate a list of sorted rules from the configuration file
(3) compare the results of (1) and (2)

Why do I mention "sorted rules"? The order in which rules are retrieved from the kernel and their grouping (all input rules and/or or output rules) is not likely to match the order in which they appear in the configuration file.

To give a brief example..

An extract of my configuration file looks like this:


pass in quick on lo0 all
pass out quick on lo0 all
pass out quick on nfe0 proto tcp all flags F/F
pass out quick on nfe0 proto tcp all flags R/R
#
block in log all
block in log quick from any to pool/666
block out quick log from any to pool/666
block in quick log from pool/666 to any
block out quick log from pool/666 to any


If I parse that configuration file and sort it using ipf, I get:

$ ipf -nvf /tmp/foo | sed -e 's/(!)//' | sort

block in log all
block in log quick from any to pool/666
block in log quick from pool/666 to any
block out log quick from any to pool/666
block out log quick from pool/666 to any
pass in quick on lo0 all
pass out quick on lo0 all
pass out quick on nfe0 proto tcp from any to any flags F/F
pass out quick on nfe0 proto tcp from any to any flags R/R


If I dump the kernel configuration and process it like above:


# ipfstat -io | sort
block in log all
block in log quick from any to pool/666
block in log quick from pool/666 to any
block out log quick from any to pool/666
block out log quick from pool/666 to any
pass in quick on lo0 all
pass out quick on lo0 all
pass out quick on nfe0 proto tcp from any to any flags F/F
pass out quick on nfe0 proto tcp from any to any flags R/R


Thus it is immediately possible to compare both. If I were to audit what is in the file itself rather than what the parser interprets it,
then the text I would be comparing with what is output from the kernel would be:


block in log all
block in log quick from any to pool/666
block in quick log from pool/666 to any
block out quick log from any to pool/666
block out quick log from pool/666 to any
pass in quick on lo0 all
pass out quick on lo0 all
pass out quick on nfe0 proto tcp all flags F/F
pass out quick on nfe0 proto tcp all flags R/R


Whilst that isn't the same as what ipfstat reports, it is very close and allows for a simple audit with diff to determine what the differences are and if they're proper. In this example, the only difference is "all" vs "from any to any". "all" becomes "from any to any" whenever there is a packet attribute that is required for matching that is not an address or port number.

This is a very simple requirement that actually delivers a very strong foundation.

For those familiar with IPFilter, you may be wondering why didn't I apply the same rationale to ipnat. Indeed when I review it, it is most definitely lacking a mechanism to display only the loaded NAT rules or only the active sessions. Currently doing "ipnat -l" lists both at once. Whilst the NAT functionality isn't directly responsible for enforcing security and thus exposed to the requirement of being able to be audited, it does play a part and should be more friendly in this area.

An additional benefit of this design is that removing a rules from the kernel's configuration is rather easy. For example, to remove all of the current rules you can perform a flush (ipf -Fa) or remove rules individually (ipfstat -io | ipf -rf -). The former is more common because it is both simpler and there are fewer complications when using rule groups. As it is, the design allows for tools to interrogate the kernel and the result of that interrogation is valid input that can then be reused.