recentpopularlog in
« earlier  
make RSS feeds for twitter, youtube, instagram, etc
22 days ago
The JavaScript Beginner's Handbook (2020 Edition)
Summary of the handbook

A little bit of history
Just JavaScript
A brief intro to the syntax of JavaScript
Precedence rules
Comparison operators
Arrow functions
Object Properties
Object Methods
Asynchonous Programming and Callbacks
Async and Await
Variable scope
24 days ago
What’s Really Holding Women Back?
The linchpin of those protective measures was a belief in women’s natural fitness for family, and in men’s for work. At the employee level, they appeared as unconscious psychological defense mechanisms that reinforced the gendered work/family split. At the organizational level, they emerged as the universally held belief in the work/family narrative and in the form of policies that, as with accommodations, effectively took women off the partnership path. These employee-level and firm-level dynamics operated together to create the firm’s social defense system.

All parties benefited from these measures in the short run. Firm leaders could deflect responsibility for the lack of women partners on the grounds that it was inescapable. Employees could make some semblance of peace with their decisions: Men could justify as inevitable the sacrifices they’d made in ratcheting up at work, and women could justify as natural the sacrifices they’d made in ratcheting down. And all the while, the firm’s long-hours culture remained unchallenged.
women  career 
4 weeks ago
Applied Critical Thinking Handbook (Formerly the Red Team Handbook)
"The premise of the program at the University of Foreign Military and Cultural Studies (UFMCS) is that people and organizations court failure in predictable ways, that they do so by degrees, almost imperceptibly, and that they do so according to their mindsets, biases, and experience, which are formed in large part by their own culture and context. The sources of these failures are simple, observable, and lamentably, often repeated. They are also preventable, and that is the point of 'red teaming'. Our methods and education involve more than Socratic discussion and brainstorming. We believe that good decision processes are essential to good outcomes. To that end, our curriculum is rich in divergent processes, red teaming tools, and liberating structures, all aimed at decision support. We educate people to develop a disposition of curiosity, and help them become aware of biases and behavior that prevent them from real positive change in the ways they seek solutions and engage others. We borrow techniques, methods, frameworks, concepts, and best practices from several sources and disciplines to create an education, and practical applications, that we find to be the best safeguard against individual and organizational tendencies toward biases, errors in cognition, and groupthink. Red teaming is diagnostic, preventative, and corrective; yet it is neither predictive or a solution. Our goal is to be better prepared and less surprised in dealing with complexity."
criticalthinking  retrospectives 
4 weeks ago
CI for Embedded Systems
Technique Testing Type Effort Level Testing Value
CI Build Smoke Test, Static Analysis Low High
Non-Host Testing Unit Testing, Integration Testing Medium Medium-High
Host Testing Unit Testing, Integration Testing Low to High Medium
Simulated Host Testing Unit Testing, Integration Testing ? ?
"Native" Host Testing Unit Testing, Integration Testing Low to High Medium-High
HIL (Easy) System Testing Low to Medium High
HIL (Hard) System Testing High Medium-High
ci  embedded 
4 weeks ago
A Practical Guide to Watchdogs for Embedded Systems | Interrupt
At some point you’ve probably had to unplug and plug back in an electronic device to get it to work again! System freezes and hangs are not only frustrating to an end user, but they can also be quite challenging to debug and fix.

For some classes of devices, such as a satellite1, a manual reset is not even possible, making a wedged device a multi-million dollar “brick”. As firmware engineers, we must make sure our systems can always recover from a stuck task, or an infinite loop. This is best accomplished with a watchdog.

In this article we will discuss the last line of defense in embedded systems – watchdogs. We will walk through a step-by-step example of how to implement a watchdog subsystem, incorporating a “hardware” and “software” watchdog, and examine effective strategies for root causing the underlying problems leading to these hangs.
Table of Contents
The Hardware Watchdog
Why should I use a Watchdog?
Configuring a Hardware Watchdog
When does the watchdog configuration get reset?
How does the watchdog behave with a debugger?
What happens when the watchdog expires?
How do I find out if a watchdog reset took place?
Enabling a Hardware Watchdog in a System
Examining the NRF52840 Hardware Watchdog Behavior
Choosing a timeout value
Configuring the NRF52 Hardware Watchdog
Checking the Hardware Reboot Reason
Sanity Checking the Configuration
A Basic Implementation
Hang while polling a Sensor
Hang waiting for a mutex
Adding a “Task” Watchdog
C Code Example
Retry “Hang waiting for a mutex”
Root Causing Watchdogs
Adding a “Software” Watchdog
Debugging our example hangs
Using GDB Python to prevent Software Watchdog Misfires
Debugging Hangs Inside Interrupts
ARM Cortex-M Design Suggestions
5 weeks ago
Interviewing senior engineering leaders.
A friend recently reached out for advice on interviewing and hiring senior engineering leaders. I’ve spent a good deal of time on this topic over the last couple years, starting with partnering with Laura Hilton to design Stripe’s interview loops for engineering leadership, and more recently going through a search for my own role. Leadership hiring is particularly interesting as a window into an organization’s psychology: for the highest stake decisions, do they turn to structure or to intuition?

For many topics I can write the algorithm that I’m confident will lead to a pretty good outcome, but this definitely isn’t one of them. Rather these are just the notes of what I’ve seen so far.

For clarity’s sake, I’m defining “senior” as managing an engineering organization of 30+ folks, likely with a Director-plus title at a pre-IPO company or the VPE/CTO at a smaller startup. These ideas will apply to folks outside of these narrow lanes, but will require some adaptation.
hiring  management 
5 weeks ago
FastBit Embedded Brain Academy | Online Courses | Embedded Systems
Mastering microcontroller with Embedded driver development
Mastering microcontroller: TIMERS,CAN,PWM,RTC,LOW POWER
Mastering RTOS: Hands on with STM32Fx with debugging
Embedded Linux Step by Step using Beaglebone Black
ARM Cortex M Microcontroller DMA Programming Demystified
STM32Fx Microcontroller Custom Bootloader Development
Embedded Systems Programming on ARM Cortex-M3/M4 Processor
5 weeks ago
Black Box Puzzles
Scroll straight to the most-recent puzzles

You want your team to be great at exploratory testing? To diagnose pathologies? To find the system's true behaviours? To describe the true impact of a problem? To work through a system in measurable, disicplined, explainable ways?

You do. And I can help.

Find out about my in-house workshop

These Black Box Puzzles now have a page on Patreon. Get your name in the credits, and inspire me to make more – sign up today!

Sign up to my mailing list for workshop/conference discounts, and to be the first to hear about free events and new puzzles.

Follow @workroomprds for shorter, more random stuff.

Here is a short selection of tiny applications. I'm not going to tell you what they do. They're puzzles: use your testing skills to discover what you can. If you can describe what they do with a couple of short sentences, that's it.

It's always interesting to share your testing approaches, but you may frustrate others by telling them your solution before they're ready.

These puzzles are generally deterministic, they don't tend to hide what they do, and they typically do simple things. If you think most are random, sneaky or complicated, you should be able to find neater models. The puzzles may well have bugs, but I've not put those bugs in on purpose.

Some have hints, some don't. I'm always open to suggestions for better hints.

The question mark, logo, puzzle name, and camera (if it's there) don't form part of the puzzle, and are broadly similar across puzzles.

They're written in AS3, and run in your browser using flash player. They won't work without the flash player, so phones and tablets are generally out. Local copies may not work well at all. You can probably work out how to decompile them if you want to quiz the code.
testing  puzzles 
5 weeks ago
Tester Interviews: Techniques and Tasks | Cassandra HL
This post is inspired by a recent discussion on the The Club at Ministry of Testing.

Edit: It has also been translated into Russian on Software-Testing.RU.

I’m a software tester with a past life in the IT recruitment industry. I’m also a serial interviewee. Immediately before starting my current position at MaibornWolff, I attended interviews with five companies before choosing the right opportunity for me. In the previous five years, I’ve interviewed with a further five to ten, as well as conducting my own interviews as a recruiter and advising companies on how to conduct theirs.

The above post on The Club has inspired me to write about the different techniques that have been used during the interviews I attended this year, and the kind of tasks I was set. I’ll also include some methods I’ve heard about being used, and briefly give my opinion on the advantages and disadvantages of each. Hopefully this helps you to think about how you interview testers in your organisation, and perhaps inspires you to try some of the techniques described.

Please note that I won’t describe any technical coding tasks, as I don’t have enough personal experience of these to comment on their effectiveness.



Straightforward Questioning

Behavioural / Competency-based Questioning

Knowledge Questions

Industry and Community Awareness


At Home vs. On Site

Critical Thinking Games

Testing Requirements

Three Amigos

10 Minute Test Plan

Testing Example Software

Testing “Real” Software


My Recommendations and a Pinch of Salt
testing  interviewing 
5 weeks ago
Repper – Home
Amazing web app for creating patterns/tilings
6 weeks ago
Michigan’s MiDAS Unemployment System: Algorithm Alchemy Created Lead, Not Gold - IEEE Spectrum
A case study into how to automate false accusations of fraud for more than 34,000 unemployed people
7 weeks ago
Becoming a World-Class Tester
A tester is somebody who knows that things can be different.

That is Jerry Weinberg’s description of a world-class tester, which reminds us that testing is about critical thinking and imagination. It is about not believing anything at face value, but maintaining an investigative mindset.

Testing is questioning a product in order to evaluate it.

That definition of the activity of software testing, from James Bach, includes one of the most important aspects of testing: information discovery and delivery. Software testing is about revealing the unknown.

If quality means value to some person who matters (as Weinberg has defined it), then testing is in the service of discovering anything that threatens this value. To provide this service, a tester needs to be able to do a variety of things, such as asking good questions, commenting on requirements, and interacting with a product in such a way that it yields information that’s useful.

My definition of a world-class tester is a person who is able to rapidly discover highly relevant information about the product, who makes the most use of any resource that is available to him/her, and who has the respect of people involved in a project. It is a person who can be trusted.

So, given these definitions, what skill and mindset dimensions should you invest in to become a world-class tester? What areas do you need to be good at in order to avoid being discredited as a “mouse-click-monkey”?

Technical proficiency
Investigative curiosity
Observational skills
Communication skills
Writing skills and bug advocacy
Domain knowledge
Willingness to learn
Social skills
7 weeks ago
the four-hour tester
There are many ways to learn testing. The 4-hour tester is a way that focuses on simple exercises that take at most one hour to complete. The format is quite simple: briefing, exercise, evaluation.
Why don't you try one right now?
Test design
Note taking
Bug reporting
softwaredev  testing 
7 weeks ago
Learn the hack - Stop the attack
WebGoat is a deliberately insecure application that allows interested developers just like you to test vulnerabilities commonly found in Java-based applications that use common and popular open source components.

Web application security is difficult to learn and practice. Not many people have full blown web applications like online book stores or online banks that can be used to scan for vulnerabilities. In addition, security professionals frequently need to test tools against a platform known to be vulnerable to ensure that they perform as advertised. All of this needs to happen in a safe and legal environment.

Even if your intentions are good, we believe you should never attempt to find vulnerabilities without permission. The primary goal of the WebGoat project is simple: create a de-facto interactive teaching environment for web application security. In the future, the project team hopes to extend WebGoat into becoming a security benchmarking platform and a Java-based Web site Honeypot.
security  practice 
7 weeks ago
Web Application Exploits and Defenses
Want to beat the hackers at their own game?
Learn how hackers find security vulnerabilities!
Learn how hackers exploit web applications!
Learn how to stop them!
This codelab shows how web application vulnerabilities can be exploited and how to defend against these attacks. The best way to learn things is by doing, so you'll get a chance to do some real penetration testing, actually exploiting a real application. Specifically, you'll learn the following:

How an application can be attacked using common web security vulnerabilities, like cross-site scripting vulnerabilities (XSS) and cross-site request forgery (XSRF).
How to find, fix, and avoid these common vulnerabilities and other bugs that have a security impact, such as denial-of-service, information disclosure, or remote code execution.
To get the most out of this lab, you should have some familiarity with how a web application works (e.g., general knowledge of HTML, templates, cookies, AJAX, etc.).
google  security  practice 
7 weeks ago
Ironies of automation – the morning paper
Originally published in this form in 1983, its lessons are just as relevant today as they were then.

The central irony (‘combination of circumstances, the result of which is the direct opposite of what might be expected’) referred to in this paper is that the more we automate, and the more sophisticated we make that automation, the more we become dependent on a highly skilled human operator.
automation  future 
10 weeks ago
Fringe Festival guide to accessible events
events  accessibility 
december 2019
11 Automated Testing Best Practices (And Bonus Red Flags)
Best Practice: Tests Should Be Atomic
Best Practice: Follow Page Object Pattern
Best Practice: Tests should be fast
Anti-Pattern: UI tests should not expose interactions with web elements
Anti-Pattern: Assuming that more UI automation is better
Anti-Pattern: Using complicated data store such as Excel
Anti-Pattern: Trying to use UI automation to replace manual testing
Anti-Pattern: Mixing functional automation with performance testing
Anti-Pattern: Keyword Driven Testing
Anti-Pattern: Giant BDD Tests
Anti-Pattern: Imperative BDD Tests
Anti-Pattern: Large Classes
december 2019
« earlier      
per page:    204080120160

Copy this bookmark:

to read