FourthProtocol
Joined 15 years ago
Joined 15 years ago
Used to update things whenever a new ASP version was released, but haven't bothered for years.
Process is simple - copy ASP template, rename, fill in the content, FTP to hosting Co and done.
Often overlooked is dealing with power and politics (https://www.wittenburg.co.uk/Work/Politics.aspx)
Keeping up to date on tech also important, especially at the tech lead/architecture level (https://www.wittenburg.co.uk/Work/Mentoring.aspx).
I'm staying with Windows both because I've been using Microsoft's tech since MS-Dos 2 back in 1985, and work is a Microsoft estate, again making Linux a no-go for me.
That said, I have Windows 11 on my Surface, and usability stinks to high heaven, squared. And so I will stick with Windows 10. I'm keeping an eye on 11 via the Surface, but not hoping for usability to get easier in the near future...
And so wow, those diagrams in the links - how does one even manage all those boxes?!?
Architecture is easier than coding, if you stay away from more/bigger/but_my_app_is_a_special_little_snowflake mantras. Consider the age-old, tried, tested, proven architecture models of yore (other than their most excellent diagram notations, stay away from UML).
Architecture (design) is layered, not spaghetti thrown at a wall, hoping something sticks. Most (99.9%) software domains can be divided into three horizontal layers -
1. UI
2. Application/business layer
3. Data layer
(note that both internal and external service layers sit at the same level as data layers, allowing them to be called from the application layer)
Finally, there are vertical layers (shared across the initial three layers) These typically include -
4. Communication
5. Exception management
6. Security
7. Logs
Start with that as an overview/index of the entire solution, and when the beast needs to grow, just grow it. But grow it wisely. Use the standard 3-tiered architecture model. Re-use those cross-cutting concens in new applications.
Federate identities. Standardise access/permissions management.
Finally, don't feel compelled to use all the things - if the solution is services-based, don't code a UI for it. Simply connect your client to the relevant, existing service. Yes, services can be tiered, assuming your management processes are mature.
As to the management issue. Governance is what keeps your estate from turning into a hairball. Make extensive and judicious use of
1. Risk management
2. Change management
3. Stakeholder management
4. Design reviews
5. Project review (where team members grade managers)
Establish a technical design authority. The TDA concerns itself with broadly technical matters that facilitate a system-wide perspective. This might include -
1. Systems and solutions
2. Data
3. Communications
4. Quality objectives, including security
5. Development and development operations (devops)
6. Infrastructure (including but not limited to directories; networks; servers, both on-site and remote/in clouds; workstations and mobile devices).
7. Testing (Tools, techniques, platforms, languages and frameworks)
8. Locations
>So there is no need for teachers and textbook authors, because they don't advance state of the art?
This. I have a web site that in places you might call a blog. It's got a section for work stuff, some photos, hobbies, and random pages like explaining how to drive off-road. Those off-road pages (specifically this single page - https://www.wittenburg.co.uk/offroading/Concepts/Gearing.htm...) gets more hits than all the other pages combined. I wrote it in 1998.
Sure, when they were building web sites they delivered stellar stuff. Agile, break things and all that. But when you had real complexity they just... couldn't...
The Government Gateway is a prime example - single citizen login for ALL government services. It ran well, super robust and mature enough to have ironed out virtually all issues.
Then GDS decided that because the Government Gateway was based on a Microsoft stack, it needed to be re-done. The tech lead didn't understand the concept of Identity Federation, let alone SAML tokens, and that you just! can't! do secure code using agile (2-week sprint no good for meaningful security testing...).
I spent two long years at GDS banging my head against a wall. And then I left. And unsurprisingly the Microsoft-based Government gateway was never replaced, still going strong.
Lost interest in the geeky side of mechanics and electronics - they're neccessary to buy, or make a body. Jeeps, Land Rovers and Toyotas seem to be favourites.
The thing I love about it is two-fold - first is building unique bodies never done before, using styrene. Second are the events, where you meet other RC geeks, see everyone else's builds, take part in comptetions (individual and team events). In France there's an annual event that runs a pretty sweet Camel Trophy event. SuperScale in Germany is amazing for having the longest 1:10 scale bridge seen in the hoppy. USTE (Ultimate Scale Truck Expo) in Florida USA holds the largest scale RC event I've attended/know of.
Axial Fest in the US is also a big deal in the calendar, but I've never been. They have a "float you rig" challenge which got me building rafts for my trucks. Herds of fun.
Some of my trucks and build progression at https://www.wittenburg.co.uk/Play/RcTrucks.aspx
I also get a kick out of building houses/bridges/and so on for events - some of those are here - https://www.wittenburg.co.uk/Play/RcBuildings.aspx
My most ambitious build took 5 years to (almost) complete - https://www.wittenburg.co.uk/Play/FordF5Coe.aspx
I wrote my first complete computer program in 1986. Since then I've programmed (or scripted) in Assembler, BASIC, C, C#, C++, COBOL, F#, HTML, Java, JavaScript, LOGO, Pascal, SQL, VBA and XAML. I don't mind C#. Or Java. The majority of the code I've written in my career was written in C#. And yet my preference remains VB.NET because -
VB.NET supports both static and dynamic typing.
VB.NET is a functional language, supporting local type inference, anonymous functions, monads, and language integrated comonads (even Lisp can be more complex and verbose than VB.NET with LINQ).
VB.NET does project-wide namespace imports. C# doesn't.
VB.NET is no more or less verbose than C#. Haskell and F# however, are indeed a lot less verbose.
There are also readability issues in Java and C# that VB.NET doesn't have (braces, == and =, ! instead of Not, seperate keywords for inheritance and interface implementation, and so on). I learnt Pascal before learning C (and prefer Pascal to C). The fact that Pascal and VB.NET share syntactical smilarities (type declarations follow variable and function names, the Not keyword) is probably not an insignificant factor.
Lastly, Microsoft announced that evolution of the VB.NET language has concluded, (although it will support .Net 5). This is welcome because it makes things predictable -- modernising legacy codebases takes ages.
https://www.wittenburg.co.uk/Work/Interact/History.aspx
Still under development...
Exanples -
https://www.wittenburg.co.uk/Work/Protection_System.aspx (insurance), and
https://www.wittenburg.co.uk/Work/payment_System_1.aspx (payments)