I am fed up of coming across examples of false equivalence on social media, so eventually I wrote this ...
Consider the relative danger a cyclist poses to other road users compared to the driver of a car.
A driver is sitting in 2000kgs of car, A heavy bike is 15kgs and you can add 80kgs of human to that if you are me;) 95kgs. Let's round it up to 100kgs. On this basis you might argue that a driver provides 20x more danger to other road users than a bike. Of course the difference is much greater than this as the car can travel much faster than the bike.
Consider the fairly extreme, but not uncommon, case of a car overtaking a cyclist at 50mph on a road where the cyclist is travelling at 15mph. Where are we up to on the relative danger caused by each individual now? 50x more danger? More? Well, let's try and work it out based on their kinetic energy:
Driver: 0.5 * 2000 * 50*50 = 2,500,000
Cyclist: 0.5 * 90 * 15 *15 = 10,125
Noting that I'm not worrying too much here about using the correct units (feel free to convert yourselves) to ascertain exactly the correct energy value in joules as I am only interested in relative figures here.
Divide one by the other and you get the relative kinetic energies one to the other and I'll initially posit that this equates to the of relative danger the driver of the car poses to other road users in this scenario: 246.91.
So the driver of the car provides approximately 250 more danger than the cyclist. Aside: see that speed being squared as part of the equation. This is why sticking to speed limits and the roll out of 20 limits to all urban areas is so important.
But we've not finished. There is another angle - the driver is in a metal box while the cyclist is almost completely exposed. How does this affect the relative danger posed by each. Well, just from a common sense point of view take this example - a driver in a car hits a cyclist on a bike head on at the aforementioned speeds? You multiple that relative danger by multiple factors of 10?
Next, think about a 10tonne lorry …
Finally, think about the relative danger a cyclist and a driver cause towards a pedestrian crossing the road. We can approximate the pedestrian's kinetic energy 0.5 * 75 * 5 * 5= 938 given the relative dangers of each:
Pedestrian 1
Cyclist 11
Driver 2665
Hmm ...
Equating the danger to other road users caused by cyclists to that caused by drivers is false equivalence. It is wrong. It is dangerous. It is ignorant. Don't do it.
We need to focus road safety improvements on those that cause the most danger. These are the bad drivers. There is no point wasting resources on cyclists who cause minimal danger to other road users.
A Too many drivers run red lights.
B But I see lots of cyclists running red lights.
This is false equivalence. B is ignorant. Don't be like B.
A Too many drivers pass cyclists dangerously, not giving them enough room.
B But what about the cyclists who go on the pavement, eh?
This is false equivalence and whataboutery. B is ignorant. Don't be like B.
Further Reading
https://www.roadbikerider.com/correcting-the-false-equivalencies-in-the-cars-vs-cyclists-debate-d5/
This is a brief update to my initial 'review' of my Escape 3 hybrid, the base model in Escape series of bikes from Giant. I'm now approaching 2 years of ownership involving use 3 or 4 times per week on average, for smaller, utility rides, and I could hardly be happier with the bike. There've been very few punctures - one at most, from memory though I get bikes mixed up so it could easily be none, and this compares very well with the previous Saracen (which, incidentally, I had properly serviced at my local bike shop and have handed on to my daughter for use). The Giant could now probably do with a fuller service but seems happy enough with my own very limited maintenance thus far. I've replaced the brake blocks once over the period. They are due another change.
As mentioned in my initial review the bike does cycle pretty heavy and I wouldn't put it in the 'sports' category of hybrid bike. This is not a big issue with the poor condition of Cardiff roads and I might even consider the additional weight of suspension forks for my next hybrid. Though the Giant has plenty of life left in it, I do like new toys.
I haven't explained my bike purchasing policy. I tend to buy last year's model or demo bikes to save a bit of money. I don't like to spend much more than £300 on bike, preferably less, mainly due to the level of activity of bike thieves in Cardiff. I picked up a 29" MTB with suspension and hydraulic discs for not much more than £200, so it can be done. Though that was pretty lucky, admittedly. That MTB has only been ridden once so far, by the way, so I really shouldn't be buying any more bikes! I wanted to give disc brakes a go and see if they were worth it but I'm not actually using the bike enough yet. Partly as it looks more like a £450 bike so I am reluctant to leave it anywhere! See my earlier point.
Still no close fitting mudguards by the way - my only real annoyance that the recommended mudguards didn't fit remains!
In summary, if another, higher spec'd Giant comes up at 40% off it would be rude not to.
Having recently had another bad experience with a supplier of goods/ services, I'm going to note these here, and maybe even some historical ones as I recall. I may extend to the good experiences. It has to be said that this will primarily be for my own consumption as a reminder for future reference.
Do not use
IWOOT - purchased t-shirt for son which appeared to have defects in the printing process. IWOOT customer services replied to say that these were as per the image on the website. If you looked REALLY CLOSELY you could see some of the defects in the image on the website but a) who looks that closely & b) it should have been made clear in the description, particularly if these shirts are 'seconds', as I suspect. Contrary to Trades Description Act?
I bought a Giant Escape 3 hybrid as a late birthday present for myself late last year. It was the 2015 model at a decent discount in the Tredz sales, having had good service from Tredz in the past when I bought a Saracen Esc hybrid a couple of years ago. I bought the Giant with a view to replacing the Saracen mid term and as a back up bike in the interim but as it happens, the Saracen chainset developed an issue which had pressed the Giant into full time action earlier than expected. I say 'full time' but as I work from home it really is a couple of miles with my boy to school and on to the gym and back in the morning, as well as the collect school run/ cycle in the afternoon.
First impressions of the Giant included that it was a little heavier than expected, certainly heavier than the Saracen, but perhaps unsurprisingly a little more solid accordingly. Surprisingly therefore I find the Giant a little more 'twitchy' than the Saracen - a little more difficult to manouevre. The Saracen was/ is a lovely ride but has needed a fair bit of maintenance, despite relatively light, though daily use. I hope the Giant will be better in this regard, though the chainset has already developed an intermittent clicking which isnl't the best of signs. Question for Tredz on this - can I take the bike into my local Cardiff store for a 3 month service/ to look at these issues.
One annoyance was a related mudguard purchase. I've had problems with ill-fitting mudguards before and a generic set I had hanging around didn't fit so I popped straight on the Tredz website to order a mudguard set from Giant that was supposedly specificaly designed to fit my new bike, i.e. http://www.giant-bicycles.com/en-gb/gear/product/giant.speedshield.700.tour/592/44544/ from Tredz at http://www.tredz.co.uk/.Giant-Speedshield-700-Tour-Mudguards_50158.htm (Giant Speedshield 700 Tour mudguards). 'Fitting is simple and quick so you can get out riding straight away.' No, these mudguards do not fit the Giant Escape 3 2015! Also annoyingly you have to pay the postage if you want to return them to Tredz.
There is one App I wish I had on my Windows hardware (phone, PC, laptop, tablet) and that is Ap Geiriaduron (http://www.bangor.ac.uk/canolfanbedwyr/ap_geiriaduron.php.en). That's the one I can think of offhand anyway. There might be others.
You may have come across Bluestacks (http://www.bluestacks.com/) before. This is an android emulator that runs on the PC. I tried it. It worked. It was clunky but it worked.
A tweet came in yesterday pointing me to another solution: http://www.theverge.com/2015/4/3/8339197/android-apps-on-windows-mac-linux-chrome-os. This actually isn't the best article if you are not au fait with all the technologies and concepts, as I wasn't, and I work in IT. So here is a slightly better step through (IMO):
- Make sure you have a recent version of the Google Chrome web browser.
- Go to https://chrome.google.com/webstore/detail/arc-welder/emfinbmielocnlhgmfkkmkngdoccbadn and install the ARC Welder App.
- Obtain the ID of the 'APK' (application package file) from Google Play, e.g. for https://play.google.com/store/apps/details?id=com.cysgliad.android.apGeiriaduron it is 'com.cysgliad.android.apGeiriaduron'
- Go to a site like Evozi's APK Downloader and 'generate download link' for yout desired App's Google Play URL
- Use this link to download the .apk file for your chosen App
- You can then 'add your APK' from ARC Welder, specify the orientation, etc. for the App and you are away.
There are variations of the above (see links) but I think this is the simplest way.
The problem this does not solve is how to run Android Apps on my Windows Phone, but it is a step in the right direction.
References
http://www.theverge.com/2015/4/3/8339197/android-apps-on-windows-mac-linux-chrome-os
https://developer.chrome.com/apps/getstarted_arc
http://www.androidpit.com/how-to-download-apk-file-from-google-play
I’ve just finished catching up with a recording from dotnetconf 2015 (http://www.dotnetconf.net/): http://channel9.msdn.com/Events/dotnetConf/2015/Welcome-and-NET-2015-Overview
I am going to attempt to share and extend the knowledge presented here.
Being a .NET developer has gradually become a more and more complex propositions over the 13+ years since its launch and after viewing the video it is safe to say that it is only getting more complex as Microsoft and others attempt to extend support to a variety of different platforms, among other reasons.
With increments of .NET we are used to getting updates to the .NET languages, the underlying Framework and technologies built on it, such as ASP.NET. With .NET 2015 we have a couple of new .NET variants to get to grips with, and that is just for starters.
Pass1
.NET 2015 could be summarised as two frameworks, .NET Framework 4.6 and .NET Core 5, both based on underlying shared runtime components, compilers and with intrinsic support from NuGet package management. .NET Core is a rewritten, stripped down version of the .NET Framework better suited to deployment scenarios where the full extent of the .NET Framework is not required.
Pass 2
A slightly fuller list of the constituent elements of .NET 2015 might be:
- C# 6 (and VB 14)
- Roslyn (the .NET Compiler Platform) – new(ish) C# and VB compilers, new language features, compiler-as-a-service and open source
- .NET Framework 4.6
- ASP.NET 5
- Which does not support VB.NET or web forms(!)
- .NET Native
- An ahead-of-time compiler that compiles apps directly to native code and contains a minimal CLR runtime. Windows Store apps start up to 60% faster and use 15-20% less memory when compiled with .NET Native.
- .NET Core 5, as highlighted above but also key is that .NET Core is also supported by Microsoft on Linux and Mac OSX as well as Windows. This is a ‘biggie’.
Wow. Plenty of changes to get our heads around. That’s not everything either.
A related concept that might be new is that of Universal Windows apps which will run on .NET Native (ARM, x86, x64). The concept, or ‘app model’ has actually been around for a little while. It allows code sharing between Windows Phone & Windows apps (8.1+) and are deployed to the Windows Store. Further, Xamarin has plans to support the app model for Android and iOS development.
You might be asking ‘how does the .NET framework client profile fit into all this’, if you are as behind the times as me. The .NET Client Profile is a subset of the .NET Framework, which was provided with .NET Framework 4 and earlier versions and was optimized for client applications. A bit like .NET Core 5 then, but largely not;). Starting with the .NET Framework 4.5, the Client Profile has been discontinued and only the full redistributable package is available.
Microsoft is also making a big deal of a number of the constituent parts of .NET 2015 being open sourced/ community driven. This may well be a big deal but it isn’t something that holds my interest particularly currently as I’m too busy trying to understand what all these parts, how they might fit together and what it means for the industry and me, as a developer!
Pass 3
Let’s have a third pass through .NET 2015 adding a little more flesh. I like Beth Massi’s breakdown of the topic at
http://blogs.msdn.com/b/bethmassi/archive/2015/02/25/understanding-net-2015.aspx and I have blatantly stolen key sections of of her text and interjected my own thoughts below:
Frameworks and Runtimes
The .NET Framework consists of 2 main components: the Common Language Runtime, the execution engine, and the Framework Class Library, which provides a code library developers can build upon.
- .NET Framework 4.6 is the next full version of the framework as we know it today and will be delivered with Windows Update and with Windows 10.
- .NET Core 5 is a general purpose, modular framework that can be used across a wide variety of app models and platforms, is available as open source, can be deployed modularly & locally (side-by-side), and will be supported by Microsoft on Windows, Linux and Mac OSX, though is only available for Windows at the time of writing. It is a refactored set of base class libraries (corefx) and runtime (coreclr) which includes a new JIT compiler (“RyuJIT”), the .NET Garbage Collector, native interop and many other .NET runtime components.
Compilers
- The .NET Compiler Platform ("Roslyn") provides open-source C# and Visual Basic compilers. Roslyn produces platform independent Intermediate Language (IL) and is used when building against .NET 2015, including Framework and Core. There are also key language innovations in both VB and C#.
- “RyuJIT” is the new default just-in-time (JIT) compiler for .NET on x64. The JIT compiler takes IL and compiles it for the particular machine architecture the first time it is executed at run-time. Used for desktop and server-based scenarios, RyuJIT is an overhaul of the previous 64-bit JIT compiler that significantly reduces startup times.
- .NET Native compiles C# to native machine code that performs like C++, so developers continue to benefit from the productivity and familiarity of the .NET Framework with the performance of native code. This takes the place of the JIT run-time compilation we are used to.
App Models
App models extend the common libraries of .NET Framework 4.6 and .NET Core 5. Windows Forms, WPF, ASP.NET Web Forms, MVC 5, etc., app models that you are familiar with today are part of the .NET Framework 4.6, come with many new features, as well as benefit from the new innovations in the languages, Roslyn compiler, and RyuJIT. It is important to note that not all these app models and related languages are supported by .NET Core 5, far from it. However, some app models are new and designed to run on the optimized .NET Core 5 only.
ASP.NET 5
I’m primarily a web developer so am particularly interested in ASP.NET. ASP.NET 5 is a lean .NET app model for building modern web apps. It was built from the ground up to provide an optimized development framework for apps that are either deployed to the cloud or run on-premises. Based on user feedback some features have been dropped to ensure ASP.NET 5 is as lean as possible, e.g. web forms and VB support. It includes the MVC 6 framework, which now combines the features of MVC and Web API into a single web programming framework, as well as SignalR 3 - enabling you to add real time functionality. It consists of modular components with minimal overhead, so you retain flexibility while constructing your solutions. Almost all features are now implemented as NuGet modules, allowing you to optimize your app to have just what you need. It also now has built in support for dependency injection, whereas previously you had to rely on 3rd parties.
ASP.NET 5 can run on top of .NET Framework 4.6 or .NET Core 5. Today, ASP.NET 5 uses the Mono runtime to run on Linux and Mac. Once .NET Core supports Linux and Mac, then ASP.NET 5 will move to using .NET Core for those platforms.
Right, my head is spinning. Back to the day job until .NET 2015 is released at least.
References
http://blogs.msdn.com/b/bethmassi/archive/2015/02/25/understanding-net-2015.aspx
http://www.hanselman.com/blog/IntroducingASPNETVNext.aspx
http://www.dotnetrocks.com/default.aspx?showNum=1121
http://stephenwalther.com/archive/2015/02/24/top-10-changes-in-asp-net-5-and-mvc-6
http://en.wikipedia.org/wiki/.NET_Framework
https://weblogs.asp.net/scottgu/introducing-asp-net-5
We're off to see the Horizons/ Gorwelion event at Chapter in Cardiff tonight (Sunday 29/03/15). I thought I'd have a listen to the singers/ bands and might as well make a note of a few links while I do.
See http://www.bbc.co.uk/programmes/articles/1WhvnGjVSWVwMTtLw0GXkJ8/what-is-horizons-gorwelion & http://www.bbc.co.uk/events/emg5v2.
Theatre
Gabrielle Murphy https://soundcloud.com/gabriellemurphy @gabymurphy 19.30-20.00
Climbing Trees https://soundcloud.com/climbingtrees @ClimbingTrees 20.15-20.50
The People The Poet https://soundcloud.com/thepeoplethepoet @People_Poet 21.00-21.35
Houdini Dax https://soundcloud.com/houdini-dax @HoudiniDax 21.50-22.30
Social Space
Chris Jones http://www.bbc.co.uk/programmes/p02fhw3m @chrisgwerin 18.25-19.00
Seazoo https://soundcloud.com/seazoo @seazooband 19.20-19.55
Kizzy Crawford https://soundcloud.com/kizzymerielcrawford @kizzkez 20.10-20.35
Gabrielle Murphy https://soundcloud.com/gabriellemurphy @gabymurphy 20.55-21.10
Baby Queens https://soundcloud.com/baby-queens @baby_queens 21.25-22.00
Looking at our SQL Server 2008R2 box, which was exposed to the internet on the default sql server port of 1433, I noticed in the event log we were getting sporadic brute force attacks by bots on various SQL Server user accounts. A quick google indicates that this configuration is just not on. You are just asking for such trouble. I didn't set this box up by the way. I don't think ;) There are articles out there with several recommendations but the key one is move to a different port. The MSDN article on this topic isn't perfectly clear and it does depend on your network setup - configured IP addresses and the like. So here is my quick guide on the matter.
In SQL Server config manager go to to TCP/IP in network config for the server instance and change the TCP port settings to another number - the top end is about 49000 and a few are reserved. Google/ Bing is your friend. The slightly confusing bit, for me, was which to reconfigure port forwarding entries to reconfigure - networking isn't my day job. IP6 looked like the correct option. That didn't work when changed, service restarted and connecting from management studio from another machine - the default port was still working. As I had SQL 2012 on the box as well installed on a different port I compared settings and all its ports were set to the same bar 1 so I did similarly for 2008R", in fact configuring them all to the new port.
I then check management studio again, connecting to the default port on the local network to the machine name and it failed. I tried on the configured port - servername,portno - and that timed out as well BUT I figured this was firewall security. I added an inbound entry for that port in the firewall for TCP and whiel I was there I disabled the existing rule for 1433. Tried again and bingo, I was in. All good.
Next step was to check the sub-domain forwarding on the LAN router set up to direct connections from the internet to the box where the sql server instance resides. Not particularly recalling the config detail at the I hoped this would 'just work', but it didn't ;( SQL Server 'actively refused' the connection. Checking the router config I was reminded that it was port forwarding that was configured for the external static IP so of course this was set to 1433 and had to be modified as well. Then, ... it worked. Joy. The one final test I need to get to is to make sure that connections *actually* external to my LAN can access the SQLServer through the new port. But there is no urgent requirement to do so and I have these notes to return to now if needs must.
I then also cleared all those application event log entries for the brute force attacks and will keep a closer eye on the logs from now on.
This is recorded here in case I need it again but, you never know, it may be of use to someone else!
However, I may not need it again as
a) I'm moving which might mean discarding the current static IP (though I may need to keep that for other work reasons actually), and
b) I should really be using Azure by now anyway!
I keep coming across Welsh books that I don't (yet) have the time to read. So here is where I shall remind myself I should at least give them a go. I'll also add notes here when I do get round to reading them and I'll also add the few books I've read already. As such this a work in progress I'll hopefully return to regularly.
Just as background in case you've not come across my other posts. I'm a long-time Welsh learner mainly doing the 'slow and steady' approach with once a week classes and supporting outside activities but have attempted to 'step things up' a little over the last couple of years with a twice a week course and an intensive course at the end of last year. As a result I'm at level Uwch2 and supposedly ready for the pseudo A-level (Welsh as a 2nd Language) which, to my shame, 5 or 6 of my fellow students are preparing for currently (24/03/2015). Maybe next year.
Dirgel ddyn by Morgan, Mihangel
This is one of the choice of 'A-leve'l books and my tutor is particularly keen on this author. I borrowed this book from the library a few weeks ago, struggled through the first page due to the complexity of the vocabulary and put it to one side as I had another to try. I had been told it was a difficult but good book but as I've been put off wading through books like this in the past as it is just not enjoyable I may return to the library and try again at a later date.
On a related note there is an opinion that you shouldn't get too bogged down reading books in your second language expecting to understand every word and that if you appreciate the gist/ main threads this is sufficient. I can appreciate the argument and even agree, to a degree, but this may come down to the type and character of the reader. Personally I find it frustrating if there are too many words in a page that I can't work out from the context. It also spoils the reading experience as the length of time it takes and the complexity of the process of 'reading' compromises the ability to appreciate and hence enjoy the story.
Blodwen Jones Trilogy by Bethan Gwanas
Bywyd Blodwen Jones (1999)
Blodwen Jones a'r Aderyn Prin (2001)
Tri Chynnig i Blodwen Jones (2003)
These books were great for me at my stage of learning - Canolradd if memory serves. They are part of the Nofelau Nawr series for adult Welsh learners. Compared to the book in the same series I tried to read over one summer (Deltanet - see below) they were a joy to read. The level was more appropriate to me and they were amusing. The dialect was not the South Walian I was used to but, hey, you need to get used to the regional variations at some point.
Deltanet, Andras Millward
Didn't like this book. To be fair it might have been too high a level for me when I started. When I returned to it a year later after reading the Blodwen Jones series I did enjoy it more.
Modrybedd Afradlon, Mihangel Morgan
Struggled a bit again to get into it but finished the second half at a good pace which I think is key to enjoying a book. I agree with the review at http://ssiw.pbworks.com/w/page/36027266/Fiction%20and%20Poetry.
Smoc Gron Back by Eirug Wyn (1994, 192 pages)
There was an excerpt from this book as part of a homework in course Uwch 2 and it was a) good and b) intriguing, so I ordered the book from the library immediately. I now have 3 books out for the library so I'll have to decide which one to go for and return the other 2 for the enjoyment of others. I think it'll be this one I go for.
Noson Yr Heliwr by Lyn Ebenezer (1994, 160 pages)
Another of the A level reading books. Heading towards the 'horror' genre direction judging by the blurb and the first couple of pages. Based on a film apparently. One of those waiting for me to return to.
I went to a revision class last Saturday before the start of my new Welsh course. One of the topics we went over was 'years' and it quickly became apparent that I didn't know much about the topic. Hence this blog post by way of additional revision! The below is based on 'Welsh Grammar' by Christine Jones as well as the examples from my last session at Cardiff University's Welsh for Adults Centre.
‘Blwyddyn’, ‘Blynedd’ and ‘Blwydd’ are all used to refer to years in Welsh.
Blwyddyn is a feminine singular noun, the plural of which is blynyddoedd.
Blwyddyn is used on its own with the cardinal one and with all ordinals:
Buodd hi’n gweithio yn yr adran am flwyddyn.
She worked in the department for a year.
Mae hi yn y flwyddyn gyntaf.
She is in the first year.
Dw i wedi byw yn yr ardal am flynyddoedd.
I’ve lived in the area for years.
With the exception of one blynedd is used with cardinal numbers (traditional):
un flwyddyn
dwy flynedd
tair blynedd
pedair blynedd
pum mlynedd
chwe blynedd
saith mlynedd
wyth mlynedd
naw mlynedd
deg (deng) mlynedd
un mlynedd ar ddeg
deuddeg (deuddeng) mlynedd
tair blynedd ar ddeg
pedair blynedd ar ddeg
pymtheg (pymtheng) mlynedd
un mlynedd ar bymtheg
dwy flynedd ar bymtheg
deunaw mlynedd
pedair blynedd ar bymtheg
ugain mlynedd
With the more modern number system blynedd will still mutate after 10 according to the number it follows or you can use the plural which simplifies matters:
un deg dwy flynedd or un deg dwy o flynyddoedd
un deg pump mlynedd or un deg pump o flynyddoedd
un deg chwe blynedd or un deg chwe o flynyddoedd
‘Blwydd’ is used when referring to age and age is always feminine regardless of the subject of the sentence. Also blwydd can be omitted but oed will remain.
Mae e’n ddwy (flwydd) oed.
On its own blwydd means a year old.
Mae’r babi’n flwydd oed.
Further Examples
- Cwrddais i â fe dair blynedd yn ôl.
- Mae merch dwy flwydd oed gyda hi.
- Mae eu mab nhw’n flwydd oed yfory.
- Roedden ni’n arfer mynd yno bob blwyddyn.
- Y llynedd oedd y bedwaredd flwyddyn i mi fynd yna.
- Rydyn ni’n briod ers pymtheg mlynedd.
- Hon ydy’r ail flwyddyn iddo gystadlu.
- Maen nhw’n byw yna ers deugain mlynedd.
- Flwyddyn yn ôl ro’ch chi yn yr ysbyty.
- Roedd y llynedd yn flwyddyn brysur iawn.
- Blwyddyn newydd dda!
- Dw i’n gobeithio ymddeol ymhen pum mlynedd.
Think you see a mistake above? It's distinctly possible so let me know!