The Prestige of Merit and Collaboration

The other day I was marveling at the amount of completion badges and learning opportunities in the tech world as I looked over one of the social media professional networks. A lot of the education has become more focused and usable. Also more accessible. Proprietary products seem to be shed and fall by the wayside since no one can learn to use them unless they are using them at a high license cost.

Usefulness is a big question. Many of us have limited time and we need as much useful information condensed into as little time as possible. I have this same conundrum with my workouts; I love to cycle but comparatively a run will usually condense more heart activity in a shorter amount of time thus more bang for the buck. Also, most companies in my experience do not pay for education so maintaining your skillset becomes another extra-curricular time drain. Picking out what to learn is an art in of itself. What I try to do is focus on my own interests that will down the road make me more knowledgeable and useful and build on what I already know. For instance, Linux. As a developer I can find may way around Linux quite well but I have many knowledge gaps so learning a bit about kernel architecture or security might help out with programming business applications. But also, I cannot (for myself) expect expert-level knowledge from a class or certification without real world hands on hands-on.

Merit matters. Merit in the sense of the real-world application of learning. Using the training in conjunction with design and implementation on a real world solution is optimum. Many times I’ve seen the first page Google iteration go to production. Personally I have only done this type of thing for proof of concept, but as we all know POCs often become Production.

When I see the badges I often wonder if there is any merit behind them. For instance if I see an Office 365 administrator learning badge on someone who is a manager, I may know that they have this knowledge, but can they use it? And did were employees offered the same opportunity of education or was this something of a training them via the privilege of a position that has no hands on or insight into detailed use case implementation. What is the real merit, the badge? And if you remember, in Agile a certification was anathema. Now everywhere are Agile certifications yet, I hadn’t really seen much change in it at all in well over a decade. It’s always dragging behind the implementation tools, always more dashboards.

As for collaboration; with the badges comes a gamification and competition. I don’t know about you, but I don’t like to go to work day in and day out feeling like I am in some sort of competition with my coworkers or being rated on how well I use Teams or Slack. Meetings can descend into the skill of one-upsmanship. Tiresome. Whereas in a classroom with grades there would be competition just not so transparent and it’s all a net knowledge gain, now it’s all out in everyone’s face. Clicking through a badge-process might be more important than the knowledge in the social setting. But then where is the responsibility of having a badge that proves a person has won it, versus being useful in the skill. When code is rolled, bad code affects others’ lives in extremely negative ways: unnecessary overtime, nights and weekends as well as missed life opportunities. Sometimes this competition of collaboration exposes the withholding of information in order to be more competitive.

Being honest, I wonder if this brave new world of badges and visibility are creating a community of Campbell’s Law coworkers.

Constant productivity tracking and e-collaboration and proof of knowledge fixtures available seem to be uncharted territory for measuring real merit or having real collaboration. I think I am just going to ride this one out as I want to retain the joy of creation and for me this can sap that joy; but we’ll see. In the meantime my strategy is continued:

  • Outside interest in open source projects. Keep something for yourself and it will contribute.
  • Practices via certs or kata. It seems that the big companies are offering free or discounted certifications and training. They have to be seen as probably contributional, but more likely for the joy of learning and building to the future. It’s unlikely your company will pay for it so make sure you want to do it and it contributes.
  • Merit – via trying to do something real. Building something at home helps.
  • Collaboration: never give up helping out others. Yeah, probably you will get no credit for some things you do but actually collaborating on something will give you insights you cannot get on your own. Fight your mind lock.

Crickets

My name is Terrance and I like Spring MVC and snacks.

A developer communication ethic.

The content you are trying to access is only available to members. Sorry.

Linux in Windows as a Developer Environment — It’s Docker’s Fault

I needed to set up my newer windows box for development (most of my time is on OSX at my gig).

During a conference I went to a Docker presentation and was forced to bring in the windows machine for it’s awesome battery — and was the wrong thing to do.  Docker on windows sucks, and windows has no real good dependency management solution compared to Brew and Linux solutions.

I tested a Particle Argon board I got during a workshop and it worked great on the virtual Linux (the hardware — that’s Particle’s Web IDE in the pic).

Particle Argon Kit

Then, I installed a version of IntelliJ and VS Code (very popular, and kind of the best choice now).

My next steps are to get Docker up and going — maybe a Redis database or something with GraphQL.  It would be nice to be able to reset the system — everything in Windows gets so baked in and can become problematic.

The entire summary of this activity:

  1. Get a system up to develop in that I can configure without ruining my host system.
  2. Have the ability to have sandboxes — i.e. Docker.
  3. Have better package management than Windows can provide.
  4. Command line!!!!  that alone is worth it.
  5. The system still has to scream — I am running a very powerful notebook so am not too concerned.  Since there is a lot of virtualization swapping for performances this should be OK.
  6. Hardware — has to be usable (Particles and Arduinos etc.).

So far so good.

I will have more on things later and hopefully get this DLive/Channel stuff going as I restart my hands-on sessions.

Meetings and Studies and Bizzies

I haven’t been at this in a while although I have a backlog of things to write about that I have been accumulating from my readings and talks with other devs associates over the last few years.  Unfortunately some of it is timely technical material and the relevancy has probably fallen by the wayside.

One thing I have been wanting to start up again were my hands on tech groups and have been looking for some focus since there are so many things going on right now.  Since deciding not to use the Meetup site for EC Tech, I’ve been trying to come up with something that was a little more deep than just a glossover 101, because, that’s what the world needs is more glossover 101’s on tech.

So, right now in the boil are these topics:

  1. Security topics — oauths and verifications etc.  I have gotten some experience since the lat 20-zero’s in this sphere and have always wanted to finish out the investigations.
  2. Mobile application platform evals — are languages like Kotlin worth it vs Java etc., and quick launch but flexible-to-adapt platforms.  Are mobile apps even worth it even.
  3. General language/platform investigations with business ideas — I am looking at Y Combinator courses this summer and their materials — people can sign up.
  4. IoT.  There are a lot of robotics and such in my area; a deep look at machine programming might be worth it.  I see a lot of the raspberry pi work etc. but not interested as much as capitalizing on the real world.  Note I am very much in favor of dumb machines, well, what about IoT for them? And ownership over the code you purchased with that machine?
  5. Big data beyond the incessant people tracking psychosis a lot of the industry now practices.

The tech world is going back through a cycle of microservices (“write once, run everywhere” like 1990’s java) and ideas that were being used by developers but surfacing just recently — like cicd — seem to me to be as buzzwords or adapting tools we already do so, anything I do will encapsulate some sort of those aspects.  Mostly it is the materials that dictate it — tech — and not a grandiose vision of things yet to have been.

Of course I have some agile/lean/etc. topics to write about.  I usually keep these close to the vest as the outcome of those techniques end up on a developer’s lap, much like physicists never see atoms in an accelerator, just the aftermath.

Also, I am looking for a good platform to share with everyone, all this.  Since my group was localized, maybe it’s time not to do that?  Do not know.  Having kicked around podcast ideas since 2007, and doing online/youtube things it just didn’t catch my interest, and, there is a lot of good stuff out there now.

The trick will be — doing something relevant (to me and/or us),  and hopefully capitalizing.  See you soon.

Coaxial Surge Protector preventing High Speed Wi-Fi

So recently we called up our service provider to check in about cable/internet service.  They notified us that we could get a new modem because they had upgraded their speeds.

The modem arrived and had good installation instructions including going to a site to activate it.  All seemed OK, took 1/2 an hour.  Testing off the cell phones (I didn’t initially test on any machines) speeds seemed about the same as before.  And started to get the impression something was not right.

Next morning I wake up to log into work on my machine and the internet is way slow.  I decide to run a speed check:

Not so great at all.

Calling up the provider’s help desk, we start to walk through a debug — which involves switching ether net cables directly to a machine and running the test.  Still slow.  I get disconnected from them (of course) but continue on with an idea.

I had hooked my incoming cable to a surge protector — it worked fine with the previous modem.  But removing the coaxial surge protector from the chain was the solution — speeds were fixed.

I try on a few test sites:

Also — researching — this site discusses that surge protectors can be an issue.  I was surprised I had never came across the issue before as this answer was quite old:

JayInAlg
Re: What about cable surge protectors?

You can’t use them for TV or HSI, they will mess with the digital signals, it is a proven fact.

I also believe, that I do not want my coax so close to the AC wiring, that it will jump from one line to another because they are so close inside those devices.

The coax must be grounded at the entry to the buiding, and grounds the shield on the coax.  That is part of the National Electrical code.

Running ethernet through those AC surge proector strip’s is the same deal, it will slow down your network, again, that is a proven fact.  There has been posters on this forum complaining on slow speeds and once their coax and/or ethernet was removed from those strips, they have gotten their speeds back.

Scrum Creep

Nooooo I’m not talking about that QA member who hogs up the standup meetings.  I’m talking process.

The content you are trying to access is only available to members. Sorry.

Hard Work

”The secret of success is making your vocation your vacation.” – Mark Twain.

I was reading through some Code Newbie tweets and was quite impressed with the enthusiasm of potential developers who had little, if any, work experience.  Well I’ve got some news for them. Know that stress you are having at finding your first job, doing your first job, doing any job?

The content you are trying to access is only available to members. Sorry.

Meetings Greetings – ECTech Future

Last I was here I was chugging through some examples in my Eatup on a few different JVM related languages.  Went well.

So after that I dropped the ECTech Meetup subscription, it was not fruitful and the tech scene had gotten taken over in my area by non-Java lovers doing things that don’t pertain to my existence.  It’s fine an dandy to do what you wish, but inside the small exosphere of a smaller city is tough to not have “The Grand Unified String Theory of All Techies” at hand, so decided to swim a bit further out into the surf and see if there are any larger waves and less single-minded beaches.  I guess I miss the Twin Cities’ diversified atmosphere in many cases, such is the work of a devotee remotee.  That said, I am soon starting up a newer group, more social-media oriented and probably geared towards us ruralites — there is a lot to learn about remote work and staying highly tuned as experienced developers and quality lifestyle. Note: until recently I have been as urban as they come since the late 1980’s — south side of Chicago and urban St. Paul MN.  One of the biggest impediments is no access to any Indian food whatsoever . . .

The company I am currently hitched to has some cool things going on and its been fun and I have engrossed myself.  We are linked to an SAP project and they really take Spring configs to their ultimate bloody end.  I didn’t think I’d be writing XML configs like this still, but am, and they still have their graces.  But as is usual, code generators can be problematic for the non-NOOBS — things like generated DTO’s that don’t let you do Jackson-like notations to manipulate them more fine-grained.  Still though, a business gives an engineer a palate to be creative around their needs in ways you may have never thought; anyone who can sit for 10 hours staring into code should be excited at the times we live in now.

Most recently, having had been Enterprise for so long (meaning large teams on large software in large companies),  I’ve gotten to work with some embedded developers and small project developers without Enterprise experience.  It has rekindled my desire at times to be in full control of code, full ownership, on my own projects I have neglected.  I am excited for them, and for anyone thinking about device programming or small microservice style programming.  Just remember — because it’s *yours* does not mean ignore software basics on deployment, code quality, tooling, continuous integration, refactoring and patterns.  So in many ways this blog is my *small* outlet.  Not to be reductionist, but doing Agile coding you really don’t get to see the big picture, just a jeweler’s glass on one piece of the puzzle; and that can be dissatisfying at times.  (On the other hand — Enterprise means BIG toys and I love that a well, and I love people in general.)

Kotlin.  Java.  I keep seeing Kotlin buzz.  I used to see Go buzz.  I lived through Groovy buzz though still use it and Grails for small testing scenarios and prototyping.  Java is not going anywhere.  As annoying as their lambda implementation has been to me, and streams, someone will always have to use something like it to make service busses etc.  C++ has went nowhere, nor Java, and C# fitting in much of that same sphere.

http://nomad.so/2015/03/why-gos-design-is-a-disservice-to-intelligent-programmers/

https://developers.slashdot.org/story/17/07/01/1840213/is-rubys-decline-in-popularity-permanent

Please don’t consider me a Java fan boy — the reason I chose it (over my then-dual skillset of MFC/VB and java) was that all the ideas were coming from Java and open source.  Knock off the old outrageous per-cpu licensing WebSphere, ATG Dynamo and BEA used to charge (slain by Tomcat and JBoss) and the world of Agile, XP, testing etc. were all pushed light years ahead in the open source world; to me meant Java.

Process.  I still look at process, and the genesis of Agile as top-down from grassroots is complete.  Meh.  Maybe an observation here and there.

I find this interesting as well and will be pursing reproduction of the tests soon, being more interested in the lost art of slim, performing code:

Keep in mind for my approach — IDEAS trump TOOLS.  CRAFT trumps ORTHODOXY.

UI on the other hand.  JavaScript.  CSS – Less, SCSS etc.  I still see the same things going wrong as I have for the last 15 years.  Maybe it’s the nature of the beast — UI means UX means needing lots of churn and feedback.  But the turnover of the code generators; the “this is a better MVC/dependency library” — name it.  I am not involved in any consortium but the work is as tedious as ever and imho hasn’t gotten any better.  There is a lot of art involved in coding it, and without pattern training, or testing or code principles rigorously applied become time suck and error prone.

So getting back, will be posting some more solutions as I come across them like before and see where that leads.

Ciao for now!

EC Tech JVM Language Series

There will be a set of hands-on sessions with JVM languages for EC Tech that I will be hosting for this coming season.  What happened was, I was looking up a new TV diet called the GOLO diet when I ran across the GOLO language.  After reading about it, I realized there was a lot of this going on, such as with Kotlin on the INtelliJ they are heavily advertising, and the new Javascript library in Java 8 that runs on the JVM.  So,

This nice blog lists a few JVM languages — and posts this classic quote:

Learn at least one new language every year. Different languages solve the same problems in different ways. By learning several different approaches, you can help broaden your thinking and avoid getting stuck in a rut.
-The Pragmatic Programmer, Tip #8 “Invest Regularly in Your Knowledge Portfolio”, Andrew Hunt & David, Addison Wesley, 1999.

and though I do a lot of Groovy and love some of it versus Java, and love Java vs, it, well:

  • Why not re-look at some languages for fun?
  • See how the class files compile down with a compiler/decompiler on standard code examples?
  • Try a use case for each language they say they are good at?

And another list of languages on the JVM.

Hands on.  And drinks.

A Quick Sanity Check: Git Tag Cleanup Routine

I mentioned in an earlier post that if you want to move a tag in git you have to do a discrete tag delete, push, then re-add the same tag, push.  Sometimes though there are tags already out of sync in your repo.  To handle things nicely, first do this routine.

Update your local repos with whatever tags are on the remote.  It might not be necessary to do all branches but do the main ones, it’s quick, just to be sure you are synced up.  I’ve seen errors in SourceTree that don’t work that well with git tags so I’m not too trusting.

git checkout develop

git fetch --tags

git checkout master

git fetch --tags

Again remember – if you need to move a tag, delete it, push the change, then recreate it, push the change.  Do the changes separately the tag cannot do a compound move (delete/reassign) in git; and check your remote afterwards.