A Mutable Log

A blog by Devendra Tewari


Project maintained by tewarid Hosted on GitHub Pages — Theme by mattgraham

hello, world!

Nice to have you here!

This is your host, Devendra Tewari. I live in the subtropical city of Aveiro, Portugal, and am a full-time senior staff software engineer at CESAR since 2002 (with a brief pause in 2008).

You can navigate posts by topic or use Google Search.

2023

Picamera2 performance

2022

Use I2C bus with the 38-pin ESP-32 Module

User space SPI communication in Linux

Use SPI bus with the Raspberry Pi Pico

Use SPI bus with the 38-pin ESP-32 Module

2021

Create a Docker container to build a Linux system using Yocto Project

2020

How Google Home iOS app configures Wi-Fi on a new smart speaker

Create a Windows icon file using ImageMagick

Analyze Bluetooth protocols on Windows using Wireshark

Extend UWP app views into titlebar

Self-sign UWP appx or appxbundle for side-loading

Convert SVG icons to PNG format

Create UWP template app assets using ImageMagick

Create a Windows Device Metadata icon file using ImageMagick

2019

Restrict access to a resource using AutoResetEvent

Use semistandard to lint TypeScript code

Build .NET containers using multistage Dockerfile

UDP testing and sniffing on Linux

Port forwarding in Hyper-V

Developing with Kafka using Docker

Extract all tabular data from multipart mime documents

Docker Compose to run Node-RED and Mosquitto

Installing and configuring the Mosquitto MQTT broker

Comparison of MQTT Brokers

Jupyter Notebook with Docker and JupyterHub

MQTT and AMQP 1.0 interoperability in RabbitMQ

Generate Azure IoT Hub SAS token for MQTT protocol authentication

MQTT with RabbitMQ and Node-RED

MQTT in Node-RED with Docker

2018

Pandoc Lua filter to convert Math block type

DevOps WISDOM

Minimal GitLab CI config to build Visual Studio solution

Improving query performance in Entity Framework

Logging to Syslog using NLog

Active Directory domain server using Samba 4

Clone multiple GitLab projects the hard way

Authenticate credentials in C# using LDAP

Query DNS records using PowerShell

A WSDL with alternate schema for extensibility

Status of popular markup language standards

Using Python to analyze data in a PDF file

Git clients for iOS

Mocking SOAP services

Quickly create Markdown table in Visual Studio Code

Regression test a Wireshark dissector using tshark

Whither Skype

GitHub Pages

Windows-1252 charset codes

Useful Docker commands

Use eisvogel custom template with Pandoc

Create valid self-signed certificates using OpenSSL

Windows IoT Core application using Xamarin Forms

2017

ONC RPC version 2 over TCP/IP

Capture loopback communication on Windows

Word to Markdown using Pandoc

.NET Core class library solution from scratch

Highlighting problems in Lua dissectors

GRASP SOLID for effective object-oriented programming

Living the past from memory

SSL/TLS decryption in Wireshark

Export private key in pfx or p12 file to pem format

Randomly shuffle lines in a file

Octave CLI with AquaTerm on macOS

Use JavaFX in a Swing or console app

Run Node.js in a Docker container

Wireshark dissector in Lua for custom protocol over WebSockets

Self-signed code signing certificates

Retrieve OAuth 2.0 authorization code using JavaFX WebView

JSON syntax highlighting in ScintillaNET

Run Buildroot in a Docker Container

Analyzing iBeacon traffic using nRF BLE Sniffer

NXP NTAG I2C NFC Forum tag with Bus Pirate

I2C with Bus Pirate v4.0 on Windows 10

2016

Bluetooth serial client using Windows socket API

Bluetooth serial server using Windows socket API

View USB device descriptors on Windows

Inquire Bluetooth service record on Windows

Bluetooth SPP with Android

USB Serial firmware for ATmega32U4

OAUTH 2 with google-oauth-java-client

Arduino USB Serial firmware from scratch

Arduino USB DFU firmware from scratch

Unbricking a JTAGICE3

USB Descriptors of Arduino Uno

Arduino Uno bootloader programming using JTAGICE mkII

PCB Design Software

Hello World with .NET Core

git branch

Getting Started with the ESP-03

Run homebridge as a service upon reboot

Make things smart with HomeKit and Raspberry Pi

Create and use NuGet packages

HTTP/S capture using mitmproxy

Tackling OAuth 2.0 in iOS 9 with Swift 2

Handle custom CAs in iOS app

Dealing with .NET’s messy WebBrowser control

Tackling OAuth 2.0 in an Android app

Send content using PUT method

Solving a Puzzle with JavaScript

Specify a different ssh key for each host

2015

Join multi-user chat with node-xmpp-client

WeightLE

PhotoMath

History of file in Git repo

Simple message dispatcher using event delegates

Using hints inside text fields

JSON-RPC

Manipulating JSON using Json.NET

Create XML documents in LINQ

WebSockets with WCF

A note on Hungarian notation

Generating a unique ID for a Windows PC

git stash

git tag

USB bulk data transfer

git archive

Color depth

The box lasts longer

Comparison of Logic Analyzers

Folders consuming most disk space using du

Virtual serial port redirection using socat

Physical serial port redirection

Enable Ubuntu Unity

Lumia 630

Listening to FM radio using RTL-SDR

Why Apple should do more

Moto E

Recursively copy to output in msbuild project

Comparison of Personal Finance Apps

Windows 10 Technical Preview

2014

USB Serial

USB CDC ACM driver for Windows

Common audio format between Android and iOS

Enable IP multicast routing in Linux kernel

Mono .NET runtime on Raspberry Pi with Buildroot

IP multicasting

Enable Debugging on Raspberry Pi with Buildroot

Wireless Router with Buildroot and Raspberry Pi

Getting Started with Bluetooth Low Energy by Kevin Townsend et al; O’Reilly Media

Bluetooth on Raspberry Pi with Buildroot

Python on Raspberry Pi with Buildroot

Customize Buildroot to build bluez-tools

Wireless on Raspberry Pi with Buildroot

Moto G 4G screen gone bad in less than a month of use

Embedded Linux system for BeagleBoard-xM with Yocto Project

Embedded Linux system for Raspberry Pi with Yocto Project

Network Connection Bridging on Raspberry Pi with Buildroot

Linux NAT routing on Raspberry Pi with Buildroot

Handling variable number of arguments in Lua

Upgrade to Ubuntu 14.04 on Parallels Desktop 9

Integer division and timer resolution

Node.js on Raspberry Pi with Buildroot

SparkFun FTDI Basic with Raspberry Pi

What woes Samsung?

Embedded Linux system for Raspberry Pi with Buildroot

Packaging source code using Grunt

Lists and sorting in .NET

Debug Logging in .NET

Smartphones on busses in Recife

Memory alignment problems in AVR32

Programming an Arduino using BlocklyDuino

Move a form without borders in C#

Getting started with Corona SDK

Lua dofile and globals

Learning Android by Marko Gargenta and Masumi Nakamura; O’Reilly Media

Why not to complain through social media

Gifting e-books

Common calls in a communications API

Getting GPS coordinates from a picture

Industrial Engineering

Dual SIM LG L40 (D175F) with Android KitKat

VoIP calls from the browser using WebRTC and FreeSWITCH

Migrating to a new version of AVR-GCC toolchain

Upgrading to a newer version of Atmel Software Framework

FreeRTOS task control block and stack in AVR32

Measuring data rate of ASF USB Device CDC example

async await

Scripting for the .NET CLR

Emulating Bluetooth LE Peripheral on Mac OS X Mavericks

Case for Raspberry Pi printed with MakerBot Replicator 2

Prototyping a PCB using LPKF ProtoMat S62

Virtual serial port redirection on Windows 8

Mac OS X tips

The Linux Programming Interface by Michael Kerrisk; O’Reilly Media

Driving an LED with a Raspberry Pi

2013

Silhouette Cameo

iOS 7 Programming Fundamentals by Matt Neuburg; O’Reilly Media

A Kindle for your eyes

Read ICMP packets in C# using raw sockets

iPad Mini with Retina display

OS X Mavericks

Is this how your circuits arrive?

Wireshark migrating to Qt

PyCharm 3.0 Community Edition

Visual Micro is an alternative IDE for Arduino

Fritzing to design and prototype electronics circuits

Working with multiple git remotes

Install python and pip on Mac OS X

Using ping to determine MTU size

Learning Python by Mark Lutz; O’Reilly Media

Python Cookbook by David Beazley, Brian K. Jones; O’Reilly Media

Graph Databases by Ian Robinson, Jim Webber, Emil Eifrem; O’Reilly Media

Getting started with Apache Cordova

Handling TCP keep-alive

MacBook Pro with Retina display

Cross-platform mobile app development frameworks

Android on BeagleBoard-xM

tar with different owner and group

Bluetooth Low Energy

VMware Fusion vs Parallels Desktop 8

RunOutputFileVerifyTask compile task in Atmel Studio 6.1

Calculate Intel HEX file checksum using Windows Calculator

Tunnelblick OpenVPN client

Android Studio

The SIM card flaw and me

Serving static web content using WCF

Customize how objects are serialized to JSON in a WCF service

Thinking in shades of gray

Cleaner JSON from a WCF service with webHttp behavior

User-Centered Design by Travis Lowdermilk; O’Reilly Media

winusbnet patch to handle language id

Office 365 Home Premium a tremendous success?

Problem of Windows 8 is its positioning

WWDC 2013

Will threads become a relic?

Expensive test equipment with unverified circuit

RNDIS driver for Mac OS X

What I need in my next laptop

File virtualization in Windows

IP fowarding

Free with subscription bought over the internet model

Dealing with segmented data in a Wireshark dissector written in Lua

Incremental upgrade of an embedded relational database

Tips for Portuguese speakers writing English

Motorola Xoom with a physical Keyboard and Mouse

21st Century C by Ben Klemens; O’Reilly Media

Debug logging in C#

What orientation do you read in?

Table manipulation in Lua

SSH and SFTP on the iPad

Logging to Wireshark’s Lua console

Wireshark and Lua bitwise operations

Operator precedence

Apps should support multiple accounts

Apps that cache

Medium and information

DIV with scroll

PPI calculation

Survey of book reading apps for the iPad

Implement a color picker using ComboBox

What my iPad needs

Perception of innovation in Windows

Apple needs a larger phone

Some tips for drawing diagrams using custom controls

xcopy

Where to buy tech e-books

Reset selected option in a dynamically created select tag

Prepare HTML document for printing

jQuery html() does not retain form field values input by user

2012

Merge pdf files using ghostscript

Day ends

Access control

Searching a directed graph

Dealing with technology changes

Use EA Origin to download games you own

Siloed thinking with use cases

360 degrees

Reset password in Ubuntu

Applications that communicate

iPad Mini

Learning Node by Shelley Powers; O’Reilly Media

Windows 8 Pro

Node.js and Sqlite3

JSON and associative arrays

Adding lots of source files to a WiX installer script

Microsoft Visual Studio Express 2012 for Web

Transfer lots of data between PCs

C# Custom Attributes Example

GitHub client for Windows

App Store

What’s up with the Flash plugin in Chrome?

Bad news

Skeuomorphism

Applying the observer pattern for protocol parsing and handling

It’s that day again

iPhone 5 is an evolution, not revolution

Piping information within the browser

Migrating an AVR32 Studio project to Atmel Studio 6

Binary serialization for JavaScript objects

A matter of opinion

Apple vs Samsung

Our most unique trait

Exchanging binary data in the absence of ArrayBuffer

Plant that responds to touch

JavaScript style guides

Using custom attributes

Avoiding HTML5 canvas

Dragging a group containing image and shapes using kineticjs

TCP socket connection from the web browser

Object-oriented programming in JavaScript

Falling out of love with the iPhone?

Broadband not keeping up with computing and storage?

Some other things I have learnt about programming

Instant Carpool

Embedding the Browser

JetBrains WebStorm

Have Nintendo 3DS in Brazil, no Netflix for you

Obtain dissection data using Field and FieldInfo

What Apple did right with the iPhone

Businesses disrupted by smartphones

IPv4 Network Calculator

A simple configuration mechanism in Node.js

Node.js client to server with socket.io

Broadcast to all sockets

Xcode

Awesome things about Mac OS X

Enable support for RNDIS Ethernet devices in the Linux kernel

Access USB device on Mac OS X using I/O Kit

Linux USB ethernet gadget driver for RNDIS connection establishment

Compare two PowerPoint presentations

Poor batteries

Install Mac OS X Leopard in VirtualBox for Mac

Kindle vs iBooks

Communicate with USB device in C# using LibUsbDotNet

First time on Mac OS X

WolframAlpha for electronics nerds

Microsoft.NET vs Java on portability

Custom USB driver and app using WinUSB and C#

Install Firefox in the Android 4.0 emulator

Coding on the Smartphone

Escalation from function to cloud

Playing with processing.js using sketchpad.cc

Use the Motorola Symbol CS3070 barcode scanner on a PC

E-books need to be cheaper

Not just phones any more

Brazilian Identity

I’ll buy a Kindle Fire

FFmpeg on Windows

Unlocked iPhone 3GS/4/4S pricing

2011

Spiritual dream?

iOS Tips and Tricks

Search for a personal finance app

Convert WAV to PCM using FFmpeg

C language style guides

FreeRTOS

Send output to X clipboard from the command line

Play WebM streamed over HTTP using GStreamer’s souphttpsrc

Travel visa

Read and write raw PCM using GStreamer

What happens before main in AVR32 UC3

Random numbers and Math on AVR32

Edit binary files in Linux

netcat

Netflix launches in Brazil

Embedded Linux system for PandaBoard with Buildroot

Sniff USB bus on Linux

Google’s acquisition of Motorola Mobility

Link dynamic pads of demuxer

Port 443 (HTTPS)

A TCP relay mechanism with Node.js

WebKit/GTK+ on Ubuntu

Ubuntu package management from the command line

Video streaming using jpeg encoding

Execute code from SRAM on AVR32

Write Ubuntu image file to SD card on Windows

How taxes in Brazil hamper innovation

Data applications on MOTOTRBO radios

Why use python?

idioCyncracies - operator precedence

Using the fdsink element of GStreamer

Path to toolchain binaries in AVR32 Studio

GStreamer pipeline with Tee

Testing Ajax browser application in Chrome without a web server

HP sells Visual Collaboration business; Google announces WebRTC

Axigen mail server for Windows

Frustrated with gestural interfaces?

Convert a bin file to hex

Points to remember regarding C pointers

The Architecture of Open Source Applications

Play ogg audio using the Hello World example of GStreamer

A 7 inch tablet is a compelling device

Angry Birds for Chrome is a milestone for HTML 5

Microsoft buys Skype, advice for Google

Access IMAP server from the command line using OpenSSL

Using shared folders in VirtualBox

Audio input in Ubuntu in VirtualBox

The power of oversight based on continuous forecasting

Stream WebM vorbis audio using GStreamer over TCP

Stream live WebM video to browser using Node.js and GStreamer

Stream WebM file to Chrome using Node.js

Custom dissector for ethertype link layer and IP protocol

Use Tile Studio to construct tiled maps

Message exchange between Chrome and Flumotion to establish live WebM streaming

Improving application performance

Web chat using Strophe and Apache Vysper

Stream WebM using GStreamer over TCP

Stream WebM video over RTP with GStreamer

A simple TCP proxy in Node.js

Hanuman for my western friends

Microsoft Loopback Adapter

Node.js to serve static content and as an http proxy

Web chat using Strophe and Openfire

Build a custom embedded Linux system using Buildroot

Playing raw PCM audio using Audacity

Convert ASCII Hex text to binary

Points to remember when using p/invoke from C#

Kindle store books become pricier

Immersive content for the Browser

Understanding IP subnets and routing

Read a file in C++

Configuring a device using an external configuration file

Cost of school textbooks in Brazil

Consuming WCF services using JQuery JSON

Insert a handwritten signature in Microsoft Word 2007

Log all CLR exceptions using WinDbg

USB device information using WMI

Network throughput ballpark using Ping

Apple app store favorites

Auto scrolling to the end of a Gtk.NodeView

.NET volatile keyword

On GTK# and InvokeRequired

Favorite discourses from I Am That

Next Windows will support ARM SoCs

Binary serialization in .NET using reflection

Add bitfield to dissection tree

2010

Information in a PCAP file with a single TCP/IP packet

Information in a PCAP file with a single UDP packet

Know Thyself

Using a PC based Logic Analyzer

Unusual uses of spreadsheets

Create a Wireshark dissector in Lua

Poor quality starts at the base

Test robustness of your networked applications using netem

MeeGo - an alternative to Android?

The holy trinity of sustainability or the CMD cycle

Publish a live screen capture

First impressions with Lua

SQL Server deadlock

Setup a free VoIP solution using FreeSWITCH and X-Lite

Post-mortem debugging of .NET applications using WinDbg

Importing external data - a tale of multiple approaches

Check if C# object is an array and iterate over it

Triangulated irregular network or TIN

Integrating C# app with Moodle 2

Integrating a C# app with Moodle using XML-RPC

Add IIS Smooth Streaming support to Moodle’s Multimedia Plugins Filter

A new car experience - costs in Brazil

2007

A social network paradigm for information presentation

2006

ARM Development

2005

Key security concerns

2004

Producing PDF documents with XSLT and XSL:FO

Hibernate 2

Integrating an LDAP Directory in a Java Application

Integrating Flash and Java

2003

Perspective on software

2002

Criteria to evaluate a good software course

Status of popular markup language standards

Driving Apache Velocity template engine using XML

Secure file transmission using asymmetric cryptography

2001

The purpose of quality techniques

1996

DOS Test Questions

ANSI C Test Questions