-
Feb 20, 2023
•
Nazmul Idris
This tutorial is a guide to parsing with nom. It covers the basics of parsing and how to use nom
to parse a string into a data structure. We will cover a variety of different examples ranging
from parsing simple CSS like syntax to a full blown Markdown parser.
-
Dec 11, 2022
•
Nadia Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using TypeScript. Information
is depicted visually using diagrams and code snippets. This article
may be useful if you are trying to get more fluency
in TypeScript or need a refresher to do interview prep for software
engineering roles.
-
Nov 21, 2022
•
Nadia Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using TypeScript. Information
is depicted visually using diagrams and code snippets. This article
may be useful if you are trying to get more fluency
in TypeScript or need a refresher to do interview prep for software
engineering roles.
-
Aug 4, 2022
•
Nazmul Idris
Procedural macros are a way for you to extend the Rust compiler and provide plugins
that you can use to extend the language. They allow to create your own DSL (domain
specific language). This article goes into the details of creating a simple DSL to
mimic CSS syntax but in Rust, for a TUI app framework.
-
Mar 30, 2022
•
Nazmul Idris
Procedural macros are a way for you to extend the Rust compiler and provide plugins
that you can use to extend the language. They allow you to reduce the need to write
manual boilerplate code, and even allow you to create your own DSL (domain specific
language). This article goes into the details of creating the 3 kinds of procedural
macros in Rust.
-
Mar 12, 2022
•
Nazmul Idris
This article illustrates how we can build a Redux library in Rust. This library is thread safe and
asynchronous (using Tokio). The middleware and subscribers will be run in parallel. But the reducer
functions will be run in sequence.
-
Mar 12, 2022
•
Nazmul Idris
This article illustrates how to write concurrent and parallel code in Rust using Tokio. The
pedagogical example we will use is building an asynchronous implementation of a middleware runner
that you might find in a Redux store.
-
Mar 2, 2022
•
Nazmul Idris
This article illustrates how we can build a CLI app in Rust that is a very basic implementation of
grep. This app will have 2 modes of operation: piping lines in from `stdin` and searching them, and
reading a file and searching thru it. The output of the program will be lines that match the search
term w/ the term being highlighted. Topics like `stdin` manipulation in a terminal, detecting when
the terminal is in `tty` mode vs `piped` mode, doing simple file I/O, creating non consuming
builders, and managing `Result`s, along w/ building a simple CLI interface are covered in this
article.
-
Feb 24, 2022
•
Nazmul Idris
This article illustrates how we can build a non-binary tree in Rust using various approaches until
we end up with a version that is thread safe and supports parallel tree walking as well. Topics
like interior mutability, sharing ownership, weak and strong references, custom traits for
polymorphic behavior, are covered in this article.
-
Nov 25, 2021
•
Nazmul Idris
This article is reference handbook for using Ink v3.2.0 (with TypeScript and React) components
to create CLI apps.
IDEA Ultimate / Webstorm project files are provided.
-
Nov 5, 2021
•
Nazmul Idris
This article is an advanced guide to using Ink v3.2.0 (with TypeScript and React) to create CLI apps.
IDEA Ultimate / Webstorm project files are provided.
-
Nov 4, 2021
•
Nazmul Idris
This article is an introduction to using Ink v3.2.0 (with TypeScript and React) to create CLI apps.
IDEA Ultimate / Webstorm project files are provided.
-
Oct 19, 2021
•
Nazmul Idris
This handbook will take you thru using function components in React and Redux (using TypeScript)
and writing tests for them (using react-testing-library). IDEA Ultimate / Webstorm project files
are provided. This handbook is written as a reference. You can easily jump to the section that
is relevant to you or read them in any order that you like.
-
Oct 19, 2021
•
Nazmul Idris
This handbook is a reference guide on how to understand and use CSS to build web applications that
incorporate responsive design using Grid, Flexbox, and media queries. IDEA Ultimate / Webstorm
project files are provided. This handbook is written as a reference. You can easily jump to the
section that is relevant to you or read them in any order that you like.
-
Jul 2, 2021
•
Nazmul Idris
This handbook will use TypeScript to take you thru using Node.js. IDEA Ultimate / Webstorm project
files are provided. This handbook is written as a reference. You can easily jump to the section
that is relevant to you or read them in any order that you like.
-
Apr 6, 2021
•
Nazmul Idris
Review of the Dygma Raise keyboard and Bazecor software from a programmer's perspective
-
Mar 13, 2021
•
Nazmul Idris
Advanced guide to creating JetBrains Platform plugins: VFS, PSI, Kotlin UI DSL, Dialog, Tool window, List,
Swing UI and layout managers, ConsoleView, LineMarker. This is a companion of the Introduction to creating IntelliJ
IDEA plugins tutorial.
-
Mar 9, 2021
•
Nazmul Idris
Review of the Ultimate Hacking Keyboard v1, Drop Alt Captain, and Mistel BAROCCO MD770 keyboards from a
programmer's perspective
-
Mar 9, 2021
•
Nazmul Idris
Linux laptop and desktop for software engineers hardware review - Dell Precision 3440 2020, Dell XPS 13 Developer
Edition 2021, ThinkPad P15, ThinkPad X1 Carbon Gen 8
-
Mar 4, 2021
•
Nazmul Idris
Learn how to customize your Ubuntu UI with fontconfig, Nerd Fonts, adding gestures, customizing Terminal, and using
Gnome extensions for Theming and Window tiling. And IDEA theming.
-
Feb 6, 2021
•
Nazmul Idris
Learn how to publish a Kotlin library as a gradle dependency to JitPack or GitHub Package Registry
-
Jan 19, 2021
•
Nazmul Idris
Short manual on how to program using fish shell's scripting language using lots of useful examples ranging from simple
to complex
-
Nov 21, 2020
•
Nazmul Idris
Introduction to creating plugins using JetBrains Plugin SDK covering these topics: PicoContainer,
Services, plugin.xml, actions, extension points, extensions, testing, and the intellij-plugin-verifier.
This is a companion of the Advanced guide to creating IntelliJ IDEA plugins.
-
Jul 15, 2020
•
Nazmul Idris
This tutorial covers the potential pitfalls of using non-capturing lambdas and using use anonymous classes to
implement SAM / functional interfaces instead
-
Jul 11, 2020
•
Nazmul Idris
Introduction to Kotlin Annotation Processing on Android and how to create a static index of generated classes and
interfaces (without using reflection or classgraphs)
-
Apr 5, 2020
•
Nazmul Idris
This tutorial is an introduction to Kotlin internal DSLs using examples
-
Dec 2, 2019
•
Nazmul Idris
This tutorial is an early exploration into Java Project Loom (preview technology)
-
Aug 25, 2019
•
Nadia Idris
This article is a pragmatic guide for developers and designers who want to learn how to build responsive web
applications
-
Jul 6, 2019
•
Nazmul Idris
This tutorial showcases a starter project for people who want to use TypeScript
w/ a stater project already setup to deploy to browsers using Webpack 4, and
w/ testing infrastructure configured (via Jasmine and Karma)
-
May 11, 2019
•
Nazmul Idris
This tutorial showcases the differences between using Java and Kotlin in
Android development
-
Mar 30, 2019
•
Nazmul Idris
This tutorial shows how one might schedule ordered tasks that need to be
executed when a particular state is reached. However, these states
might be reached in any order.
-
Oct 21, 2018
•
Nazmul Idris
This tutorial is an exploration of doing test driven development using Kotlin. This tutorial
focuses on JUnit, MockK, AssertJ, and Roboelectric for Android.
-
Oct 21, 2018
•
Nazmul Idris
This tutorial is an exploration of Kotlin sealed classes and how they can be used to represent
state elegantly and robustly
-
Oct 21, 2018
•
Nazmul Idris
This tutorial is an exploration of extension functions and higher order functions in Kotlin by
example
-
Oct 21, 2018
•
Nazmul Idris
This tutorial is an introduction to Dagger 2 with a simple example of using it in Java
-
Oct 21, 2018
•
Nazmul Idris
This tutorial is and in-depth exploration of Dagger 2 using Java and Android
-
Oct 21, 2018
•
Nazmul Idris
This tutorial is an advanced exploration of Dagger 2 using Subcomponents and custom scopes.
Android and Kotlin are used to demonstrate the use of these advanced Dagger 2 capabilities.
-
Aug 22, 2018
•
Nazmul Idris
This tutorial serves as a deeper dive into Vue, along with Vuetify (a Material
Design library for Vue), Webpack, Electron, and vue-cli
-
Aug 16, 2018
•
Nazmul Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using Kotlin.
This project is useful if you are trying to get more fluency
in Kotlin or need a refresher to do interview prep for software
engineering roles.
-
Aug 16, 2018
•
Nazmul Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using Kotlin.
This project is useful if you are trying to get more fluency
in Kotlin or need a refresher to do interview prep for software
engineering roles.
-
Aug 16, 2018
•
Nazmul Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using Kotlin.
This project is useful if you are trying to get more fluency
in Kotlin or need a refresher to do interview prep for software
engineering roles.
-
Aug 16, 2018
•
Nazmul Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using Kotlin.
This project is useful if you are trying to get more fluency
in Kotlin or need a refresher to do interview prep for software
engineering roles.
-
Aug 16, 2018
•
Nazmul Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using Kotlin.
This project is useful if you are trying to get more fluency
in Kotlin or need a refresher to do interview prep for software
engineering roles.
-
Aug 16, 2018
•
Nazmul Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using Kotlin.
This project is useful if you are trying to get more fluency
in Kotlin or need a refresher to do interview prep for software
engineering roles.
-
Aug 16, 2018
•
Nazmul Idris
This tutorial is part of a collection of tutorials on basic data
structures and algorithms that are created using Kotlin.
This project is useful if you are trying to get more fluency
in Kotlin or need a refresher to do interview prep for software
engineering roles.
-
Aug 15, 2018
•
Nazmul Idris
Vue is a competitor to React. This tutorial serves as a brief introduction
to Vue, and getting started with it without using Webpack or Babel.
-
Jul 21, 2018
•
Nadia Idris
In this article, I am going to do a deep dive into Android screen density and
provide some guidance on how to design for such a huge diversity of screen densities.
Having a firm grasp of this is critical in being able to create wireframes and designs
in Sketch that can be implemented on actual devices (phones, tablets, laptops, TVs,
wearables).
-
Feb 14, 2018
•
Nazmul Idris
A short story about choosing to win
-
Dec 7, 2017
•
Nazmul Idris
The difficulties of dealing with things like configuration changes when
rotating a screen, and sharing app state data between fragments and activities
are a thing of the past. Architecture Components puts the magic back into Android
development! 🎩✨
-
Dec 2, 2017
•
Nazmul Idris
As of Android API level 27, there are too many ways to load custom fonts
in Android apps. This article will show you how to use downloadable fonts (from
Google Fonts) using the latest support library. 🖋
-
Nov 15, 2017
•
Nadia Idris
The goal of this series of articles is to help you to learn Flexbox in a
fun interactive way and then help you to build simple real life examples
using Flexbox 📦
-
Nov 15, 2017
•
Nadia Idris
This is a second article on 2 part series. In this article you will learn
how to build a simple example responsive navigation design using Flexbox and media
queries. 📦
-
Jul 29, 2017
•
Nazmul Idris
This article is an introduction on how to use Android MediaPlayer in your
apps to playback audio 🎵
-
Jul 19, 2017
•
Nazmul Idris
Tutorial and code on GitHub that demonstrates the use of ya-csv and inquirer
to load CSV files from node.js and convert them into JSON files, to generate sample
data for other apps.
-
Jul 12, 2017
•
Nazmul Idris
Pro Tip on automatically updating copyright strings in your JetBrains based IDEs (including Android Studio)
-
Jul 12, 2017
•
Nazmul Idris
Pro Tip on setting environment variables for ANDROID_HOME and JAVA_HOME when
you setup your development environment on a new machine
-
Jul 10, 2017
•
Nazmul Idris
This article is a deep dive into Android Services. Learn all about started
services, bound services, and bound and started services. With source code examples
and a sample app.
-
May 25, 2017
•
Nazmul Idris
This tutorial is a deep dive in the use of Redux in React Native projects.
It will show you how to architect apps that rely on external web services,
and Firebase. The code for this tutorial is on GitHub.
-
Apr 28, 2017
•
Nazmul Idris
Design engineering is becoming a thing. Airbnb has created something amazing
- react-sketchapp. This library can generate Sketch artifacts using Javascript and
React as a starting point. This article will show you what it is, who this is for,
and why it matters.
-
Apr 26, 2017
•
Nazmul Idris
This tutorial is a deep dive of Flexbox layout and FlatList. It will show
you how to take a wireframe and compose React Native components out of it. The code
for this tutorial is on GitHub.
-
Apr 15, 2017
•
Nazmul Idris
This tutorial is a deep dive of React Navigation, which is the way to do
in app navigation. It also goes into the best practices for styling your app and
how to collaborate with designers for styling. The code for this tutorial is in
GitHub.
-
Mar 31, 2017
•
Nazmul Idris
This tutorial will show you how to get started quickly with React Native
for mobile app development on Android and iOS. It focuses on Flexbox layouts, Navigation,
and cross platform considerations. The code for this tutorials is in GitHub.
-
Jan 27, 2017
•
Nazmul Idris
Redux and React are things that are normally associated with web development.
Redux is a beautiful design pattern that can help with any application, even native
ones! I used Firebase in order to do cross platform data synchronization across
web and mobile clients. I also used Firebase auth and Material Design to craft a
real-world app. The code for this tutorial is in GitHub.
-
Oct 12, 2016
•
Nazmul Idris
This tutorial will show you how to use Firebase to to build user presence
tracking into web apps. The code for this tutorial is in GitHub.
-
Oct 7, 2016
•
Nazmul Idris
The purpose of this tutorial is to serve as a starting point for a real world
React, Redux, and Firebase example. The starter project is on GitHub.
-
Oct 2, 2016
•
Nazmul Idris
The purpose of this tutorial is to serve as a starting point for a real world
React and Firebase example. The starter project is on GitHub.
-
Sep 3, 2016
•
Nazmul Idris
A short story about making choices
-
Feb 25, 2016
•
Nazmul Idris
When you know something will end, what do you do?
-
Jan 19, 2016
•
Nazmul Idris
The importance of getting this right from the start
-
Jan 6, 2016
•
Nazmul Idris
Letting go of suffering
-
Dec 30, 2015
•
Nazmul Idris
Don’t try, just play!
-
Nov 8, 2015
•
Nazmul Idris
You are what you fight for
-
Nov 8, 2015
•
Nazmul Idris
How to keep learning
-
Nov 5, 2015
•
Nazmul Idris
How I code and how I live
-
Nov 3, 2015
•
Nazmul Idris
What it means to "just be"
-
Oct 31, 2015
•
Nazmul Idris
How I got everything wrong about everything, then learned to see the silver linings everyday
-
Apr 13, 2011
•
Nazmul Idris
Overall, the API is pretty straightforward to use, assuming that you are
familiar with asynchronous processing in the first place. However, if you are not
familiar with asynchronous processing, then this business of callbacks can be quite
confusing and daunting. Additionally Tomcat 7 and Servlet API 3.0 make it easier
to configure servlets using annotations. There are other cool features in 3.0 that
I haven’t covered in this tutorial, like loading servlets programmatically.
-
Oct 20, 2010
•
Nazmul Idris
The best way to handle GPS is to use the “network” or “passive” provider
first, and then fallback on “gps”, and depending on the task, switch between providers.
This covers all cases, and provides a lowest common denominator service (in the
worst case) and great service (in the best case).
-
Oct 12, 2010
•
Nazmul Idris
Android applications run in a native Linux process, in the underlying Linux
OS. This process houses activities (screens), widgets, and services (non visual
long running application parts). When working with Android apps, it is important
to remember to keep long running code running in threads that are not tied to the
main thread or event dispatch thread, in order to get an “application not responding”
error. A common mistake that is made is long running tasks are performed in this
EDT/main thread, and this leads to lots of application failures.
-
Mar 6, 2009
•
Nazmul Idris
I've been working with various object encoding schemes to get information
transferred over the network between services and mobile apps running on Android
and BlackBerry. On Android, I figured I would try using Java object serialization,
and that works some of the time, and not for anything complex. I wish the object
serialization and deserialization mechanism in GWT would be ported over to all these
mobile environments, but I digress. This tutorial outlines the use of JSON for this
purpose.
-
Aug 5, 2008
•
Nazmul Idris
This tutorial is an introduction to the built in animation frameworks that
are part of the Android UI library. Without writing any animation/drawing code,
you can do 2 types of animations - layout transitions that affect ViewGroups, and
sequences inside a View. You can also do frame by frame animation, but this tutorial
will not cover that. The basics covered here affect layout transitions, and animation
of a View itself, using tweening animation, which includes each of the following
effects (or any combination) - Alpha, Rotate, Scale, and Translate.
-
Aug 4, 2008
•
Nazmul Idris
This tutorial will show you how to use ListView to display selectable lists
of non trivial data, using complex cell renderers. The ListView is a selectable
list. You can attach a variety of data models to it and load different
display layouts (cell renderers). You can create your own model and cell renderer.
This model-view combo is called an Adapter. In this tutorial, I will
show you how to extend create your own Adapter from scratch, and create
your own cell renderers from scratch as well.
-
Aug 4, 2008
•
Nazmul Idris
This tutorial shows you how to use the LinearLayout container (using Java
code, not XML markup), which is the simplest layout mechanism available on Android.
If you're familiar with Swing's BoxLayout then you will have a good idea of what
this container has to offer. Linear layouts are really simple... you can add
components horizontally or vertically to a ‘bag’ or ‘box’.
-
Jul 31, 2008
•
Nazmul Idris
This tutorial will show you how to use Android's theme-ing capabilities.
You can set background color, image, etc. on widgets, dialogs, and activities.
-
Jul 29, 2008
•
Nazmul Idris
This tutorial will show you how to use the TableLayout container, which is
like an HTML table. The UI layout code is done in Java, not XML. A class
(LayoutUtils) is provided to make it easier to attach layout params to View objects.
-
Jul 16, 2008
•
Nazmul Idris
This tutorial will show you how to create options menu (hooks into the MENU
button) and context menu (press and hold a component).
-
Jul 16, 2008
•
Nazmul Idris
This tutorial will show you how to instantiate or inflate a View from XML;
this is useful for components that don't provide a Java API to tweak with certain
style attributes. The Button class is used as an example; you can only get certain
styles to show up via XML that aren't available via the Java API.
-
Jul 15, 2008
•
Nazmul Idris
This tutorial will show you how to create a sub-Activity from a calling-Activity,
and process the results produced by the sub-Activity, if you want to do so. Also,
the various ways of launching a sub-Activity are covered, along with the Android
Activity history stack. A subclass of Activity is also provided that makes
it trivial to launch sub-Activities and respond to results from them.
-
Jun 4, 2008
•
Nazmul Idris
I've written 3 tutorials to show you how to create a service enabled Android
application that performs all of it's network I/O in a background thread (not the
UI thread). These tutorials are split into three parts. This tutorial shows you
how to use background threads to perform long running network IO operations, so
that the main UI thread is not locked up.
-
Jun 4, 2008
•
Nazmul Idris
I've written 3 tutorials to show you how to create a service enabled Android
application that performs all of it's network I/O in a background thread (not the
UI thread). This tutorial shows you how to build a simple UI without using XML,
by writing Java code to layout the UI.
-
Jun 4, 2008
•
Nazmul Idris
I've written 3 tutorials to show you how to create a service enabled Android
application that performs all of it's network I/O in a background thread (not the
UI thread). These tutorials are split into three parts. This one shows you how to
use Apache HTTP Client to connect to services over HTTP or HTTPS and
exchange serialized Java objects with services.
-
May 27, 2008
•
Nazmul Idris
Using Task API to perform HTTP POST operation in the background, while monitoring
the request and response I/O operation data streams
-
Apr 21, 2008
•
Nazmul Idris
Given an IP address, this tutorial will show you how to get a Google Static
Map from it
-
Apr 8, 2008
•
Nazmul Idris
More details on the Task API introduced in the first Task API tutorial. SampleApp
from the first tutorial is dissected under a microscope along with the API itself.
Also contains information on which external libraries are optional and which are
required.
-
Apr 6, 2008
•
Nazmul Idris
Introducing the Task API. Easy to use background task API for Swing. Android
and JavaME implementation coming soon. Easily create tasks and monitor their progress
and cancel them at any time. Easily manage multiple tasks. Create network aware
tasks and recurring tasks, and much much more! The API is open source (Apache 2.0
license). Enjoy!!!
-
Feb 2, 2008
•
Nazmul Idris
This tutorial will show you how to use SwingX's JXBusyLabel component to
display an indeterminate progress indicator. It will also show you
advanced configuration options that allow you to create different and
interesting indeterminate progress indicators using the BusyPainter.
-
Jan 28, 2008
•
Nazmul Idris
This tutorial will walk you through the steps required to use JXTaskPane
and JXTaskPaneContainer in SwingX. You will learn how to change the default color
schemes of these components, and add components and actions to task panes.
-
Dec 24, 2007
•
Nazmul Idris
This tutorial will introduce you to the SwingX API and the concept of Painters.
It will give you an idea of the kinds of effects you can create with them as well,
with code examples.
-
Nov 27, 2007
•
Nazmul Idris
What is XML? This tutorial provides a brief review of the W3C XML 1.0 Recommendation
itself.
-
Nov 9, 2007
•
Nazmul Idris
This tutorial outlines some of the interesting behaviors exhibited by SwingWorker
when running background tasks are canceled in flight
-
Sep 24, 2007
•
Nazmul Idris
I needed to perform animations in the app that I'm building for ScreamingToaster
desktop app framework using Java and Swing. I needed to build animations that show
a transition from one screen to another.
This is slightly different than creating custom, or modified components which perform
a function and have a set of graphical effects. I needed animations that would transition
my user interface from one "screen" to the next. The screens themselves could be
panels or components (part of the whole app, or the entire app itself). While I'd
been writing much of this code myself, to do these animations, it just got really
tedious and frustrating to add this level of complexity to my code, when all I needed
were some simple animations. I've been using the SwingX API and the TimingFramework
API to perform the animations and leverage the components, however, this last piece
was missing. And this last piece just got delivered by Chet Haase, as a part of
the binary deliverables with his (and Romain Guy's) great book - Filthy Rich Clients.
-
Jun 10, 2007
•
Nazmul Idris
I needed to perform animations in the desktop app framework that I'm building
for ScreamingToaster. I needed to build animations that move various
components around on the screen, and other animations that pop up components
on top of existing components, etc. After creating a few of these effects,
I realized that I was doing the same thing over and over again, which is why
I decided to write this tutorial to encapsulate this pattern, in the hopes
that I will help others doing the same thing.
-
Jan 8, 2007
•
Nazmul Idris
If you've ever want to incorporate web services into your graphical
applications / applets / widgets written in Java, then there are some
threading issues that you have to be mindful of, and design around. This tutorial will guide
you though some of the important threading issues you have to keep in mind when building
such applications. The strategies outlined in this tutorial apply to accessing more than
just web services from Swing apps; it also applies to loading information from databases,
and performing any other kind of time consuming process that has to happen in the desktop
app and interact with it, but can't make the user interface unresponsive.
-
Jun 9, 2006
•
Nazmul Idris
Introduction to the Java5 Concurrency API. Java 50 introduces the
java.util.concurrency API, which leverages hardware level constructs
to allow Java programs to use lock-free, and wait-free thread-safety
mechanisms, without having to use native code.
-
Sep 20, 2000
•
Nazmul Idris
This tutorial is devoted to showing you advanced techniques of using threads to
perform event driven tasks, without using polling, and usually with the use of
queues. Along with techniques of managing life cycles of server objects (that are
multithreaded) and runtime activation and deactivation of these objects.
-
Sep 20, 2000
•
Nazmul Idris
Introduction to multithreading in Java
-
Dec 1, 1998
•
Nazmul Idris
In this tutorial, we will create an XML document, the contents of which can be accessed using a
JFC/Swing application and from a web browser (via a Servlet). The XML document is a very
simplistic representation of an address book which stores the name, email and company name of
people. The XML document is written manually, and its structure is known by the Swing application
and the Servlet.