Rob Kraft's Software Development Blog

Software Development Insights

Archive for the ‘Resources and Tools’ Category

How Companies Can Facilitate the Onboarding of Entry-Level Developers

Posted by robkraft on May 24, 2021

Despite a shortage of software developers, entry-level developers can tell you that it is difficult to get hired.  Companies are often reluctant to hire entry-level developers for several reasons that include:

  • They don’t want the risk that an entry-level developer may not have the skills to do the job.
  • They don’t want to invest in bringing an entry-level developer up to speed and then see the developer go to work for another company.
  • They don’t want to pay for the time it takes for entry-level developers to become producers instead of costs.
  • They don’t want to lose productivity of current staff devoting their time to bring entry-level developers up to speed.

Development teams also find it challenging to provide tasks for entry-level developers to work on because there are so many things an entry-level needs to understand before doing any coding. A lot of that is the processes surrounding coding and how those processes are performed in the organization.  Below is a list of items that many companies want developers to understand.  Often only the coding items were part of the training the developers received in school.  Companies want a developer that:

  • knows what IDE to use, how to install it, open it, update it, and be productive with it,
  • understands the technologies used by their app in order to get things done:
    • The code language, UI language, data stores, best practices, frameworks, and IDE,
  • knows how to test their code locally,
  • knows how to commit code changes to a repository and update from a repository,
  • knows how to use repository tools to review other code and find code changes,
  • can write unit tests,
  • can start and run unit tests locally,
  • proceeds cautiously at first, not checking in changes without being certain,
  • will not check in code changes to the production pipeline accidentally,
  • understands there is a build process, and be able to run a build on their own,
  • understands the process of how their changes get deployed or used,
  • understands there is a production build and how to initiate it,
  • understands there is a way to deploy for QA/Test (maybe),
  • understands they may be able to deploy directly to production,
  • can find the task management system that has the list of tasks and features and bugs they are to work on,
  • can manage their own tasks on the task boards,
  • knows who to talk to for any task requirements as well as task priority and also if the task is right/ready for them to handle,
  • tracks their time – how much are they spending on each task,
  • can assess what is a priority, or who to ask to get that answer,
  • understands the business domain and what the software “does”,
  • understands the development priorities (security or performance or maintainability or customer satisfaction or just functional),
  • follows the patterns already in use in the code for solving problems,
  • knows how to use our Requirements and Design tools and processes,
  • gets to work on time,
  • is focused on their work during working hours,
  • is eager to learn,
  • is friendly with everyone.

When a company commits some time to building a good onboarding process for new developers, they can greatly facilitate the onboarding process and make it less difficult to hire an entry-level developer. 

  • Create documents and videos of the applications the developer will be working on
  • Create documents and videos of your software development processes
  • Assign each new developer a contact person they can go to for any question.  If you are hiring several developers, ideally each contact person will serve that role for just a single new developer.  Also, the contact person should be someone on the same team that is very accessible to the new employee.
  • Schedule some one on one time for each new developer with each team member.  Often, you can use this time for an existing team member to share knowledge about the company and software with the new developer.
  • Prepare their computer, physical environment, and computer software before they arrive for their first day.  Make sure the application software, and unit tests if applicable, can run successfully on their computer.  Have all of their security accounts ready for use.
  • Have mentors reserve time to spend with new developers almost each day for the first two weeks.  Don’t just hope to “squeeze it in” as needed.
  • Remind existing team members to contact the new developer(s) when they are about to perform a task or process that the new developer needs to learn so the new developer can join them as they go through it.
  • Put off some simple fixes/enhancements on your task board for a few weeks to reserve them for the new developers to do.  Give the new developers a chance to commit a real code change on their first day.
  • Finally, create an onboarding checklist with links to videos and documentation about each item on the checklist.

Here is an example of an onboarding checklist in a google document: https://docs.google.com/document/d/1K5jw1OgQDbLiXt9UvLR9Qnm5Pj9fWj-brp6_FiTUWJw/edit?usp=sharing

If you want a faster start for your own onboarding checklist, I recommend you make a copy of this Trello board and customize it for your own company: https://trello.com/b/h9eTMg4E/onboarding

The way I recommend using this Trello board, is to make a column on it for each new hire.  Each employee can work their way down the board, marking items done on checklists and changing the “Labels” on a card when it is completed.  Many items on this board anticipate that a mentor will work with the new employee to discuss the item (cards with the “Mentor” label).  Other cards have a label named “Complete Independently”.  Of course there is still a lot of work for you to do in preparing documentation and customizing the board for your own development shop, but hopefully this helps you get started.

Posted in Online Resources, Resources and Tools, Software Development | Leave a Comment »

A Great Collection of Free Tools for Web Developers – JSON, REST, and CSV – ExtendsClass.com

Posted by robkraft on June 15, 2019

Cyril has put together a great collection of free tools particularly for web app developers working with JSON, XML, Encoding/Decoding, REST APIs, SQL, and CSV files.

You can find them all on his website at: https://extendsclass.com/.

Extends Class provides several online tools:
– fiddles:
* Xpath tester (https://extendsclass.com/xpath-tester.html).
* SQLite fiddle (https://extendsclass.com/sqlite-browser.html). It is open source (https://github.com/cyrilbois/Web-GUI-for-SQLite).
* RegEx Tester (https://extendsclass.com/regex-tester.html), which helps to test and debug regex.
* JavaScript fiddle (https://extendsclass.com/javascript-fiddle.html).
* JSONPath Tester (https://extendsclass.com/jsonpath-tester.html).
– checkers:
* PHP code checker (https://extendsclass.com/php-tester.html).
* Python code checker (https://extendsclass.com/python-tester.html).
– API tools:
* REST client (https://extendsclass.com/rest-client-online.html).
* SOAP client (https://extendsclass.com/soap-client-online.html).
* Web service testing (https://extendsclass.com/web-service-tester.html). It is open source (https://github.com/cyrilbois/RestesterUI).
* Mock REST API (https://extendsclass.com/mock-rest-api.html).
– formatters & beautify:
* JSON formatter and validator (https://extendsclass.com/json-validator.html).
* XML formatter and validator (https://extendsclass.com/xml-formatter-online.html). It is open source (https://github.com/cyrilbois/Web-xml-formatter).
* SQL formatter (https://extendsclass.com/sql-formatter.html).
– Converters / Encoders:
* XML to JSON (https://extendsclass.com/xml-to-json.html).
* JSON to CSV (https://extendsclass.com/json-to-csv.html).
* CSV to Excel (https://extendsclass.com/csv-to-excel.html).
* Base64 image encoder / decoder (https://extendsclass.com/image-to-base64.html).
* Base64 encoder / decoder (https://extendsclass.com/base64-decode-encode.html).
– minifiers
* CSS minifier (https://extendsclass.com/css-minifier.html).
* HTML minifier (https://extendsclass.com/html-minifier.html).
* JavaScript minifier (https://extendsclass.com/javascript-minifier.html).
– diff:
* Text diff (https://extendsclass.com/text-compare.html).
* XML diff (https://extendsclass.com/xml-diff.html)
* JSON diff (https://extendsclass.com/json-diff.html)
* CSV diff (https://extendsclass.com/csv-diff.html)
– other:
* CSS Generator (https://extendsclass.com/css-generator.html).

Posted in Free tools, Resources and Tools | Leave a Comment »

How I Figured Out Why I Could Not Get To My WebSite Hosted at Arvixe.com, But Others Could

Posted by robkraft on April 19, 2014

I encountered an unusual problem last night when I attempted to view one of my web sites (http://www.KraftSoftware.com).  I could not get to the web site.  Fiddler showed me a 502 response.  My site is hosted at arvixe.com and I use the name cp.violet.arvixe.com to connect to and manage my web site, but I also could not even connect to cp.violet.arvixe.com.  I scanned twitter for arvixe but found no one else complaining about outages.  Maybe others had not realized the problem yet.  Fortunately I was able to get to support.arvixe.com to chat with a technician.  He said there was no problem, that both sites were accessible and ended our chat.  That did not please me.  I opened a chat with a better technician at arvixe.

He told me that they could access the site, and we bounced some ideas back and forth.  I sent him the result of my traceroute, then I went to bed.

Tracing route to stats.violet.arvixe.com [198.252.79.4]
over a maximum of 30 hops:

1     1 ms    <1 ms    <1 ms  192.168.1.1
2    36 ms    28 ms    30 ms  cpe-65-28-0-1.kc.res.rr.com [65.28.0.1]
3    16 ms    15 ms    12 ms  tge7-2.lesmmo11-cer1.kc.rr.com [65.28.16.138]
4    13 ms    17 ms    13 ms  tge0-9-0-7.ksczmogn01r.kc.rr.com [98.156.42.246]
5    39 ms    27 ms    27 ms  ae30.dllatxl3-cr01.kc.rr.com [98.156.42.0]
6    28 ms    27 ms    27 ms  107.14.19.92
7    25 ms    24 ms    24 ms  ae-3-0.pr0.dfw10.tbone.rr.com [66.109.6.209]
8    24 ms    50 ms    34 ms  po21.bbr02.eq01.dal01.networklayer.com [66.109.9.222]
9    29 ms    28 ms    24 ms  ae5.dar01.sr01.dal05.networklayer.com [173.192.18.215]
10    24 ms     *       52 ms  po1.fcr03.sr03.dal05.networklayer.com [173.192.118.143]
11     *        *        *     Request timed out.
12     *        *        *     Request timed out.
13     *        *        *     Request timed out.
14     *        *        *     Request timed out.
15     *        *        *     Request timed out.
16     *        *        *     Request timed out.
17     *        *        *     Request timed out.
18     *        *        *     Request timed out.
19     *        *        *     Request timed out.
20     *        *        *     Request timed out.
21     *        *        *     Request timed out.
22     *        *        *     Request timed out.
23     *        *        *     Request timed out.
24     *        *        *     Request timed out.
25     *        *        *     Request timed out.
26     *        *        *     Request timed out.
27     *        *        *     Request timed out.
28     *        *        *     Request timed out.
29     *        *        *     Request timed out.
30     *        *        *     Request timed out.

Trace complete.

The next morning an Arvixe tech had sent me an email asking me for my IP address.   I supplied it to them 6 hours ago but have not heard another response from them yet.  So I started doing some more research.

After disabling the wireless on my phone (so that my phone would not be going to the Internet over the same connection as my home PC), I went to my web site and it was working from my phone.  I then went to www.pingwebsite.com and pinged my server web IP (192.252.79.4) and only 4 of the 10 hosts were able to get a response.

I emails to ‘admin@dnstinations.com’ and ‘dnsadmin@us.ibm.com’ because they were the apparent owners of the last node the tracert reached successfully (po1.fcr03.sr03.dal05.networklayer.com [173.192.118.143] ).  It is a Saturday, and I have no response from them yet.

I then considered that my IP address had been blacklisted.  I went to http://whatismyipaddress.com/blacklist-check and entered my IP Address for my server 198.252.79.4 and it showed that my site was blacklisted by two spamhaus.org servers, but not by any of the other 60 servers on the list.  One of the links from this site took me directly to the reason for the block by spamhaus.org at http://www.spamhaus.org/sbl/query/SBL213271. This document told me that a site named primus.com.mk was being blocked as a spammer.  The IP address for that site was the same as my site IP address (www.KraftSoftware.com).  So apparently my site, and all of my sites hosted at arvixe.com, have the misfortune of being on the same server as a spammer.

At this time I think there is nothing I can do except to ask Arvixe.com to move my sites to a different server and IP Address, or for me to move my sites to a different web hosting provider.  And of course I asked Arvixe.com to shut down primus.com.mk and get my IP address off of the blacklist.

At the moment, I am just waiting for their response.

UPDATE AND RESOLUTION:

So I was wrong about the blacklist being the cause of my site not working.  The blacklist just blocks emails, not web sites.  The problem was that my home security system was sending so many pictures to store on my site that it triggered a DDOS response and was blocked.  I have changed my security camera to send fewer pictures and will hope it doesn’t happen again.

Posted in I.T., Online Resources, Web Sites | Leave a Comment »

How to POST to a REST API that requires Authentication using Fiddler

Posted by robkraft on March 8, 2013

Last October I blogged about using Fiddler to Post to a REST API. Today’s post is very similar but I go one step further and post to a REST API site that requires Basic Authentication. When making a POST to a site requiring authentication, you must include authorization information in Request Header. Sounds simple enough, until you look at an example. In Fiddler, it looks like the image below:

Fiddler Post To Site Needing Basic Authentication

The only piece of information you need to add to make Basic Authentication work is the Authorization: Basic line with the correct encoded value following it.  Despite my warning, this encoded value is easy to generate.  You just need to go to any web site that will do base64 encoding for you, plug in your logon and password using this format:

logon:password

Click the button to encode to Base64 (probably UTF8), and paste the resulting value into Fiddler.  I did this at http://www.base64encode.org as shown here:

Image of Base64Encode.org web site

Image of Base64Encode.org web site

Posted in CodeProject, Coding, Free tools | 2 Comments »

Internet Explorer 10 is now the Best Browser in the Market

Posted by robkraft on March 2, 2013

I am loving the speed of the recently released Internet Explorer 10 (IE10) for Windows 7.  It is noticeably faster than Chrome.  It also has no problem rendering video and other content on sites that IE9 struggles with.

A few other minor improvements are nice such as the little ‘x’ added to every text box to allow you to clear the field and the icon for viewing your password that appears in every password protected field.  This is a long overdue security enhancement.  A lot of users choose simple passwords primarily because they struggle typing complex passwords when they cannot see what they have typed.

Text fields and some fonts render a little differently in IE10 than in IE9.  I don’t think they look better, but I think they probably render a little faster.  Once again, IE10 appears to be all about speed!

Posted in Free tools, Home Tech, I.T., Web Sites | Leave a Comment »

How to POST to a REST API using Fiddler

Posted by robkraft on October 24, 2012

Posting to a REST API using Fiddler is very simple, as long as you fill out all the required values correctly. I spent more than an hour figuring out the correct info for my REST API recently so I am documenting it here for my own sake, and hopefully to speed the resolution for others. The URL shown in the image is not real, so don’t expect that URL to work for yourself.

  1. Select the Composer tab in Fiddler.
  2. Select POST from the dropdown.
  3. Enter the URL of the REST API. My REST API had a .svc extension, but most REST APIs do not.
  4. In the Request Headers, include “Content-Type: text/xml”. This is the step I missed that took me so long to resolve. Your REST API may not need this, but the REST API I was working with developing on the Microsoft Stack did. You do not need to provide the values for Host or Content-Length in your Request Headers because Fiddler will populate those for you.
  5. In the Request Body, provide the XML or Json data that you are sending to the URL as part of the POST.
  6. Click on the Execute button.
  7. Check the panel on the left (not shown in the image) to see the result of your API call. For my API, the POST returned a 200 and the Response Body contained my response data.

That’s it. Good Luck!

How to POST to a REST API using Fiddler

Posted in CodeProject, Coding, Free tools | 7 Comments »

Make Time to Learn from the Free Microsoft Security Assessment Tool

Posted by robkraft on August 16, 2012

Today I discovered the Microsoft Security Assessment Tool.  Although the tool came out nearly three years ago I still discovered it to be very useful in helping you to identify the security areas in which your organization or software development shop may be weakest.  It also provides a lot of links and useful recommendations to assist you with improving security.  Security should be near the front of every developer’s mind as the world moves toward cyberattacks that are increasingly more damaging to businesses and people.

Download the free tool here:

http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=12273

Expect to spend 30 to 90 minutes answering the questions.   You must first answer all the Business Profile Assessment questions, then you can move to the more interesting “Defense In Depth” assessment.  Follow that with generating a report of the results and if you’d like, posting your results to Microsoft and see how you compare to other organizations.

 

 

 

Posted in Free tools, I.T., Process | Leave a Comment »

SP_WhoIsActive is a Superior Alternative to sp_who on SQL Server

Posted by robkraft on August 13, 2012

I recently learned about the sp_WhoIsActive stored procedure written and maintained primarily by Adam Mechanic.  For DBAs like myself who have always wanted something better than sp_who and sp_who2 to diagnose the active connections on your SQL Server, this is a tool for you.  You can download it at http://sqlblog.com/files/default.aspx and you can learn all about it through Adam’s many blog posts.  I recommend starting with this one: http://sqlblog.com/blogs/adam_machanic/archive/2011/04/05/less-data-is-more-data-a-month-of-monitoring-part-5-of-30.aspx

SP_WhoIsActive

Find more tool gems like this at http://tinyurl.com/ITPortals

 

Posted in Free tools, SQL Server | Leave a Comment »

Use the Free Problem Steps Recorder Tool Built Into Windows to Record and Playback

Posted by robkraft on June 10, 2012

I just recently learned that Microsoft included a new tool called the Problem Step Recorder (Psr.exe) in the release of Windows 7.  This handy and simple tool allows a user to record the steps taken and then send a script of those steps, including screen shots, to a support assistant.  The tool does not record video, so it avoids some of the complications that arise with video recording tools.  When you stop recording the screen captures and text are zipped up automatically, then you can easily email the resulting .zip file to your IT Support.  A screen capture occurs every time the user clicks on something and the screen capture highlights exactly what was clicked.

If you ever provide IT support for Windows 7 users, give the tool a try on your Windows 7 pc right now to see how easily it works, or watch a short demo of the tool here: http://technet.microsoft.com/en-us/video/Video/ff710684.

Screen Cap of partial results of PSR Recording

Screen Cap of partial results of PSR Recording

 

Posted in Free tools, I.T. | Leave a Comment »

Use www.test-ipv6.com to see if you can browse IPV6 web sites. IPV6 Day is June 6, 2012!

Posted by robkraft on June 5, 2012

Tomorrow is June 6th, 2012, and that means it is world wide IPV6 day!  Hooray!  Yippee!  Hurrah!

But what does that mean to you?  Probably not much.  Hopefully not much.  For most of the world it will be as uneventful as Y2K and all those dates that already passed on which the world was supposed to end.  But for the major entities responsible for keeping our Internet alive and functioning it means they are flipping a switch to begin support IPV6 addresses in addition to the traditional IPV4 addresses.  And they are doing this because the Internet is running out of IPV4 addresses.

As stated, this does not affect anyone, at least not immediately.  But soon we will really run out of IPV4 addresses and someone will have to start using IPV6 addresses, and only IPV6 addresses to put their web site on the Internet.  Only web browsers capable of communicating with IPV6 will be able to go to those web sites.  Computers running older software like Windows 95 won’t be able to go to IPV6 only web sites.  Neither will computers going through old network equipment that doesn’t support IPV6.  Can you get to IPV6 web sites from your browser on your computer?  You can find out by going to www.test-ipv6.com.

Posted in Free tools, I.T., Web Sites | Leave a Comment »