New website: Take Two

Hey Craig. I’ve made some changes (hopefully improvements!) to the website:

Only the home page is working at the moment. I will get the other pages working soon, hopefully today.

Please do let me know (in no uncertain terms!) what you think of the new design. I’ve gone “mobile first”, so it should look respectable on your smart phone.

Passing myself off as respectable

There’s been a little bit of spring cleaning around here today!

I’m trying to get my house in order so I can pass myself off as respectable when I start promoting my new show In The Lab With Jay Jay in earnest.

To that end I have reviewed the look and feel of my wiki. It no longer has that black, green, and orange monospaced font vibe going on, but now uses the relatively unoffensive default theme.

It’s not using the latest Vector theme, but rather the legacy one. This was deliberate because I have a lot of big tables in my wiki (such as on my computers and shopping pages) and the legacy theme plays nicer with those.

I’ve also been tweaking the website for my show, including an updated about page.

The blog, the wiki, and the show also now all use my new favicon which is my take on the Hacker Emblem:

John's new icon, based on the Hacker Emblem

Context object versus global variables

I’m reading A Philosophy of Software Design by John Ousterhout and he says:

The context object unifies the handling of all system-global information and eliminates the need for pass-through variables. If a new variable needs to be added, it can be added to the context object; no existing code is affected except for the constructor and destructor for the context. The context makes it easy to identify and manage the global state of the system, since it is all stored in one place. The context is also convenient for testing: test code can change the global configuration of the application by modifying fields in the context. It would be much more difficult to implement such changes if the system used pass-through variables.

Contexts are far from an ideal solution. The variables stored in a context have most of the disadvantages of global variables; for example, it may not be obvious why a particular variable is present, or where it is used. Without discipline, a context can turn into a huge grab-bag of data that creates nonobvious dependencies throughout the system. Contexts may also create thread-safety issues; the best way to avoid problems is for variables in a context to be immutable. Unfortunately, I haven’t found a better solution than contexts.

Okay, so I’m just gonna step way out of line over here and suggest something heretical… but shouldn’t you just use global variables? You only introduced the context object so you could tweak it in unit tests, and you could just change your tests so that each one ran in a new process. Just sayin’.

…I suppose for the sake of completeness I should add a little more from Ousterhout which he said prior to the above:

Another approach is to store the information in a global variable, as in Figure 7.2(c). This avoids the need to pass the information from method to method, but global variables almost always create other problems. For example, global variables make it impossible to create two independent instances of the same system in the same process, since accesses to the global variables will conflict. It may seem unlikely that you would need multiple instances in production, but they are often useful in testing.

…so he is bending over backward to support multiple tests in one process, but he could just run each test in its own process and his problem evaporates.

Oh cringe

Man. So. Today, this happened. I was watching a new video from Adrian Black and his EEVBlog multimeter failed:

It's disappointing that it's already failed

I have been saving my pennies and planning to buy an EEVBlog 121GW Multimeter because a lot of the makers around the interwebs have one as a nod to Dave Jones over on the EEVBlog, but that’s just so embarrassing that it’s failing. Of all the equipment you have you need to trust your test equipment the most and this is… well, just sad I guess.

Logic Analyzer with 1GHz Sampling Rate

Today I was pleased to discover this: DreamSourceLab DSLogic U3Pro32 USB-Based Logic Analyzer with 1GHz Sampling Rate, 2Gbits Memory, USB 3.0 Interface, 32 Channels.

There are some notes from the manufacturer over here: DSLogic Series USB-based Logic Analyzer.

It’s a logic analyzer which can operate at 1GHz that’s within my price range. I’m not rushing off to buy this thing, but it is certainly on my list.

The only other thing I have seen that compares to this logic analyzer is this RIGOL DS70304/DS70504– Digital Oscilloscope 3GHz/5GHz 4 Channel 20GSa/s 2Gpts 1000000 wfms/s which is roughly two orders of magnitude more expensive.

Extra Content #6: Just checking in about the new website | In The Lab With Jay Jay

This post is part of my video blog: In The Lab With Jay Jay.

You can support this channel on Patreon: patreon.com/JohnElliotV

Following is a list of products I use which may appear in my videos. Clicking through on these links before purchasing from Amazon, eBay, or AliExpress is a great way to support the channel at no cost to you. Thanks!


Rigol MSO5074 Mixed Signal Oscilloscope

notes

Rigol PLA2216 Logic Probe

notes

ATEN CS1922 2-Port DisplayPort KVM

notes

UNI-T UTi260B Thermal Imager

notes

TOMLOV DM602 Pro Digital Microscope

notes

UNI-T UTG962E Signal Generator

notes

Leadstar 12" LCD TV

notes

Riden RD6006 Bench Power Supply

notes

Tenma 72-10505 Bench Power Supply

notes

UPERFECT 15.6" HDMI LCD

notes

Pro'sKit SS-331H Desoldering Pump

notes

NOYAFA NF-521 Thermal Imager

notes

Dremel 4300 Rotary Tool

notes

Epson Perfection V39 Flatbed Scanner

notes

OWON XDM1041 Bench Multimeter

notes

FILCO Majestouch 2SS 104-key Mechanical Keyboard

notes

ANENG AN-999S Bench Multimeter

notes

FILCO Majestouch 2SS 87-key Mechanical Keyboard

notes

Bosch IXO VI Electric Screwdriver

notes

Victorinox Swiss Champ Red Swiss Army Knife

notes

Kingst LA1010 USB Logic Analyzer

notes

Dremel 2500 Multi-Vise

notes

YIHUA 938D Soldering Tweezers

notes

Dremel 335 Plunge Router

notes

ZKETECH EBD-A20H Electronic Load

notes

Yizhan Microscope

notes

Miniware DT71 Digital Tweezers

notes

Dremel 220 Drill Press

notes

Rigol PLA2216 Compatible Logic Probe

notes

Dremel EZ725 Rotary Tool Accessory Set

notes

Brother P-Touch D210 Label Maker

notes

Brother P-touch H105 Label Maker

notes

ENGINEER PA-21 Crimping Tool

notes

Fluke 1AC-C2-II VoltAlert Voltage Detector

notes

ENGINEER PA-09 Crimping Tool

notes

MESR-100 ESR Meter

notes

Horusdy Soldering Station

notes

Tera HW0006 Pro Barcode Scanner

notes

Hakko CHP 3C-SA Precision Tweezers

notes

FNIRSI DSO-TC3 3 in 1 Oscilloscope, Signal Generator, Component Tester

notes

Ryobi RYSF5003 Stud Finder

notes

M6013 Capactance Meter

notes

UNI-T UT116A Digital Tweezers

notes

Jackcat Electric Scissors

notes

DigiTech QM1323 Multimeter

notes

MMOBIEL Helping Hands

notes

ZZWS Book Holder

notes

TOWOT Industrial Tweezers

notes

Amazon Basics Ratchet Screwdriver

notes

Kaisi 35x25cm Repair Mat

notes

gku AC1009 Underdesk Keyboard Drawer

notes

QWORK Helping Hands

notes

Kaisi 45x30cm Repair Mat

notes

Duratech TH-1980 PCB Clamp

notes

FNIRSI SG-002 Signal Generator

notes

SHDSL Tape Dispenser

notes

Sudake SDK08 Test Clips

notes

Capactior Discharge Pen

notes

AMTECH NC-559-ASM Flux

notes

Sharp EL-546L Scientific Calculator

notes

Bysameyee Head-Mounted Magnifier

notes

Legion Tools Mini Screwdriver Set

notes

Scotch Titanium Scissors

notes

RELIFE RL-007GA Solder Lugs

notes

Super Bright 90000LM LED Torch

notes

Bosch IXO Angle Screw Adapter

notes

OZSTOCK Large Folding Step Ladder

notes

Craft Knife Set

notes

Fuumuui Paint Brushes

notes

Dremel Cutting Discs for Rotary Tool

notes

Gasmate Butane

notes

Dremel 490 Rotary Tool Dust Blower

notes

nmsafety Gloves

notes

HiLetGo USB Logic Analyzer

notes

OZSTOCK Small Folding Step Ladder

notes

Kaisi Soldering Tools w/ Desoldering Pump

notes

Magnetic/Claw Pickup Tool

notes

395nm UV Lamp

notes

Sudake SDK07 Test Clips

notes

MECHANIC UV Curing Light

notes

Comidox ATX Power Supply Tester

notes

Spudgers

Kaqiwze Blow Torch

notes

Telescopic Magnetic Pickup Tool

notes

Third Hand

notes

JST XH2.54 Pre-crimped Connector Kit

365nm UV Lamp

notes

Drill Extension

300pcs Heat Shrink Wire Connectors

IC Chip Pickup Tool

Metal Spudgers

Telescopic Magnetic Pickup w/ Light

Spudger Set

Crowbar

Stainless Steel Tray

Multifunction Hooks

Heat Shrink Wire Connectors

JST XH2.54 6pin Pre-crimped Connector

Telescopic Magnet

Knife Blades

SUNSHINE Hard Brush Set

notes

100pcs Heat Shrink Wire Connectors

DT830B Digital Multimeter

notes

Digital Meter

JST XH2.54 Connector Kit

EXAR Signal Generator

notes

Wozniak Solder Lugs

notes

Let’s go shopping!

Diode Experiment | Project 3/10 | Maxitronix 10in1 | Learning Electronics In The Lab With Jay Jay

This post is part of my video blog and you can find more information about this video on this show’s homepage which is here.

You can support this channel on Patreon: patreon.com/JohnElliotV

In this video I do the third Maxitronix 10in1 Electronic Project Lab project: Diode Experiment.

When I looked at the resistor on the bottom I thought it was red – brown – black – gold which would have been 21Ω but I think I misread brown and that was actually purple which would be 27Ω which stacks better with the two measurements I made both of which said 27Ω.

In the video we examine the forward voltage of our germanium diode and get various readings. Typically a germanium diode should be around 0.3V versus silicon diodes which are usually around 0.7V.

The component testers we use are these:

On the FNIRSI component tester the Ir is the “reverse current”, also known as the “leakage current”. This is the small amount of current which flows through the diode when it is reverse biased (that is, basically, connected the wrong way around).

I asked ChatGPT a few questions about diodes and their specifications which you can read here: Germanium Diode Forward Voltage if you’re at all interested in such things. Of course you should be doubly suspicious of anything you read on the internet. :)

The really amazing learning for me in this experiment was how hot the germanium diode got versus the lamp, which was so surprising. Just goes to show how good an idea it is to actually do experiments and measure things! The thermal imager we used was the UNI-T UTi260B.

Also I think I’m coming around to the view that an oscilloscope is a pretty poor voltmeter. My oscilloscope is an MSO5074 70MHz 4 Channel MIXED SIGNAL OSCILLOSCOPE and I love it but I think in future I will limit my use of the oscilloscope to situations where I’m actually dealing with some sort of oscillator. I think simple digital multimeters would have been better test equipment to use for the kinds of readings I was trying to take in this experiment.

I hope you enjoy the video. Stay tuned for the upcoming projects. If you’re interested in seeing them don’t forget to subscribe!

Also, if you’re interested in getting any of these Maxitronix kits yourself the best place I know to look is on eBay. Let me know if you find them somewhere else!

Thanks very much for watching! And please remember to hit like and subscribe!


Following is a product I use picked at random from my collection which may appear in my videos. Clicking through on this to find and click on the green affiliate links before purchasing from eBay or AliExpress is a great way to support the channel at no cost to you. Thanks!

aToolTour Black Hexagon Deburring Drill BitThis is an image of the product.notes

Let’s go shopping!