75
The important things I learned this week were many. We learned adding OAuth2 login to our Spring Boot Framework website to enable user authentication for the website through the Google login. We also reviewed an overview of Spring framework, adding front to back mods to enable the OAuth2 login with Google.
The chapters we read in the book were great on encouraging effective collaboration, but I was not particularly a fan of the way chapter 2 started out by knocking independent effort. Google wouldn't be Google without Linus's operating system, Python wouldn't be Python without Guido Van Rossum, and one of the people reading the book is the creator of AccountBlaster, my favorite program of all time and also my own program, which I created entirely on my own. If it had been a corporate endeavor it would probably have been corrupted away from its true purpose. Being built in pure JavaScript and JQuery it is entirely a front end application running entirely at the client, with all data being saved at the client, completely eliminating any server interaction with sensitive data and hence completely alleviating any security risk potential from the server's standpoint. Whether a client computer gets broken into is a different issue, but the way it is designed, no server breach could ever render client data. That's by design, and using simplicity, with long-term publishability a leading factor in the design.
Maybe what that section is saying is true for most people because most people aren't Linus Torvalds or Guido Van Rossum. But Guido Van Rossum is Guido Van Rossum, and Linus Torvalds is Linus Torvalds, so the adage on heroism is perhaps true for only non-heroes, or perhaps non-celebrities rather. Maybe under the right circumstances everyone on the planet could become a hero in their own right, and maybe everyone is already, in their own right. Celebrity status paired with heroism isn't the same, and the book does not make this distinction, but maybe it should. Leonardo Devinci and the Kardashians are strong evidence world culture does not always naturally convert or pair heroism with celebrity status. Leonardo DaVinci, pretty much indisputably one of the greatest inventors and one of the greatest thinkers of all time, perhaps one of the greatest diagrammers as well, was not recognized during his own lifetime - because of the inherent imperfection of the world he lived in, not completely unlike our world today. We're not set up to embrace heroes as celebrities the second they become a hero, and if that is what the section on heroes meant, then that is true. The Kardashians are obviously the perfect example of the opposite, zero hero, all celebrity, and evidence there is less correlation than you might hope.
If the corporation increases efficiency through increased or decreased structure there really is no need to be inherently impressed, for it has all the upward room in the world for restructuring and correcting internal problems until goals are met, and considering corporate legal and financial advantages, the opposite perspective is equally relevant. One programmer literally can exponentially accomplish what a group can't, and that's part of the reason for this book, trying to get the group to function as a cool-thinking, efficient-minded individual. But if we all worked for corporations and nobody as individuals, there would be no more Linus Torvaldss and Guido Van Rossums, and if is a different paradigm that the corporate mind does not understand, perhaps this is why this chapter takes a shot at it. But we need them, as much or more than we need the corporate mind. We wouldn't have Google maybe if it weren't for the corporate mind, but Google wouldn't have an operating system to run on at all, if it weren't for the individual mind, behaving in spirit of independence from the status quo. Now if the corporation becomes a hero by creating something for the world and giving it to the world that is worthy. But what we are seeing is corporations acting against world benefit. Since that is not what this paper is about I will only highlight this reality rather than explain further, which I could easily. Well, here's a quick example. Google maps. Google. Maps. There was a day you could see the streets on the maps. I guess the corporate mind doesn't think we need to see the streets on the maps now:
[screenshot from earlier today trying to manually find a road on Google maps - are those streets easy to see? No. Why does the corporate mind take away features? Because there is something wrong with the corporate mind. Another thing they took away is capability for more than ten simultaneous destinations, when originally the capability was 26 or 26+, maybe even unlimited, but at least 26.]
I think one great independent programmer could easily probably do what 100-500 programmers could do in a not-so-efficient corporate work setting, chugging away at some corporate project. Perhaps - there may be a line that an efficiently functioning group can beat a single great programmer, as in Google, and all the obvious and countless examples, and that's why corporations with seas of programmers exist. But then they get the investors that tell them for some reason they need to fade the streets out off the map and the whole thing backfires. If they do get the features right, (visible streets!) they can keep expanding. If 500 aren't doing it, lets get 5,000, or 50,000, and at some point there will be progress, backed by corporate financing. The independent programmer is already a dying breed, and this section takes a pot-shot from the side at them, blended in with the rest of the book because it thinks it can. That would be like a gorilla crushing a butterfly because it can. These authors are not celebrity heroes, perhaps they are disappointed about that, but they should recognize here the serious productivity level of one single inspired programmer flying through what (s)he sees as a better way for the world. If nothing else, you can even take myself as an example. I'm a real person in the world, a real programmer. I started programming when I was 12 because my mom showed me how to balance my checkbook and I thought the process should be more automated, exactly like AccountBlaster is, now. That was 1988, I did not know even what a corporation was, but I had HyperCard, (created by an individual, working for Apple, for the world, his name is Bill Atkinson, and HyperCard was software building software with its own scripting language and you could write an application in literally a moment - complete with painting tools - but it was crushed by S. Jobs in the name of corporate greed - he didn't want the general public to become programmers, Atkinson did - I did.) But losing HyperCard didn't stop me, I learned Java and created AccountBlaster with Java. I was a kid, learning programming, so that and subsequent versions didn't work right. I thought of it when I was 12 and wound up finishing it when I was an adult, ready to make it be done in 2016, taking one year to finish early 2017 using JavaScript for simple long-term oriented publishability. I offer it to the world and there is not only nothing wrong with that, but it wasn't done by a corporation, I didn't have a boss telling me to do it, in fact I had the exact opposite, only discouragement start to finish, even now, as a complete irreplaceable software suite it is essentially shunned by any real person except myself who uses it religiously because it's such useful software. The book basically recommends against trying to take on anything like that. The world is a little, maybe even a lot, crazy, and pot shots like the book takes at the beginning of chapter 2 in 'The Genuius Myth' section by pretending (Myth?) that there can't be independent genius are not only unfounded but definitely unwarranted and one more example of corporations taking a pot shot at individuality, originality, and reality. "Actually, what Linus did was write just the beginnings of a proof of-concept Unix-like kernel and show it to an email list." Show the world a better way and watch the better way get ignored, even resisted or destroyed by stubbornness and ignorance. Adhering to corporate values of perfectionism are invaluable for probably most people, and even the people who won't wind up in a corporate environment, the book is also perhaps mostly gold, because it puts forth well thought out real principles that are mostly broadly applicable. But - you know that Linus Torvalds would literally throw this book in a river - while yelling at it, if you tried to give it to him, and he saw the way he was talked about in there.
It is well known that Larry Wall, the creator of Perl, says that the three greatest traits of a real programmer are laziness, impatience, and hubris. This is also not corporate group mentality, especially not hubris. There are a few things going on though, with the way the book talks about collaboration and modern culture and emerging technology as a whole into our society being a new thing. There is turbulence in paradigm. Corporate productivity is great especially for massive progress. If they remember to keep the streets on the map and the features in the program. But small time productivity has to remain a consideration, especially considering the advantages corporate structure has and the seriously nearly on-par capabilities of an individual versus an entire corporation. I actually am another example of this! And in an entirely different way as I was with AccountBlaster. I have been doing real estate appraisals since around the year 2000, that is my 'real job' in real life, what I have been doing for income. Not my passion or talent, which is truly programming, anyways, I do appraisals for money, I entered the business in 1993 so I've been involved in it over 25 years, and it is basically a pretty big industry. Real estate appraisers all over California have to get licensed and certified by the state Bureau of Real Estate Appraisers, and then we can work and do appraisals. There are a few softwares available and they are - not directed toward helping. They are a shot at good software and fall distinctly short. I have to add to them myself to make them good, which I have done.
I connect whatever I can connect with my computer programs, and I make a huge difference in my own office. Data filling is an enormous task in the process, in most offices done by a person. I automated that with CompBlaster. In other offices some of the data is filled - partly - with commercial subscription software - presumably created by a corporation with a tower somewhere - that, well, just partly fills some of the data in. It's called DataMaster. Appraisers pay a subscription fee to use it, to fill some of their form out. DataMaster doesn't do a whole lot, but I created something that does what it does and more, mine also enters my order info and even helps me pick comps in a different way than CompBlaster does, and I called that software AppraisalBlaster - it's entirely extensible and expandable and built with sharing in mind, being web based and built with simplistic publication methodology, likely to persist into the future. It's better than DataMaster, that's why I made it - and obviously has a cooler name as well. DataMaster's a corporation, a gigantic corporation. Well, I don't know how big, but big enough to have sales people calling every appraiser in California including myself. I'm just one guy, and I personally beat it on it's only two main fronts - it's functionality and it's name. It's obviously got me beat in financing, corporate backing and everything else keeping me a student and it a world corporation with not-as-good-of-software-as-an-individual-student-created-on-their-own-independently.
Actually I'm even a third example of a person beating an entire corporation. I'm also the creator of Super Bomb Reversi, one of it's kind Reversi and hexagonal Reversi tournament - touted by World Othello Championship players as the best of it's kind, and, well, the gorilla crushed it when it kept changing the Facebook interface incessantly (although after this week now I can add OAuth login to it to maybe sidestep all that if I want to!) to knock the login off line and where now I have to, I think, sign up to be reviewed and do paperwork and all kinds of corporate nonsense - just because I created a game for everyone to use that happened to be the best of its kind. That is exactly why AccountBlaster is built on pure JavaScript - so I can make sure it remains published - it can even run in a web browser without a server running, just run the page. If that were created in a corporate environment, they probably wouldn't have let me do it that way. It would be manditorily built with the latest framework, the feature set lost to mis-focused stock holders or however corporations work - look at GoDaddy - Bob Parsons letting go did destroy it. He knew it would, and it did. I think a big part of the turbulence is created by the enormity of the financing ready to force projects into existence. What's done leaves idle programmers, the managers think should be put to work - so incessant changes are mandated. I'm still talking about GoDaddy as a primary example but it's not the only one. Look at what happened to the interface after Bob Parsons gave it to stockholders. It now changes practically every time you log in. They have to keep the programmers working so they tell them to keep changing it - and because of that it's also broken half the time! Just one guy working alone wouldn't ever do that. It's framework mess, and a bunch of people there, but not taking responsibility for the entire whole - is what it is. Frameworks are great until they aren't, and nobody knows how to figure out what's broken. The point of all this is that Google's right, for what they're doing, and small companies are right too, and individual programmers are right, too, and students are right, and we all rely on each other. If every single programmer worked in a group we - ok I - wouldn't have AccountBlaster. I wouldn't have beat DataMaster with AppraisalBlaster. I wouldn't have built the best facebook Reversi Tournament possible (specifically endorsed by World Othello Championship players) in fact that's why I don't - now - they assume I have a team on all the sign-up and side garbage I have to do to constantly to keep it running.
Actually that makes me one person that beat the productivity of multiple corporations, giving evidence to what I said about just one programmer being able to do what thousands can - maybe - do - if organized right. So my hero mentality as a kid literally made me my own hero, and I have software to show for it, to help the world with their accounting. Whether it's taken along side the corporate software available that's corporately promoted with corporate financing is really not my problem, what I wanted was the software, for myself and for everyone, that's what I made, and that's what I got, thanks to me backing my own instinct and doing what I wanted to get done.
What if corporate structure crumbles, leaving what was once Google to nothing, we would all run to Linus Torvalds, Guido Van Rossum, Larry Wall, James Gosling, Bill Atkinson, myself and other helpful and broadly knowledgeable programmers who were inspired to help, to save us. Not Bill Gates, he's not popular right now, buying up all the farmland, he's looking more like an arch-villain rather than a hero right about now. That his last name is Gates, and logic gates are how computers work - is a little wierd. This is all really not to say I don't agree with the corporate paradigm of structured test first methodology, build with a framework - keep your coworkers happy and smart - and - with all that detail and complexity in the system - they absolutey have to incriment slowly and be able to revert to any prior state if needed. Occam (William of Ockham) would probably not be super on the same page with this book.
Very small groups of programmers - like - groups of one - where the productivity skyrockets and becomes akin to an entire corporation - are probably successful for similar underlying principles as the reasons Agile principles work - or why non- agile principles don't work. A group of programmers merging mind power trying to work together is perhaps abit akin to trying to merge a big program - much harder than if the brain were not separated into several parts - much easier if one person were just doing it all, understanding it all as a whole. They say Zuckerberg built facebook and I really don't doubt it, it really doesn't seem that hard. He got a corporation to back him after that - and now that's how it's maintained. Tom built MySpace they say, Dries Buytaert built the first versions of Drupal, now maintained by a group of programmers just for the worlds benefit and presumably for their own recognition as programmers.
The hero mentality is also probably at least partly rooted in the realization that we are really some of the first of our kind. There weren't programmers a hundred years ago, and what we build now could easily be the foundation for what will be built later. We see that better than anyone. Corporate mentality erases this, or at least tries to, and maybe that's good for what it needs to accomplish, but why be impressed by the gorilla crushing the butterfly? I want to see the butterfly escape the clutches of the gorilla and land on it's head peacefully. These hero programmers are just artists doing what they love and see as a better way for the world, and maybe if everyone did try to be more like them, maybe we'd have a better world.
And if you take a step back and try and say, okay maybe the corporate structure is the way to go, after all, Google brought us .... the search... Wait a minute, we already had a search. They also brought us a map that could do 26/26+ (unlimited?) addresses until for whatever reason they decided their server or their programmers or their interface or their framework could only accommodate 10, now we can just do 10 addresses per map, and - oh - who needs to see the streets? So they brought us something we already had and something else that we already had and then took features away from it. With thousands of programmers and meticulous hiring, and the highest of industry standards they did all that. One programmer alone would be smart enough to know they shouldn't fade the streets and take 16 addresses off the map's capability - at least over 50% drop in functionality - but corporate mentality - no - whew! - right over it's head. Corporate: '...let's just take features away, nobody will notice, the stockholders say the interface needs simplifying to go with the modern metro trend...' (which is a corporate pushed trend that removed once present depth from many of our interfaces.) So as a society we get corporate mandated to be minimized feature sets instead of rich interfaces and vast feature sets built by inspired artisans. Hopefully that will happen in the future. We definitely would like to see streets on the map in the future.
A few years back, when it started to become a thing - 'working for Google' I wondered, 'why?' they're done, their deal already works, what do they really need help with? I think what it comes down to is financing that common citizens don't understand or even see, and enormous quantities of programmers working in unison feel like a tuned race-car to the financiers, and maybe it is, but they skipped over AccountBlaster, I beat them to it. Excel/spreadsheets are irreplaceable too, but AccountBlaster does what even spreadsheets can't do, picking up where they leave off - being able to accommodate - being built upon - hierarchical data. The world is hierarchical, and software and data should be too. Great software is naturally multi-purpose, which is why I was excited to see that as-is I could do inventory with AccountBlaster in addition to accounting - because I built it on a data structure that matches reality - lots of reality can be modeled with it. For all the principles of efficiency this book offers, it does not and can not offer inspiration to create artistically and independently which is seen time and time again to exceed productivity of corporate structure, however well intentioned.
And you could say, well, AccountBlaster's not that great, because it wasn't made with a group, and the Bus factor is too low - but since I made it for other people to use, put the code in a place people could get to if I croak, built it simply from core concepts and simple methodologies, it's is nothing but a gift to the world, whereas if the bus factor were higher because it were corporate, it would actually inadvertently have a lower life expectancy - exactly because of why we don't have Windows 7 anymore - why we don't have streets visible to human eyes on Google Maps anymore - why we can only do ten destinations at a time now - and a multitude of other corporate software that's been forcibly retracted or redacted or whatever is happening. Dependencies forced by frameworks forced by corporate structure also lower life expectancy of software - if some obscure dependency of a dependency of a dependency breaks down, the whole system is potentially at risk, putting the system potentially at risk at all times, justifying the need for excessive amounts of programmers, in turn supporting the corporate machine. But they can't erase kid me, I already did do something Google didn't - create AccountBlaster. They can downplay Linus and other hero programmers - who enabled Google to be Google - but that doesn't give the downplayers hero status or celebrity status, it just makes them naysayers and enablers of the corporate steam roller gorilla.
Comments
Post a Comment