Friday, November 20, 2020

Microsoft's Visual Studio uses GitHub user accounts now

 Once again, Microsoft is making good progress. In this post, it's regarding the sync'ing of user accounts across platforms. In this case, Visual Studio (development platform) and GitHub (code management platform).

https://devblogs.microsoft.com/visualstudio/github-accounts-are-now-integrated-into-visual-studio-2019/

Wednesday, November 18, 2020

Microsoft's Game Development with .NET (and Unity)

This is very attractive to me. I need to try this out and see what the offerings are. 

https://devblogs.microsoft.com/dotnet/game-development-with-net/

This particularly caught my attention:

".NET does not just cover building your game. You can also use it to build your game’s website with ASP.NET, your mobile app using Xamarin, and even do remote rendering with Microsoft Azure. Your skills will transfer across the entire game development pipeline."

References

Friday, November 13, 2020

Good Coding Tip: NEVER USE ELSE Statement

This author has a really good point (to NEVER USE ELSE statements) that I've never spent much time meditating on.

"We can see that without the if statement, we can't determine what this [else] is meant to be doing. Why would it return an empty string? Is this an error, or the ‘normal' behaviour? This code instead relies on us remembering, and having read, the earlier context. This doesn't matter much when the statements are small, but if there's complicated logic within the
if { … }
block or we are scanning quickly, then the separation of context from code can hurt readability massively. It hurts even more when if/else statements are nested, or there are multiple of them in one function (which if statement is this else for?)."

Read the full article here:

https://dev.to/dglsparsons/write-better-code-and-be-a-better-programmer-by-never-using-else-statements-4dbl

Tuesday, October 27, 2020

Improving Your Debugging Strategies by Chelsea Troy

 I really like this article by Chelsea Troy in Functionize.

https://www.functionize.com/blog/improve-your-debugging-strategies/

Most developers know the standard strategy of debugging that she highlights. I would paraphrase her standard strategy term as "speeding through debugging with random breakpoints based on what developer believe is causing the issue." Like the author points out, this strategy is usually not the best unless you already know the the entire code base of the application or system. With the vast inter-communication among multiple apps, I doubt most developers today have this capacity to store an entire code base in human memory.

She defines another term called the investigation strategy. This strategy uses an existing algorithm to find the root cause of the issue like a binary search. The point isn't to list all the approaches to debugging but to understand that a better strategy is needed to improve your debugging skills. And, it should be language-agnostic as well as independent of any debugging tools (although it's helpful).

Thanks, Chelsea.



Thursday, October 22, 2020

Kite - Free AI Coding Assistance

Read a quick article on this and visit website to learn about it. No time to explore, but thought I would at least post and share.

Kite - Free AI Coding Assistance

https://www.kite.com/


Wednesday, September 16, 2020

Oracle Java 15

Now we have Java 15.
https://blogs.oracle.com/java-platform-group/the-arrival-of-java-15

Thursday, September 3, 2020

Microsoft Learning Portal for NASA

 Nice to see Microsoft partner with NASA in creating a learning portal for the next space frontier.

https://www.techrepublic.com/article/python-programming-in-the-final-frontier-microsoft-and-nasa-release-student-learning-portal/

https://docs.microsoft.com/en-us/learn/topics/nasa

Wednesday, August 19, 2020

Thank You - to that Random Person who maintains that one special library we all depend on

Hahaha! It's not often that I come across a comic that cracks me up. This is definitely a good one, though, and I think actually reflects a lot on our culture of modern technology. This makes me think about the capitalistic world and the lack of appreciation (via financial compensation) for open source developers. Eventually, programmers will need to be taught to privatize their code and negotiate on matters of advancing society. Perhaps some kind of blockchain stamp that signals royalties due to original programmer each time his/her code is used in a new program or product? I don't know, but I'm sure the day will come where the Open Source world will no longer exist. Or for a subscription fee (like online newspapers).

https://imgs.xkcd.com/comics/dependency.png

Source: https://xkcd.com/2347/

Monday, July 27, 2020

Becoming a Scrum Leader

I've never been a scrum leader (fka: scrum master) before but have always been in scrums since probably 2005. My team lead at the time became Agile Certified and promoted the Agile Manifesto. I was a fresh college grad and had no idea. But over the years, I've developed my own opinions about "scrumming". Being mindful, scrum is an agile practice and nothing more. When a team scrums well, it's usually because of one thing: open & honest communication.

People will say lots of bad things about "scrumming" and I have been one of those people. To the defense of negative perspective, it's because the scrumming has lost its value. In addition, it's because the scrum leader didn't and isn't catching the devalue of the scrums or the team that scrums. (And usually one is to write a whole paragraph before starting a new one - but it lowers the value of the message when unnecessary, for example).

There are lots of good things about "scrumming". Again, when scrums are done well, the value increases and the team becomes more productive. When the team becomes more productive, the product will most likely satisfy the customer and then the customer will, too, become more productive. That's the goal: Become More Productive.

My Four Points on Scrum

Let's look at the positive side of "scrum" as I learn to be a scrum leader for the first time. Here are my four key points promoting scrum:

1. Understand why we "scrum" (i.e. necessary process).

We scrum to communicate clearly our progress to the customer. Without the customer, we have no work and thus no need to scrum and talk about work progress. In order to communicate our project status effectively, we along with other teams collectively deliver our status to the product owner who will eventually deliver the overall project status to the customer.

2. Who should "scrum" (i.e. necessary people).

Our small teams of 3-6 people. Luckily, my team is of four including me which means each contributor will be necessary, needed, and critical to get work done. Because the point behind scrums is to communicate frequently and with key contributors, keeping the teams small helps to keep the frequency of communication high and, most of all, clear and concise. Too many people will cause too much noise and drown our the product's music. We want our customers to dance while waiting. :-)

3. What are the "scrum" priorities (i.e. product needs).

Identify the needs for the product (which are the needs for the customer) and we now have priorities to discuss during scrums. These needs combined with the skills of our team determine the timeline of finishing the product to deliver to the customer. Basically, what needs to get done to give the product to the customer when they need it.

4. How we "scrum" (i.e. progress needs)

The "how" is what makes "scrumming" different across the spectrum of agile practices. From my experience, the daily scrum using a "managing ticket" tool is the dominant method during sprints (i.e. a set of selected features to complete over a few weeks). This daily scrum was invented long before the modern tools we have today in managing tickets like Jira. However, I have found on many occasions this compels teams to scrum when unnecessary. I have found individuals to become less productive because of relying on scrums to give their status updates. Therefore, I oppose the daily scrum method and think we should leverage the modern tools to maximize scrums. As a team lead, I think it's more effective to encourage contributors (i.e. individuals on the team) to keep their status updates in the tickets and meet two or three times a week.
We ought to keep status of:
  1. completions - i.e. tickets completed
  2. progress - i.e. tickets currently being addressed
  3. blockers - i.e. tickets on waiting on ticket owner due to lack of knowledge, skill, funding, etc.
  4. holds - i.e. any ticket waiting on something or someone and why
From these tickets, I (or a scrum lead) can provide the daily status update to the product owner and make any team adjustments as necessary including scheduling a meeting to "unblock" a ticket. Usually, I can see the status with the "managing ticket" tool and provide the necessary status and feedback to the product owner. In addition, I can manage tickets and team contributors easier with the tool. Lastly, our sprints are more realistic with timelines because of the convenience of history tracking with the tool (or tools including logs of code commits). Therefore, scrum is important to ensure progress toward product delivery.

Overall, I think it's good to set expectations upfront with my team (or any team). Keeping my expectations simple should also help with making future adjustments. Here are my expectations:
  1. I will do my best. You can expect me to do my best. I will expect the same from you - do your best. (Please don't expect anyone to be the best scrum lead or team contributor.)
  2. I will always aim for us to do and be better. But I can't do it alone. I can't aim higher if even with three of us. We need all four of us to aim higher, together. Expect the same.

With the end in mind, let's see how my outlook helps or needs to be adjusted. Pray for me and wish me luck!

References

Here are some references that help develop my understanding.
Scrum Intro < 10 minutes
https://www.youtube.com/watch?v=XU0llRltyFM
Investing in Scrum

Arduino - Programming Language

I am just now hearing of this programming language and maybe it's because I don't work near hardware. But, this is good to know and received from reading IEEE Spectrum's top programming languages of the year.
https://spectrum.ieee.org/at-work/tech-careers/top-programming-language-2020

More on Arduino
https://www.arduino.cc/

Design Docs at Google article

This is a really good article on design doc in thinking and in practice.
https://www.industrialempathy.com/posts/design-docs-at-google/

I wonder how other tech giants go about design docs.

- Quick Outline (in article) -

    For new readers to catch up and (for everyone to) link up to detailed information when necessary.
    Since design docs are overhead, know the trade-offs with whether a design doc is necessary or not.

Anatomy of a Design Doc

    Context & Scope

    Goal & non-goals

    Actual Design: One Overview & One Detailed

    System-context diagram

    APIs

    Data Storage

    Code & Pseudocode

    Degree of constraint

    Alternatives Considered

    Cross-Cutting Concerns

    Length of Design Doc


Design Doc Lifecycle

  1. Creation & rapid iteration
  2. Review
  3. Implementation & iteration
  4. Maintenance & learning



Wednesday, July 1, 2020

Amazon's CodeGuru

"AWS launched CodeGuru in preview last December as a way for customers to automate the code review process, find bugs and suggest approaches to remediate them, hopefully before they ship to users."

From another good article on Amazon's progress in the Tech World: CodeGuru
https://www.zdnet.com/article/aws-codeguru-is-out-ai-tool-checks-code-and-suggests-changes-to-save-you-money/

Learn more:https://aws.amazon.com/codeguru/

Wednesday, June 24, 2020

Wednesday, April 15, 2020

Go for ML Infrastructure Engineering

"Python will (and should) remain the most popular language for data science and machine learning engineering. However, when it comes to machine learning infrastructure, we’re happy with Go."

I definitely want to learn more...

https://towardsdatascience.com/why-we-deploy-machine-learning-models-with-go-not-python-a4e35ec16deb
https://github.com/cortexlabs/cortex

Sunday, March 29, 2020

GitHub Sponsors and The Future of Work

As I'm reading this blog post today from GitHub, I am so grateful and reminded of how the future of collaboration and innovation is closer than we think.
https://github.blog/2020-03-24-getting-started-with-github-sponsors/


Soon, people will be employed by contribution and we will no longer have the "packaged" salary or the hourly wage. Since online repositories like GitHub timestamps code committed, pushed, forked, etc., employers and potential employers can have more say over who to hire for certain parts of a project they will pay for. This sounds like a crazy idea considering how much effort goes into building a project with a team of individuals. How much crazier with an unaligned set of contributors where one might only be on the team for a few minutes and another for a few weeks? Well, if you consider how AI is on the rise, then this idea is not as crazy as some may think.

As I continue reading "The Future is Faster than You Think", I am growing my understanding of how to prepare myself for this future of work in a globally competitive society.


I wish you all the best as you continue to grow and prepare for our future, too.

Good Luck!

Thursday, March 19, 2020

Microsoft's Visual Studio 2019 v16.5 - now available

Visual Studio 2019 v16 has some new cool stuff!
https://devblogs.microsoft.com/visualstudio/visual-studio-2019-version-16-5/

Why it's being released as "2019" in "2020", I have no idea and find it strange. I wonder if I should wait for a 2020 edition, lol?

Enjoy!

Wednesday, March 18, 2020

GitHub's mobile app - finally!

I'm so glad to finally see this. Downloaded and will be trying it out. I remember downloading a mobile GitHub app years ago (like 2016) and not being impressed. A few of the apps I tried were just frustrating because I didn't want to see everyone's feed but just my own updates for personal reasons.

Anyhow, let's see how smooth this operates over mobile. Thanks, GitHub team!
https://github.blog/2019-11-13-universe-day-one/#mobile




Thursday, March 5, 2020

Microsoft's PowerShell 7.0

An insightful read for the new PowerShell.
"Open-source, cross-platform and people seem to like it: PowerShell 7 has landed" - The Register
https://www.theregister.co.uk/2020/03/04/powershell_7_generally_available/

Friday, February 28, 2020

Microsoft's Road Map - Visual Studio

I think this is phenomenal that Microsoft is being so transparent with developers, customers, and even competitors on their roadmap. Amazing! This is a tech company driven on faith and relationship - not just their product or "secret sauce".

Yeah, I should have worked for Microsoft. #teamculture

Road Map - Visual Studio
https://docs.microsoft.com/en-us/visualstudio/productinfo/vs-roadmap

Microsoft's Blazor - Development Toolkit to build once for everything

This is an interesting read to see how Microsoft is contributing to toolkit options for building web apps that function on all devices.

Article
https://www.zdnet.com/article/ios-and-android-developers-microsofts-blazor-for-building-mobile-apps-gains-traction/

GitHub
I'm not sure if this is the official online repo for this toolkit, but seems like it.
https://github.com/Daddoon/BlazorMobile

More references
https://dotnet.microsoft.com/apps/aspnet/web-apps/blazor
https://devblogs.microsoft.com/aspnet/mobile-blazor-bindings-experiment/

Monday, February 24, 2020

Microsoft for Startups

Another good insight to see how Microsoft is contributing to the push for future tech in practical living.
https://blogs.microsoft.com/blog/2020/02/13/microsoft-for-startups-unlocks-1-billion-in-sales-opportunities-for-b2b-startups-adds-github-and-microsoft-power-platform/

Top Browsers in 2020

When I read this strange article about the top browsers for developers, I'm usually skeptical. But, seeing the expected browsers was logical to consider.

  1. Firefox (Developer Edition)
  2. Google Chrome (for Developers)
  3. Opera (for Developers)
  4. Polypane - never heard of this but will now consider and test
  5. Blisk - never heard of this and am skeptical
  6. Safari - like for real, in 2020?

Reference

https://www.webdesignerdepot.com/2020/02/6-best-browsers-for-developers-in-2020/

O'Reilly's 5 key areas for tech leaders

This was an informative, useful article (thanks O'Reilly)!

5 Key Areas - Article

https://www.oreilly.com/radar/oreilly-2020-platform-analysis/

Rate of Change

This is a unique chart that really stood out to me. I hope this does for you to.
  • Biggest increase - Rust
  • Biggest drop - Scala


Thursday, February 13, 2020

HBR on Locomotive Organizations

"Our results indicated that the language in mission statements could predict EEOC violations. Franchises whose mission statements emphasized locomotion (“just do it”) over assessment (“do the right thing”) were significantly more likely to be charged with discrimination."

"In other words, locomotion motivates action, but locomotion combined with assessment motivates conscientious action."

Read more
https://hbr.org/2020/02/research-organizations-that-move-fast-really-do-break-things

Wednesday, January 29, 2020

Microsoft's Project Tokyo



First let me say that I'm in awe of how Microsoft is on the up and up with having so many software (and overall system) projects in progress. Usually I rarely hear about Microsoft and often hear more about Google or Facebook projects. Maybe even Amazon, but those are usually more hardware related.

Anyhow, I'm super happy to hear about this Project Tokyo! Another great project in the suite of wonder from Microsoft.


Read more from Venture Beat:
https://venturebeat.com/2020/01/28/microsofts-project-tokyo-helps-visually-impaired-users-see-with-ai-and-ar/

Reference
https://news.microsoft.com/innovation-stories/project-tokyo/

Tuesday, January 21, 2020

Microsoft's Project Verona - New Programming Language Research

I haven't had much time to blog, but had to highlight this.

Microsoft's New Programming Language - Project Verona



This is very interesting to see Microsoft "claim" continuing contribution to the development of Rust but research and develop its own new programming language comparatively to Rust.

Thanks to CodeProject for this update.