- Programming 73
- Ruby 14
- Rails 12
- Tricks 12
- Architecture 10
- Golang 10
- Javascript 10
- Elixir 8
- how-does-it-work 8
- Erlang 7
- Security 7
- System Design 7
- Blog 6
- JavaScript 6
- Productivity 6
- Static 6
- CheatSheet 5
- Concurrency 5
- Git 5
- RubyGem 5
- Rust 5
- Gem 4
- Jekyll 4
- Memory Safety 4
- Ruby19 4
- Static Site 4
- Tips 4
- es6 4
- Design Principles 3
- ECMAScript2015 3
- Networking 3
- Optimization 3
- SMTP 3
- Server 3
- Static Site Generators 3
- Technology 3
- API 2
- ActiveRecord 2
- Advance Concepts 2
- CLI 2
- Commands 2
- Core JavaScript 2
- Database 2
- ECMAScript2022 2
- HTTP 2
- How-does-it-work 2
- I18n 2
- Javascript Object Graph 2
- Management 2
- Memory Management 2
- NodeJS 2
- Rails3 2
- ReactJS 2
- Ruby18 2
- SEO 2
- Sinatra 2
- SystemDesign 2
- Telnet 2
- Typescript 2
- WireShark 2
- Writing 2
- goroutine 2
- interface 2
- otp 2
- 2FA 1
- API Development 1
- Actionmailer 1
- Agile Methodology 1
- Application Frameworks 1
- Artificial Intelligence 1
- Authentication 1
- Authorization 1
- Automation 1
- Avataree 1
- BDD 1
- Behaviour 1
- Behaviour Driven Development 1
- Best Practices 1
- Bots 1
- Bun.sh 1
- CDN 1
- CPU 1
- Checklist 1
- Cluster 1
- Configuration 1
- Crash Course 1
- CyberSecurity 1
- Deno 1
- Deployment 1
- Design 1
- Design Pattern 1
- Digital Security 1
- ECMAScript2017 1
- Effect hooks 1
- Event 1
- Flashplayer 1
- Functional Tests 1
- GraphQL 1
- Gravatar 1
- HLS 1
- HTTP2 1
- Hacking 1
- Hooks 1
- Humongous 1
- Hypertext Transfer Protocol 1
- Hypertext Transfer Protocol version 2 1
- IOT 1
- Integration Tests 1
- Internet of Things 1
- Interpreter 1
- Introduction 1
- JIT 1
- JSON 1
- JSON Web Tokens 1
- JWT 1
- Link Dump 1
- MPEG-DASH 1
- MVC 1
- Maps 1
- Metaprogramming 1
- Microservices 1
- Mongodb 1
- Monkeypatching 1
- Motivation 1
- Multicore 1
- OAuth 1
- OAuth2 1
- Open Source 1
- Operating Systems 1
- OperatingSystems 1
- Optimisation 1
- Patterns 1
- Plugin 1
- Plugins 1
- Privacy 1
- Process 1
- Processes 1
- RESTful 1
- RPC 1
- Rake 1
- Raspberry 1
- Raspberrypi2 1
- React 1
- Risk 1
- Robots 1
- SCRUM 1
- Scaling 1
- Search-Engines 1
- Security-Awareness 1
- Selenium Alternatives 1
- Silverlightplayer 1
- Single Page Apps 1
- Software Lifecycle 1
- Software Management 1
- Spawning 1
- System 1
- Systems 1
- TOTP 1
- Team 1
- Team Management 1
- Technical Debt 1
- Test Automation 1
- Test Framework 1
- Things 1
- Time Based Authentication 1
- Translation 1
- Two factor authentication 1
- TypeScript 1
- URL Shortener 1
- Unit Tests 1
- Views 1
- Web Assembly 1
- Web Frameworks 1
- Web Server 1
- WebAssembly 1
- WebRTC 1
- WebSockets 1
- Webrat 1
- arrow functions 1
- behaviour 1
- coroutines 1
- es8 1
- goroutines 1
- grpc 1
- indexes 1
- jQuery 1
- martini 1
- methods 1
- nosql 1
- package 1
- promises 1
- quote 1
- sql 1
- struct 1
- unquote 1
- waitgroup 1
Programming
Introducing WebAssembly using Rust
WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machines. WASM is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Best Top 6 Rust frameworks to watch out in 2023
In 2023, which Rust web framework will be the best for looking into before you start developing APIs and web applications? Here, we’ll look at some of the most popular frameworks currently in use or looks promising. We’ll also explore look at some simple examples to look at their design principles
12 Design Principles you can implement in Rust
Rust is a language of this generation where we need be highly productive as a developer at the same time writing memory efficient, world class softwares
An introduction to Bun.sh (Another JavaScript Runtime)
What’s new in ECMAScript 2022 (Javascript)
ECMAScript 2022 is the going to be released soon. Here are some new features that have been incorporated and could be used in javascript in upcoming time.
Safety Mechanism in Ruby on Rails
Rails became popular and still heavily used by enterprises for its focus on efficiency and productivity. It comes with most suitable defaults for each environment for developer to more focus on building than configuring.
21 Git Commands you probably didn’t know
If anyone have ever browsed the git manual (man git
), then one may have noticed there are a whole lot more to git than what most of us use on a daily basis.
How does it work TOTP (Time Based Authentication) app
Late in the day one may have encountered many application asking for Second Factor authentication. Most of those uses OTP (One Time Password) via email or SMS. However we have new competitor in this arena, called TOTP (Time Based OTP) apps. There are many big players are in the race, i.e Google Authenticator and Microsoft Authenticator App
How Stuff Works - SMTP through WireShark
The SMTP (Simple Mail Transfer Protocol) is an Internet standard communication protocol for electronic mail transmission. Most of mail servers use SMTP protocol to send/receive email messages. Most email clients available today uses SMTP only for relaying messages to another mail server. But Mail client software on your desktop/laptop/electronic devices uses IMAP/POP3 to pull emails from its servers. So in simple terms SMTP is to communicate between/among Mail Server(s) to Mail Server(s). SMTP is implemented upon TCP (Transmission Control Protocol)
Design Dig - Rust Design Principles
If you stumbled upon this article, either you have already heard and is interested in Rust programming language, or you may already be working with it. But here is a brief intro
GraphQL vs REST for API’s
Design Dig - ReactJS Design Principles
An Introduction to Deno
A secure runtime for JavaScript and TypeScript. — by (Deno.land)[https://deno.land/]
gRPC-Communication between Microservices
A high-performance, open-source universal RPC framework
Concurrency with Rust
WebSockets vs WebRTC - Which one to use
A Look into Video Streaming - MPEG-DASH vs HLS
Streaming is a way of delivering data over the Internet so that a device can start displaying the data before it fully loads. Video is streamed over the Internet so that the client device does not have to download the entire video file before playing it.
How does it work - HTTP/2
Why one should learn Go, in 2019
Go was first appeared on November 10th, 2009 designed by Rob Pike, Ken Thompson and Robert Griesemer. Go was introduced as a new system programming language with quick build times, great tooling, simple concurrency model, and a different approach to object-orientation.
Using React’s new Effect Hooks
React has added a new feature named Effect Hooks. So what’s the effect hooks and why were they needed. Effect Hooks allows programmer to use some of the React’s class properties (state and others) without actually extending it, in function component. React class comes with a lot of features but mostly we need is state, props and side effect functions (e.g componentDidMount
, componentDidUpdate
and componentWillUnmount
)
What is Cypress.JS and How to use it
Clustering - Multi-core utilization for Node.JS
While building an application in today’s era; a developer would definitely wish to leverage underlying OS multi-core architecture for performance. Since [JavaScript] is single threaded application meaning that only one thread can run at any given time, hence by default JavaScript can only leverage single core CPU. To come about this, Node.JS has introduced Cluster API. In this article we will have a look at Cluster API, create child processes, and how to use it.
SEO CheatSheet - Easy Search Engine Optimization (SEO) for beginners and newbie
Search engine optimization (SEO) is the process of improving the quality and quantity of website traffic to a website or a web page from search engines. SEO targets organic traffic rather than direct traffic.
API Security - Best Practices and Checklist
Recently API’s (Application Programming Interface) are becoming hot cakes. Implementing API for your application is no more a niche thing but became essential. With advent of multi-faceted application interface (i.e Mobile Apps, Desktop Apps, Web Apps and Other Consumer applications). Its a great tool to expose your application consumption via own and third-party developers looking to integrate with your app. This enhances your audience reach and aid to consumers.
SEO CheatSheet - 10 Technical SEO Checklist for beginners
If you are a writer/blogger, hosting a blog or planning to host one soon. If you are new to SEO (Search Engine Optimization) or never heard of it; this is the right place to start from
What’s new ECMAScript 2017
Two years ago when ECMAScript 2015 (colloquially known as a ES6) was standardized there was a massive update to the language. Announced at the same time was a yearly release plan that aims to deliver a new version of the language annually and ship it with the proposals that are ready at the time of the TC39 meeting. The list of language improvements is open and you can track it on the TC39 Github account. Following are some noticeable changes in 8th edition or es8 or ECMAScript2017
(JWT) JSON Web Tokens for API
In modern era, Authentication and authorization are used widely in mostly every app out there. While authentication establishesh user’s (or machine’s/thing’s) identity, authorization is way to know what kind of access is that user is granted, marking the periphery one is allowed to wander.
Promises in ES6
In JS world, promise
s always been a controversial topic. Interestingly, There are lots of libraries out there implementing promise in there own tastes. jquery’s deferred, q, bluebird, deferred.js to name just a few. Opinions conflict over using async, generators, callbacks etc. But thank God; ECMA has now officially implemented promises in ES6. That’s a good news for JS community over having a single standard implementation of promises.
When not to use Arrow Function
Arrow Functions
Top ES6 feature one should know
So ES6, sounds a new cool name around the corner in tech distrct. If you are still not aware what ES6 is, its a new and improved JavaScript version over ES5. Here are some top feature that a Javascript developer should know.
Design Dig - Oauth 2.0
Git CheatSheet - 51 Commands you should know about
Git is a distributed version control system that aid developers working on a project to collaborate seamlessly while also having edge of being distributed so a repository can have multiple remote repository for easy collaboration among multiple teams
NodeJS High CPU Usage
A single instance of a Node.JS application runs on only one thread and, therefore, doesn’t take full advantage of multi-core systems. And because of it Node.JS is not suitable for CPU/processor intensive tasks
How Stuff Works - Nginx
Assume this - you are done developing your web application and now you need to search for right web server for your production, that is fast secure and reliable.
How Stuff Works - TCP through WireShark
The TCP (Transmission Control Protocol) is one of the base protocols of the Internet protocol suite implemented. It came into existance when initial work was being done for IP (Internet Protocol) and with an urge to make UDP more reliable.
Accessing Raspberry Pi 2 using laptop/desktop display and keyboard
There is a lot of buzz regarding IoT (Internet of Things). So we have got our own Raspberry Pi 2 devise to experiment with it. Though we are building something serious, but here is something for starters to access Raspberry Pi 2 using networking.
Serving static files with golang or gorilla mux
Today, we are going to demonstrate how one could serve static site/ content using golang’s net/http
or using gorilla/mux
. Let us create base for this. First we would create a directory
Interfaces in Golang
Golang implements interfaces as types and as collection of methods(specs for what should be considered of that type). Let’s first talk about collection of methods (specs that other types could implement)
Go waitgroup with goroutines
Previously in Golang Concurrency we talked about how goroutines in Go language works. Today we will focus on providing robustness to our previous talk by using semaphores from Golang sync package.
Go lang and MVC
Its been long since working with go language, been awesome experience so far. This post is regarding how one can structure go application in MVC structure like Rails. This example would be using Martini - A Golang MVC and Gorm - A Golang MVC, for demonstration purpose only.
Go to Go - Struct and Methods
Go has a speciel type struct
to define custome type with named fields. Struct act like collection of attributes/properties similar to classes in OOPS languages out there, but not exactly.
Go to Go - Packages
Go is modern language, so it has to take care of current software development practices; code reuse or DRY (Don’t Repeat Yourself) being one of them. In go code can be packed into modules and shipped. Lets look into how go uses packages.
Go to Go - Concurrency Part#2
In last part, where we discussed Golang Concurrency, we talked about goroutines
and channels. As discussed there is much more to channels, liked channel direction, by default a channel is bi-directional, but it can be restricted to sending or receiving.
Go to Go - Concurrency Part#1
Go came to existance to solve problems being faced by today’s software, one of them is concurrency (ability to execute stuff in parallel while providing control and communication among them). To solve this go has provided goroutines to execute stuff in parallel.
Introduction to Maps in Elixir
Elixir v0.13 has introduced Maps
, a key value store. Quoting elixir 0.13 docs
Elixir - Introducing Event Server
So very first behaviour server of OTP that we are gonna look in is Generic(I am guessing what gen means in erlang) event server.
Elixir - Introducing OTP
Erlang system is tried and tested for years and known for fault tolerance, robustness, ditributed operation handling and concurrency. OTP, stands for Open Telecom Platform, even though there is nothing specific about telecom.
Elixir - Quote Unquote
Most functional languages are great in treating/presenting everything as data. Elixir is no less, it has power to present anything into data using its powerfull quote
, unquote
.
Elixir - First real world example - Fibonacci
I am not gonna use hello world
example, because that is too simple and boring as well. So lets start with fibonacci series example.
Go to Go - An Introduction to Go language
First of all Happy New year to all. Great now we should be having a good start for the year 2014. So coming to the point. Being a developer I have worked on server languages and tools, naming ruby, rails, javascript, titanium, mongodb a few.
Introduction to Elixir
Elixir is a functional, meta-programming aware language that translates to Erlang VM. It is a dynamic language with flexible syntax and macro support that leverages Erlang’s abilities to build concurrent, distributed and fault-tolerant applications with hot code upgrades.
GIT TIP#3 Cherry pick - only pick what is needed
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#2 Squash merge commit instead of merge
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#1 Using stash effectively
everyone who uses GIT, knows about stash, here are some quick tip about using stash effectively
Humongous: A Ruby MongoDB Browser
I recently wrote a lightweight MongoDB browser; written in ruby. It has been written; while keeping non ruby user/developer in mind, for simple use. That means it can be just installed as normal rubygems and fired from console as ususal unix command.
QuickTips Ruby1.9 [Part 3] Default and Splat arguments
Ruby 1.9 has changed the way it used to deal with default arguments. The good news is it supports defaults arguments to be at beginning of methods. See gist below for example:
QuickTips Ruby1.9 [Part 2] Basic
Base Object is now BasicObject not Object in Ruby 1.9
QuickTips Ruby1.9 [Part 1] Hash
Changes in Hash In Ruby19 hash becomes ordered, don’t believe it see it yourself. Keys will be in order they are inserted.
Magic of default_proc in hash
Monkey Patching done in a right way (Have some mercy on legacy Ruby)
Classes in Ruby are open; right. That means you can do anything with them, monkey patching around it. But stop doing it before you run into any trouble. I myself used to do it.
JSDB - (A JIT interpreter for JavaScript)
Frankly I used to be frightened from working with JavaScript but since I started working with Core JavaScript(in Titanium) my interest grew for this language. I started hacking around the stuff in JavaScript, but being a Ruby developer from heart I do not want to leave command line and to test the code I have written, I needed some sort of compiler or interpreter like Ruby’s IRB. So as usual I hit the Google but for my misery I found nothing.
Shortly (A cleaner Ruby wrapper for various url shortener services)
As mentioned in header Shortly is a cleaner Ruby wrapper for various url shortener services. It support maximum number of url shortener services out there huh(excluding url shortener services whose own url are not even short. Believe me they are many).
Avataree (A ruby gem for Gravatar services)
Avataree is a gem to make your project/app deal with Gravatar services for profile and images in a simplified ruby manner.
Flash/SilverLight Player Plugin for Rails 3
It’s been long time since I wrote my last post about Meta programming; I did not find time as I was busy, finally I spared some time from my hectic schedule to upgrade my old plugins to rails 3.
Metaprogramming in Rails
Meta-programming means your programming language is writing code for you. And for sure Ruby is a great language having all cool features.Rails being a great ruby framework encashes all features of ruby. Rails itself uses meta-programming every where.
Action Mailer Configuration for Google app or Gmail
Recently I needed to setup smtp server to send mail. nothing was new, I simply used rails ActionMailer as one should be. It should have been working, but wait; ohhhhhh snap, it was not!
Webrat Steps extension (Be more DRY)
Recently when I was working with Cucumber and Webrat, I found default webrat definition very interesting. Even in some case I didn’t even had to write a single step definition. But while proceeding I found that something is missing from webrat definition. So I decided to extend it. And come up with some methods defined as below. To use them just download this file and put it under features/step_definitions/ You can copy below code clipboard.
What is Rake in Ruby
This article has been updated in 2016
Difference Between Gem and Plugin
Now a days many developers are developing web application using ruby on rails. But a few of them know what actually the difference between “Gem” and “Plugin”.
Working with namepaced model
Sometime we have to work with namespaced model in Ruby on Rails to keep our code clean.
Translating Date and DateTime in Rails
I was using newdesk’s translate plugin for generating unicode. But there was no way by i can translate date and date_time. So I had to find another way.
Here I am telling you guys what i did
New Ways of rendering partials
I was working on project when I bumped into a new feature, rather an old one; I don’t care although, that we can render partial without writing partial or locals. Check it out how?
before
Pretty Radio Buttons
This tutorial is an extension of Aaron’s blog. This tutorial shows how to implement radio button using checkboxes and css with the help of jQuery.
Ruby
Safety Mechanism in Ruby on Rails
Rails became popular and still heavily used by enterprises for its focus on efficiency and productivity. It comes with most suitable defaults for each environment for developer to more focus on building than configuring.
Moving blogs to Jekyll
I am an avid blogger since long and pretty much used every DIY blogging engine, out there, naming few
Jekyll Static Site - Best Practices, Tips and Tricks
Jekyll is one of the most static site generator (SSG). It empowers developers to generate static site quickly and easily. And this can be hosted on Github (with in-built support for Jekyll). Currently it is a great tool for building blogs, portfolios and other websites.
How Stuff Works - Advance Jekyll
Jekyll is a static site generator. That means, that you give some info to it and get HTML pages as a result. It’s ok when the site is pretty simple or even single page. What about more complicated websites? Will Jekyll handle it? Will it be convenient?
Liquid References for Jekyll
Humongous: A Ruby MongoDB Browser
I recently wrote a lightweight MongoDB browser; written in ruby. It has been written; while keeping non ruby user/developer in mind, for simple use. That means it can be just installed as normal rubygems and fired from console as ususal unix command.
QuickTips Ruby1.9 [Part 2] Basic
Base Object is now BasicObject not Object in Ruby 1.9
QuickTips Ruby1.9 [Part 1] Hash
Changes in Hash In Ruby19 hash becomes ordered, don’t believe it see it yourself. Keys will be in order they are inserted.
Magic of default_proc in hash
Monkey Patching done in a right way (Have some mercy on legacy Ruby)
Classes in Ruby are open; right. That means you can do anything with them, monkey patching around it. But stop doing it before you run into any trouble. I myself used to do it.
Shortly (A cleaner Ruby wrapper for various url shortener services)
As mentioned in header Shortly is a cleaner Ruby wrapper for various url shortener services. It support maximum number of url shortener services out there huh(excluding url shortener services whose own url are not even short. Believe me they are many).
Avataree (A ruby gem for Gravatar services)
Avataree is a gem to make your project/app deal with Gravatar services for profile and images in a simplified ruby manner.
Metaprogramming in Rails
Meta-programming means your programming language is writing code for you. And for sure Ruby is a great language having all cool features.Rails being a great ruby framework encashes all features of ruby. Rails itself uses meta-programming every where.
What is Rake in Ruby
This article has been updated in 2016
Rails
Safety Mechanism in Ruby on Rails
Rails became popular and still heavily used by enterprises for its focus on efficiency and productivity. It comes with most suitable defaults for each environment for developer to more focus on building than configuring.
Shortly (A cleaner Ruby wrapper for various url shortener services)
As mentioned in header Shortly is a cleaner Ruby wrapper for various url shortener services. It support maximum number of url shortener services out there huh(excluding url shortener services whose own url are not even short. Believe me they are many).
Avataree (A ruby gem for Gravatar services)
Avataree is a gem to make your project/app deal with Gravatar services for profile and images in a simplified ruby manner.
Flash/SilverLight Player Plugin for Rails 3
It’s been long time since I wrote my last post about Meta programming; I did not find time as I was busy, finally I spared some time from my hectic schedule to upgrade my old plugins to rails 3.
Metaprogramming in Rails
Meta-programming means your programming language is writing code for you. And for sure Ruby is a great language having all cool features.Rails being a great ruby framework encashes all features of ruby. Rails itself uses meta-programming every where.
Action Mailer Configuration for Google app or Gmail
Recently I needed to setup smtp server to send mail. nothing was new, I simply used rails ActionMailer as one should be. It should have been working, but wait; ohhhhhh snap, it was not!
Webrat Steps extension (Be more DRY)
Recently when I was working with Cucumber and Webrat, I found default webrat definition very interesting. Even in some case I didn’t even had to write a single step definition. But while proceeding I found that something is missing from webrat definition. So I decided to extend it. And come up with some methods defined as below. To use them just download this file and put it under features/step_definitions/ You can copy below code clipboard.
What is Rake in Ruby
This article has been updated in 2016
Difference Between Gem and Plugin
Now a days many developers are developing web application using ruby on rails. But a few of them know what actually the difference between “Gem” and “Plugin”.
Working with namepaced model
Sometime we have to work with namespaced model in Ruby on Rails to keep our code clean.
Translating Date and DateTime in Rails
I was using newdesk’s translate plugin for generating unicode. But there was no way by i can translate date and date_time. So I had to find another way.
Here I am telling you guys what i did
New Ways of rendering partials
I was working on project when I bumped into a new feature, rather an old one; I don’t care although, that we can render partial without writing partial or locals. Check it out how?
before
Tricks
GIT TIP#3 Cherry pick - only pick what is needed
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#2 Squash merge commit instead of merge
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#1 Using stash effectively
everyone who uses GIT, knows about stash, here are some quick tip about using stash effectively
QuickTips Ruby1.9 [Part 3] Default and Splat arguments
Ruby 1.9 has changed the way it used to deal with default arguments. The good news is it supports defaults arguments to be at beginning of methods. See gist below for example:
QuickTips Ruby1.9 [Part 2] Basic
Base Object is now BasicObject not Object in Ruby 1.9
QuickTips Ruby1.9 [Part 1] Hash
Changes in Hash In Ruby19 hash becomes ordered, don’t believe it see it yourself. Keys will be in order they are inserted.
Magic of default_proc in hash
Monkey Patching done in a right way (Have some mercy on legacy Ruby)
Classes in Ruby are open; right. That means you can do anything with them, monkey patching around it. But stop doing it before you run into any trouble. I myself used to do it.
Metaprogramming in Rails
Meta-programming means your programming language is writing code for you. And for sure Ruby is a great language having all cool features.Rails being a great ruby framework encashes all features of ruby. Rails itself uses meta-programming every where.
Working with namepaced model
Sometime we have to work with namespaced model in Ruby on Rails to keep our code clean.
Translating Date and DateTime in Rails
I was using newdesk’s translate plugin for generating unicode. But there was no way by i can translate date and date_time. So I had to find another way.
Here I am telling you guys what i did
New Ways of rendering partials
I was working on project when I bumped into a new feature, rather an old one; I don’t care although, that we can render partial without writing partial or locals. Check it out how?
before
Architecture
How does it work TOTP (Time Based Authentication) app
Late in the day one may have encountered many application asking for Second Factor authentication. Most of those uses OTP (One Time Password) via email or SMS. However we have new competitor in this arena, called TOTP (Time Based OTP) apps. There are many big players are in the race, i.e Google Authenticator and Microsoft Authenticator App
How Stuff Works - SMTP through WireShark
The SMTP (Simple Mail Transfer Protocol) is an Internet standard communication protocol for electronic mail transmission. Most of mail servers use SMTP protocol to send/receive email messages. Most email clients available today uses SMTP only for relaying messages to another mail server. But Mail client software on your desktop/laptop/electronic devices uses IMAP/POP3 to pull emails from its servers. So in simple terms SMTP is to communicate between/among Mail Server(s) to Mail Server(s). SMTP is implemented upon TCP (Transmission Control Protocol)
gRPC-Communication between Microservices
A high-performance, open-source universal RPC framework
WebSockets vs WebRTC - Which one to use
A Look into Video Streaming - MPEG-DASH vs HLS
Streaming is a way of delivering data over the Internet so that a device can start displaying the data before it fully loads. Video is streamed over the Internet so that the client device does not have to download the entire video file before playing it.
Design Dig - Oauth 2.0
NodeJS High CPU Usage
A single instance of a Node.JS application runs on only one thread and, therefore, doesn’t take full advantage of multi-core systems. And because of it Node.JS is not suitable for CPU/processor intensive tasks
How Stuff Works - Nginx
Assume this - you are done developing your web application and now you need to search for right web server for your production, that is fast secure and reliable.
How Stuff Works - TCP through WireShark
The TCP (Transmission Control Protocol) is one of the base protocols of the Internet protocol suite implemented. It came into existance when initial work was being done for IP (Internet Protocol) and with an urge to make UDP more reliable.
Design Patterns
In software engineering, design patterns are software development patterns that make code re-usable and less bug-prone. These are tried and tested patterns that fit in particular scenarios.
Golang
Why one should learn Go, in 2019
Go was first appeared on November 10th, 2009 designed by Rob Pike, Ken Thompson and Robert Griesemer. Go was introduced as a new system programming language with quick build times, great tooling, simple concurrency model, and a different approach to object-orientation.
Serving static files with golang or gorilla mux
Today, we are going to demonstrate how one could serve static site/ content using golang’s net/http
or using gorilla/mux
. Let us create base for this. First we would create a directory
Interfaces in Golang
Golang implements interfaces as types and as collection of methods(specs for what should be considered of that type). Let’s first talk about collection of methods (specs that other types could implement)
Go waitgroup with goroutines
Previously in Golang Concurrency we talked about how goroutines in Go language works. Today we will focus on providing robustness to our previous talk by using semaphores from Golang sync package.
Go lang and MVC
Its been long since working with go language, been awesome experience so far. This post is regarding how one can structure go application in MVC structure like Rails. This example would be using Martini - A Golang MVC and Gorm - A Golang MVC, for demonstration purpose only.
Go to Go - Struct and Methods
Go has a speciel type struct
to define custome type with named fields. Struct act like collection of attributes/properties similar to classes in OOPS languages out there, but not exactly.
Go to Go - Packages
Go is modern language, so it has to take care of current software development practices; code reuse or DRY (Don’t Repeat Yourself) being one of them. In go code can be packed into modules and shipped. Lets look into how go uses packages.
Go to Go - Concurrency Part#2
In last part, where we discussed Golang Concurrency, we talked about goroutines
and channels. As discussed there is much more to channels, liked channel direction, by default a channel is bi-directional, but it can be restricted to sending or receiving.
Go to Go - Concurrency Part#1
Go came to existance to solve problems being faced by today’s software, one of them is concurrency (ability to execute stuff in parallel while providing control and communication among them). To solve this go has provided goroutines to execute stuff in parallel.
Go to Go - An Introduction to Go language
First of all Happy New year to all. Great now we should be having a good start for the year 2014. So coming to the point. Being a developer I have worked on server languages and tools, naming ruby, rails, javascript, titanium, mongodb a few.
Javascript
An introduction to Bun.sh (Another JavaScript Runtime)
What’s new in ECMAScript 2022 (Javascript)
ECMAScript 2022 is the going to be released soon. Here are some new features that have been incorporated and could be used in javascript in upcoming time.
Design Dig - ReactJS Design Principles
An Introduction to Deno
A secure runtime for JavaScript and TypeScript. — by (Deno.land)[https://deno.land/]
Using React’s new Effect Hooks
React has added a new feature named Effect Hooks. So what’s the effect hooks and why were they needed. Effect Hooks allows programmer to use some of the React’s class properties (state and others) without actually extending it, in function component. React class comes with a lot of features but mostly we need is state, props and side effect functions (e.g componentDidMount
, componentDidUpdate
and componentWillUnmount
)
What is Cypress.JS and How to use it
What’s new ECMAScript 2017
Two years ago when ECMAScript 2015 (colloquially known as a ES6) was standardized there was a massive update to the language. Announced at the same time was a yearly release plan that aims to deliver a new version of the language annually and ship it with the proposals that are ready at the time of the TC39 meeting. The list of language improvements is open and you can track it on the TC39 Github account. Following are some noticeable changes in 8th edition or es8 or ECMAScript2017
Promises in ES6
In JS world, promise
s always been a controversial topic. Interestingly, There are lots of libraries out there implementing promise in there own tastes. jquery’s deferred, q, bluebird, deferred.js to name just a few. Opinions conflict over using async, generators, callbacks etc. But thank God; ECMA has now officially implemented promises in ES6. That’s a good news for JS community over having a single standard implementation of promises.
When not to use Arrow Function
Arrow Functions
Top ES6 feature one should know
So ES6, sounds a new cool name around the corner in tech distrct. If you are still not aware what ES6 is, its a new and improved JavaScript version over ES5. Here are some top feature that a Javascript developer should know.
Elixir
Introduction to Maps in Elixir
Elixir v0.13 has introduced Maps
, a key value store. Quoting elixir 0.13 docs
Elixir - Introducing Event Server
So very first behaviour server of OTP that we are gonna look in is Generic(I am guessing what gen means in erlang) event server.
Elixir - Introducing OTP
Erlang system is tried and tested for years and known for fault tolerance, robustness, ditributed operation handling and concurrency. OTP, stands for Open Telecom Platform, even though there is nothing specific about telecom.
Elixir - Static file server
I made to write static file server, can be used as CDN server. Find it at BagwanPankaj@Github
Elixir - Quote Unquote
Most functional languages are great in treating/presenting everything as data. Elixir is no less, it has power to present anything into data using its powerfull quote
, unquote
.
Elixir - Lightweight Processes and spawning a proess
Erlang is popular because of its lightweight processes, actors and working rightly in distributed system. Elixir brings that on Lets look
Elixir - First real world example - Fibonacci
I am not gonna use hello world
example, because that is too simple and boring as well. So lets start with fibonacci series example.
Introduction to Elixir
Elixir is a functional, meta-programming aware language that translates to Erlang VM. It is a dynamic language with flexible syntax and macro support that leverages Erlang’s abilities to build concurrent, distributed and fault-tolerant applications with hot code upgrades.
how-does-it-work
WebSockets vs WebRTC - Which one to use
A Look into Video Streaming - MPEG-DASH vs HLS
Streaming is a way of delivering data over the Internet so that a device can start displaying the data before it fully loads. Video is streamed over the Internet so that the client device does not have to download the entire video file before playing it.
How does it work - HTTP/2
Design Dig - Oauth 2.0
How does it work - Operating Systems
How does it work - Core Javascript (Part 2)
How does it work - Core Javascript (Part 1)
How stuff work Hypertext Transfer Protocol (HTTP)
Whenever you visit a page on the web, your computer uses the Hypertext Transfer Protocol (HTTP) to get that page from another computer somewhere on the Internet.
Erlang
Elixir - Introducing Event Server
So very first behaviour server of OTP that we are gonna look in is Generic(I am guessing what gen means in erlang) event server.
Elixir - Introducing OTP
Erlang system is tried and tested for years and known for fault tolerance, robustness, ditributed operation handling and concurrency. OTP, stands for Open Telecom Platform, even though there is nothing specific about telecom.
Elixir - Static file server
I made to write static file server, can be used as CDN server. Find it at BagwanPankaj@Github
Elixir - Quote Unquote
Most functional languages are great in treating/presenting everything as data. Elixir is no less, it has power to present anything into data using its powerfull quote
, unquote
.
Elixir - Lightweight Processes and spawning a proess
Erlang is popular because of its lightweight processes, actors and working rightly in distributed system. Elixir brings that on Lets look
Elixir - First real world example - Fibonacci
I am not gonna use hello world
example, because that is too simple and boring as well. So lets start with fibonacci series example.
Introduction to Elixir
Elixir is a functional, meta-programming aware language that translates to Erlang VM. It is a dynamic language with flexible syntax and macro support that leverages Erlang’s abilities to build concurrent, distributed and fault-tolerant applications with hot code upgrades.
Security
Safety Mechanism in Ruby on Rails
Rails became popular and still heavily used by enterprises for its focus on efficiency and productivity. It comes with most suitable defaults for each environment for developer to more focus on building than configuring.
API Security - Best Practices and Checklist
Recently API’s (Application Programming Interface) are becoming hot cakes. Implementing API for your application is no more a niche thing but became essential. With advent of multi-faceted application interface (i.e Mobile Apps, Desktop Apps, Web Apps and Other Consumer applications). Its a great tool to expose your application consumption via own and third-party developers looking to integrate with your app. This enhances your audience reach and aid to consumers.
(JWT) JSON Web Tokens for API
In modern era, Authentication and authorization are used widely in mostly every app out there. While authentication establishesh user’s (or machine’s/thing’s) identity, authorization is way to know what kind of access is that user is granted, marking the periphery one is allowed to wander.
Design Dig - Oauth 2.0
Authenticate Machines not Users
I have been dealing with servers, deployments and system security since long time. One practice that I see and looks much evil to me is using password authentication while deploying to server and/or using password directly into deployment scripts.
What not to write in Robots.txt
Robots.txt is a vital part of most/all of websites. It feeds the robots from different search engine e.g. Google, Bing etc.
Layman’s guide for Cyber Security
Technology has greatly evolved, businesses have gone online, so is digital payment transaction [source]. But to our dismay, cybersecurity awareness is still lowest in India. Banks, financial institutions have adopted digital transactions, online banking but customer awareness is where they fail utterly.
System Design
Introducing WebAssembly using Rust
WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machines. WASM is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Best Top 6 Rust frameworks to watch out in 2023
In 2023, which Rust web framework will be the best for looking into before you start developing APIs and web applications? Here, we’ll look at some of the most popular frameworks currently in use or looks promising. We’ll also explore look at some simple examples to look at their design principles
12 Design Principles you can implement in Rust
Rust is a language of this generation where we need be highly productive as a developer at the same time writing memory efficient, world class softwares
Design Dig - Rust Design Principles
If you stumbled upon this article, either you have already heard and is interested in Rust programming language, or you may already be working with it. But here is a brief intro
GraphQL vs REST for API’s
Design Dig - ReactJS Design Principles
Risk in system design
Risk In System design
Blog
SEO CheatSheet - Easy Search Engine Optimization (SEO) for beginners and newbie
Search engine optimization (SEO) is the process of improving the quality and quantity of website traffic to a website or a web page from search engines. SEO targets organic traffic rather than direct traffic.
SEO CheatSheet - 10 Technical SEO Checklist for beginners
If you are a writer/blogger, hosting a blog or planning to host one soon. If you are new to SEO (Search Engine Optimization) or never heard of it; this is the right place to start from
Moving blogs to Jekyll
I am an avid blogger since long and pretty much used every DIY blogging engine, out there, naming few
Jekyll Static Site - Best Practices, Tips and Tricks
Jekyll is one of the most static site generator (SSG). It empowers developers to generate static site quickly and easily. And this can be hosted on Github (with in-built support for Jekyll). Currently it is a great tool for building blogs, portfolios and other websites.
How Stuff Works - Advance Jekyll
Jekyll is a static site generator. That means, that you give some info to it and get HTML pages as a result. It’s ok when the site is pretty simple or even single page. What about more complicated websites? Will Jekyll handle it? Will it be convenient?
Liquid References for Jekyll
JavaScript
Clustering - Multi-core utilization for Node.JS
While building an application in today’s era; a developer would definitely wish to leverage underlying OS multi-core architecture for performance. Since [JavaScript] is single threaded application meaning that only one thread can run at any given time, hence by default JavaScript can only leverage single core CPU. To come about this, Node.JS has introduced Cluster API. In this article we will have a look at Cluster API, create child processes, and how to use it.
NodeJS High CPU Usage
A single instance of a Node.JS application runs on only one thread and, therefore, doesn’t take full advantage of multi-core systems. And because of it Node.JS is not suitable for CPU/processor intensive tasks
How does it work - Core Javascript (Part 2)
How does it work - Core Javascript (Part 1)
JSDB - (A JIT interpreter for JavaScript)
Frankly I used to be frightened from working with JavaScript but since I started working with Core JavaScript(in Titanium) my interest grew for this language. I started hacking around the stuff in JavaScript, but being a Ruby developer from heart I do not want to leave command line and to test the code I have written, I needed some sort of compiler or interpreter like Ruby’s IRB. So as usual I hit the Google but for my misery I found nothing.
Pretty Radio Buttons
This tutorial is an extension of Aaron’s blog. This tutorial shows how to implement radio button using checkboxes and css with the help of jQuery.
Productivity
21 Git Commands you probably didn’t know
If anyone have ever browsed the git manual (man git
), then one may have noticed there are a whole lot more to git than what most of us use on a daily basis.
What is Technical Debt? and How to manage it?
Git CheatSheet - 51 Commands you should know about
Git is a distributed version control system that aid developers working on a project to collaborate seamlessly while also having edge of being distributed so a repository can have multiple remote repository for easy collaboration among multiple teams
GIT TIP#3 Cherry pick - only pick what is needed
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#2 Squash merge commit instead of merge
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#1 Using stash effectively
everyone who uses GIT, knows about stash, here are some quick tip about using stash effectively
Static
Serving static files with golang or gorilla mux
Today, we are going to demonstrate how one could serve static site/ content using golang’s net/http
or using gorilla/mux
. Let us create base for this. First we would create a directory
Moving blogs to Jekyll
I am an avid blogger since long and pretty much used every DIY blogging engine, out there, naming few
Elixir - Static file server
I made to write static file server, can be used as CDN server. Find it at BagwanPankaj@Github
Jekyll Static Site - Best Practices, Tips and Tricks
Jekyll is one of the most static site generator (SSG). It empowers developers to generate static site quickly and easily. And this can be hosted on Github (with in-built support for Jekyll). Currently it is a great tool for building blogs, portfolios and other websites.
How Stuff Works - Advance Jekyll
Jekyll is a static site generator. That means, that you give some info to it and get HTML pages as a result. It’s ok when the site is pretty simple or even single page. What about more complicated websites? Will Jekyll handle it? Will it be convenient?
Liquid References for Jekyll
CheatSheet
21 Git Commands you probably didn’t know
If anyone have ever browsed the git manual (man git
), then one may have noticed there are a whole lot more to git than what most of us use on a daily basis.
SEO CheatSheet - Easy Search Engine Optimization (SEO) for beginners and newbie
Search engine optimization (SEO) is the process of improving the quality and quantity of website traffic to a website or a web page from search engines. SEO targets organic traffic rather than direct traffic.
API Security - Best Practices and Checklist
Recently API’s (Application Programming Interface) are becoming hot cakes. Implementing API for your application is no more a niche thing but became essential. With advent of multi-faceted application interface (i.e Mobile Apps, Desktop Apps, Web Apps and Other Consumer applications). Its a great tool to expose your application consumption via own and third-party developers looking to integrate with your app. This enhances your audience reach and aid to consumers.
SEO CheatSheet - 10 Technical SEO Checklist for beginners
If you are a writer/blogger, hosting a blog or planning to host one soon. If you are new to SEO (Search Engine Optimization) or never heard of it; this is the right place to start from
Git CheatSheet - 51 Commands you should know about
Git is a distributed version control system that aid developers working on a project to collaborate seamlessly while also having edge of being distributed so a repository can have multiple remote repository for easy collaboration among multiple teams
Concurrency
Concurrency with Rust
Why one should learn Go, in 2019
Go was first appeared on November 10th, 2009 designed by Rob Pike, Ken Thompson and Robert Griesemer. Go was introduced as a new system programming language with quick build times, great tooling, simple concurrency model, and a different approach to object-orientation.
Go waitgroup with goroutines
Previously in Golang Concurrency we talked about how goroutines in Go language works. Today we will focus on providing robustness to our previous talk by using semaphores from Golang sync package.
Go to Go - Concurrency Part#2
In last part, where we discussed Golang Concurrency, we talked about goroutines
and channels. As discussed there is much more to channels, liked channel direction, by default a channel is bi-directional, but it can be restricted to sending or receiving.
Go to Go - Concurrency Part#1
Go came to existance to solve problems being faced by today’s software, one of them is concurrency (ability to execute stuff in parallel while providing control and communication among them). To solve this go has provided goroutines to execute stuff in parallel.
Git
21 Git Commands you probably didn’t know
If anyone have ever browsed the git manual (man git
), then one may have noticed there are a whole lot more to git than what most of us use on a daily basis.
Git CheatSheet - 51 Commands you should know about
Git is a distributed version control system that aid developers working on a project to collaborate seamlessly while also having edge of being distributed so a repository can have multiple remote repository for easy collaboration among multiple teams
GIT TIP#3 Cherry pick - only pick what is needed
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#2 Squash merge commit instead of merge
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#1 Using stash effectively
everyone who uses GIT, knows about stash, here are some quick tip about using stash effectively
RubyGem
Version bump for Humongous
Its been very long since I have updated humongous. I had long list of issues to work upon. Finally I had some time to look back to it and other open source projects.
Shortly (A cleaner Ruby wrapper for various url shortener services)
As mentioned in header Shortly is a cleaner Ruby wrapper for various url shortener services. It support maximum number of url shortener services out there huh(excluding url shortener services whose own url are not even short. Believe me they are many).
Avataree (A ruby gem for Gravatar services)
Avataree is a gem to make your project/app deal with Gravatar services for profile and images in a simplified ruby manner.
Flash/SilverLight Player Plugin for Rails 3
It’s been long time since I wrote my last post about Meta programming; I did not find time as I was busy, finally I spared some time from my hectic schedule to upgrade my old plugins to rails 3.
Difference Between Gem and Plugin
Now a days many developers are developing web application using ruby on rails. But a few of them know what actually the difference between “Gem” and “Plugin”.
Rust
Introducing WebAssembly using Rust
WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machines. WASM is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Best Top 6 Rust frameworks to watch out in 2023
In 2023, which Rust web framework will be the best for looking into before you start developing APIs and web applications? Here, we’ll look at some of the most popular frameworks currently in use or looks promising. We’ll also explore look at some simple examples to look at their design principles
12 Design Principles you can implement in Rust
Rust is a language of this generation where we need be highly productive as a developer at the same time writing memory efficient, world class softwares
Design Dig - Rust Design Principles
If you stumbled upon this article, either you have already heard and is interested in Rust programming language, or you may already be working with it. But here is a brief intro
Concurrency with Rust
Gem
Shortly (A cleaner Ruby wrapper for various url shortener services)
As mentioned in header Shortly is a cleaner Ruby wrapper for various url shortener services. It support maximum number of url shortener services out there huh(excluding url shortener services whose own url are not even short. Believe me they are many).
Avataree (A ruby gem for Gravatar services)
Avataree is a gem to make your project/app deal with Gravatar services for profile and images in a simplified ruby manner.
Flash/SilverLight Player Plugin for Rails 3
It’s been long time since I wrote my last post about Meta programming; I did not find time as I was busy, finally I spared some time from my hectic schedule to upgrade my old plugins to rails 3.
Difference Between Gem and Plugin
Now a days many developers are developing web application using ruby on rails. But a few of them know what actually the difference between “Gem” and “Plugin”.
Jekyll
Moving blogs to Jekyll
I am an avid blogger since long and pretty much used every DIY blogging engine, out there, naming few
Jekyll Static Site - Best Practices, Tips and Tricks
Jekyll is one of the most static site generator (SSG). It empowers developers to generate static site quickly and easily. And this can be hosted on Github (with in-built support for Jekyll). Currently it is a great tool for building blogs, portfolios and other websites.
How Stuff Works - Advance Jekyll
Jekyll is a static site generator. That means, that you give some info to it and get HTML pages as a result. It’s ok when the site is pretty simple or even single page. What about more complicated websites? Will Jekyll handle it? Will it be convenient?
Liquid References for Jekyll
Memory Safety
Introducing WebAssembly using Rust
WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machines. WASM is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Best Top 6 Rust frameworks to watch out in 2023
In 2023, which Rust web framework will be the best for looking into before you start developing APIs and web applications? Here, we’ll look at some of the most popular frameworks currently in use or looks promising. We’ll also explore look at some simple examples to look at their design principles
12 Design Principles you can implement in Rust
Rust is a language of this generation where we need be highly productive as a developer at the same time writing memory efficient, world class softwares
Design Dig - Rust Design Principles
If you stumbled upon this article, either you have already heard and is interested in Rust programming language, or you may already be working with it. But here is a brief intro
Ruby19
Humongous: A Ruby MongoDB Browser
I recently wrote a lightweight MongoDB browser; written in ruby. It has been written; while keeping non ruby user/developer in mind, for simple use. That means it can be just installed as normal rubygems and fired from console as ususal unix command.
QuickTips Ruby1.9 [Part 3] Default and Splat arguments
Ruby 1.9 has changed the way it used to deal with default arguments. The good news is it supports defaults arguments to be at beginning of methods. See gist below for example:
QuickTips Ruby1.9 [Part 2] Basic
Base Object is now BasicObject not Object in Ruby 1.9
QuickTips Ruby1.9 [Part 1] Hash
Changes in Hash In Ruby19 hash becomes ordered, don’t believe it see it yourself. Keys will be in order they are inserted.
Static Site
Moving blogs to Jekyll
I am an avid blogger since long and pretty much used every DIY blogging engine, out there, naming few
Jekyll Static Site - Best Practices, Tips and Tricks
Jekyll is one of the most static site generator (SSG). It empowers developers to generate static site quickly and easily. And this can be hosted on Github (with in-built support for Jekyll). Currently it is a great tool for building blogs, portfolios and other websites.
How Stuff Works - Advance Jekyll
Jekyll is a static site generator. That means, that you give some info to it and get HTML pages as a result. It’s ok when the site is pretty simple or even single page. What about more complicated websites? Will Jekyll handle it? Will it be convenient?
Liquid References for Jekyll
Tips
GIT TIP#3 Cherry pick - only pick what is needed
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#2 Squash merge commit instead of merge
Git is most popular distributed version control system used by developers now a days. And most popular workflow being used is of feature-branch-workflow. In this developer working on feature would shoot off a new branch called feature-branch and give it a meaningful name.
GIT TIP#1 Using stash effectively
everyone who uses GIT, knows about stash, here are some quick tip about using stash effectively
QuickTips Ruby1.9 [Part 3] Default and Splat arguments
Ruby 1.9 has changed the way it used to deal with default arguments. The good news is it supports defaults arguments to be at beginning of methods. See gist below for example:
es6
Using React’s new Effect Hooks
React has added a new feature named Effect Hooks. So what’s the effect hooks and why were they needed. Effect Hooks allows programmer to use some of the React’s class properties (state and others) without actually extending it, in function component. React class comes with a lot of features but mostly we need is state, props and side effect functions (e.g componentDidMount
, componentDidUpdate
and componentWillUnmount
)
Promises in ES6
In JS world, promise
s always been a controversial topic. Interestingly, There are lots of libraries out there implementing promise in there own tastes. jquery’s deferred, q, bluebird, deferred.js to name just a few. Opinions conflict over using async, generators, callbacks etc. But thank God; ECMA has now officially implemented promises in ES6. That’s a good news for JS community over having a single standard implementation of promises.
When not to use Arrow Function
Arrow Functions
Top ES6 feature one should know
So ES6, sounds a new cool name around the corner in tech distrct. If you are still not aware what ES6 is, its a new and improved JavaScript version over ES5. Here are some top feature that a Javascript developer should know.
Design Principles
Introducing WebAssembly using Rust
WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machines. WASM is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Best Top 6 Rust frameworks to watch out in 2023
In 2023, which Rust web framework will be the best for looking into before you start developing APIs and web applications? Here, we’ll look at some of the most popular frameworks currently in use or looks promising. We’ll also explore look at some simple examples to look at their design principles
12 Design Principles you can implement in Rust
Rust is a language of this generation where we need be highly productive as a developer at the same time writing memory efficient, world class softwares
ECMAScript2015
An Introduction to Deno
A secure runtime for JavaScript and TypeScript. — by (Deno.land)[https://deno.land/]
When not to use Arrow Function
Arrow Functions
Top ES6 feature one should know
So ES6, sounds a new cool name around the corner in tech distrct. If you are still not aware what ES6 is, its a new and improved JavaScript version over ES5. Here are some top feature that a Javascript developer should know.
Networking
How Stuff Works - SMTP through WireShark
The SMTP (Simple Mail Transfer Protocol) is an Internet standard communication protocol for electronic mail transmission. Most of mail servers use SMTP protocol to send/receive email messages. Most email clients available today uses SMTP only for relaying messages to another mail server. But Mail client software on your desktop/laptop/electronic devices uses IMAP/POP3 to pull emails from its servers. So in simple terms SMTP is to communicate between/among Mail Server(s) to Mail Server(s). SMTP is implemented upon TCP (Transmission Control Protocol)
How Stuff Works - Nginx
Assume this - you are done developing your web application and now you need to search for right web server for your production, that is fast secure and reliable.
How Stuff Works - TCP through WireShark
The TCP (Transmission Control Protocol) is one of the base protocols of the Internet protocol suite implemented. It came into existance when initial work was being done for IP (Internet Protocol) and with an urge to make UDP more reliable.
Optimization
Clustering - Multi-core utilization for Node.JS
While building an application in today’s era; a developer would definitely wish to leverage underlying OS multi-core architecture for performance. Since [JavaScript] is single threaded application meaning that only one thread can run at any given time, hence by default JavaScript can only leverage single core CPU. To come about this, Node.JS has introduced Cluster API. In this article we will have a look at Cluster API, create child processes, and how to use it.
SEO CheatSheet - Easy Search Engine Optimization (SEO) for beginners and newbie
Search engine optimization (SEO) is the process of improving the quality and quantity of website traffic to a website or a web page from search engines. SEO targets organic traffic rather than direct traffic.
SEO CheatSheet - 10 Technical SEO Checklist for beginners
If you are a writer/blogger, hosting a blog or planning to host one soon. If you are new to SEO (Search Engine Optimization) or never heard of it; this is the right place to start from
SMTP
How Stuff Works - SMTP through WireShark
The SMTP (Simple Mail Transfer Protocol) is an Internet standard communication protocol for electronic mail transmission. Most of mail servers use SMTP protocol to send/receive email messages. Most email clients available today uses SMTP only for relaying messages to another mail server. But Mail client software on your desktop/laptop/electronic devices uses IMAP/POP3 to pull emails from its servers. So in simple terms SMTP is to communicate between/among Mail Server(s) to Mail Server(s). SMTP is implemented upon TCP (Transmission Control Protocol)
How Stuff Works - TCP through WireShark
The TCP (Transmission Control Protocol) is one of the base protocols of the Internet protocol suite implemented. It came into existance when initial work was being done for IP (Internet Protocol) and with an urge to make UDP more reliable.
Action Mailer Configuration for Google app or Gmail
Recently I needed to setup smtp server to send mail. nothing was new, I simply used rails ActionMailer as one should be. It should have been working, but wait; ohhhhhh snap, it was not!
Server
NodeJS High CPU Usage
A single instance of a Node.JS application runs on only one thread and, therefore, doesn’t take full advantage of multi-core systems. And because of it Node.JS is not suitable for CPU/processor intensive tasks
How Stuff Works - Nginx
Assume this - you are done developing your web application and now you need to search for right web server for your production, that is fast secure and reliable.
Elixir - Static file server
I made to write static file server, can be used as CDN server. Find it at BagwanPankaj@Github
Static Site Generators
Jekyll Static Site - Best Practices, Tips and Tricks
Jekyll is one of the most static site generator (SSG). It empowers developers to generate static site quickly and easily. And this can be hosted on Github (with in-built support for Jekyll). Currently it is a great tool for building blogs, portfolios and other websites.
How Stuff Works - Advance Jekyll
Jekyll is a static site generator. That means, that you give some info to it and get HTML pages as a result. It’s ok when the site is pretty simple or even single page. What about more complicated websites? Will Jekyll handle it? Will it be convenient?
Liquid References for Jekyll
Technology
WebSockets vs WebRTC - Which one to use
A Look into Video Streaming - MPEG-DASH vs HLS
Streaming is a way of delivering data over the Internet so that a device can start displaying the data before it fully loads. Video is streamed over the Internet so that the client device does not have to download the entire video file before playing it.
How does it work - HTTP/2
API
GraphQL vs REST for API’s
API Security - Best Practices and Checklist
Recently API’s (Application Programming Interface) are becoming hot cakes. Implementing API for your application is no more a niche thing but became essential. With advent of multi-faceted application interface (i.e Mobile Apps, Desktop Apps, Web Apps and Other Consumer applications). Its a great tool to expose your application consumption via own and third-party developers looking to integrate with your app. This enhances your audience reach and aid to consumers.
ActiveRecord
Working with namepaced model
Sometime we have to work with namespaced model in Ruby on Rails to keep our code clean.
Translating Date and DateTime in Rails
I was using newdesk’s translate plugin for generating unicode. But there was no way by i can translate date and date_time. So I had to find another way.
Here I am telling you guys what i did
Advance Concepts
How Stuff Works - Advance Jekyll
Jekyll is a static site generator. That means, that you give some info to it and get HTML pages as a result. It’s ok when the site is pretty simple or even single page. What about more complicated websites? Will Jekyll handle it? Will it be convenient?
Liquid References for Jekyll
CLI
JSDB - (A JIT interpreter for JavaScript)
Frankly I used to be frightened from working with JavaScript but since I started working with Core JavaScript(in Titanium) my interest grew for this language. I started hacking around the stuff in JavaScript, but being a Ruby developer from heart I do not want to leave command line and to test the code I have written, I needed some sort of compiler or interpreter like Ruby’s IRB. So as usual I hit the Google but for my misery I found nothing.
Shortly (A cleaner Ruby wrapper for various url shortener services)
As mentioned in header Shortly is a cleaner Ruby wrapper for various url shortener services. It support maximum number of url shortener services out there huh(excluding url shortener services whose own url are not even short. Believe me they are many).
Commands
21 Git Commands you probably didn’t know
If anyone have ever browsed the git manual (man git
), then one may have noticed there are a whole lot more to git than what most of us use on a daily basis.
Git CheatSheet - 51 Commands you should know about
Git is a distributed version control system that aid developers working on a project to collaborate seamlessly while also having edge of being distributed so a repository can have multiple remote repository for easy collaboration among multiple teams
Core JavaScript
Back to Top ↑Database
Indexes do not scale, choose them wisely
Indexes are most commonly related to improving database speed, query efficiency and lowering latency. As in wikipedia
Version bump for Humongous
Its been very long since I have updated humongous. I had long list of issues to work upon. Finally I had some time to look back to it and other open source projects.
ECMAScript2022
An introduction to Bun.sh (Another JavaScript Runtime)
What’s new in ECMAScript 2022 (Javascript)
ECMAScript 2022 is the going to be released soon. Here are some new features that have been incorporated and could be used in javascript in upcoming time.
HTTP
How does it work - HTTP/2
How stuff work Hypertext Transfer Protocol (HTTP)
Whenever you visit a page on the web, your computer uses the Hypertext Transfer Protocol (HTTP) to get that page from another computer somewhere on the Internet.
How-does-it-work
12 Design Principles you can implement in Rust
Rust is a language of this generation where we need be highly productive as a developer at the same time writing memory efficient, world class softwares
Design Dig - Rust Design Principles
If you stumbled upon this article, either you have already heard and is interested in Rust programming language, or you may already be working with it. But here is a brief intro
I18n
Working with namepaced model
Sometime we have to work with namespaced model in Ruby on Rails to keep our code clean.
Translating Date and DateTime in Rails
I was using newdesk’s translate plugin for generating unicode. But there was no way by i can translate date and date_time. So I had to find another way.
Here I am telling you guys what i did
Javascript Object Graph
Back to Top ↑Management
What is Technical Debt? and How to manage it?
Risk in system design
Risk In System design
Memory Management
12 Design Principles you can implement in Rust
Rust is a language of this generation where we need be highly productive as a developer at the same time writing memory efficient, world class softwares
Design Dig - Rust Design Principles
If you stumbled upon this article, either you have already heard and is interested in Rust programming language, or you may already be working with it. But here is a brief intro
NodeJS
Clustering - Multi-core utilization for Node.JS
While building an application in today’s era; a developer would definitely wish to leverage underlying OS multi-core architecture for performance. Since [JavaScript] is single threaded application meaning that only one thread can run at any given time, hence by default JavaScript can only leverage single core CPU. To come about this, Node.JS has introduced Cluster API. In this article we will have a look at Cluster API, create child processes, and how to use it.
NodeJS High CPU Usage
A single instance of a Node.JS application runs on only one thread and, therefore, doesn’t take full advantage of multi-core systems. And because of it Node.JS is not suitable for CPU/processor intensive tasks
Rails3
Avataree (A ruby gem for Gravatar services)
Avataree is a gem to make your project/app deal with Gravatar services for profile and images in a simplified ruby manner.
Flash/SilverLight Player Plugin for Rails 3
It’s been long time since I wrote my last post about Meta programming; I did not find time as I was busy, finally I spared some time from my hectic schedule to upgrade my old plugins to rails 3.
ReactJS
Design Dig - ReactJS Design Principles
Using React’s new Effect Hooks
React has added a new feature named Effect Hooks. So what’s the effect hooks and why were they needed. Effect Hooks allows programmer to use some of the React’s class properties (state and others) without actually extending it, in function component. React class comes with a lot of features but mostly we need is state, props and side effect functions (e.g componentDidMount
, componentDidUpdate
and componentWillUnmount
)
Ruby18
QuickTips Ruby1.9 [Part 3] Default and Splat arguments
Ruby 1.9 has changed the way it used to deal with default arguments. The good news is it supports defaults arguments to be at beginning of methods. See gist below for example:
QuickTips Ruby1.9 [Part 1] Hash
Changes in Hash In Ruby19 hash becomes ordered, don’t believe it see it yourself. Keys will be in order they are inserted.
SEO
SEO CheatSheet - Easy Search Engine Optimization (SEO) for beginners and newbie
Search engine optimization (SEO) is the process of improving the quality and quantity of website traffic to a website or a web page from search engines. SEO targets organic traffic rather than direct traffic.
SEO CheatSheet - 10 Technical SEO Checklist for beginners
If you are a writer/blogger, hosting a blog or planning to host one soon. If you are new to SEO (Search Engine Optimization) or never heard of it; this is the right place to start from
Sinatra
Humongous: A Ruby MongoDB Browser
I recently wrote a lightweight MongoDB browser; written in ruby. It has been written; while keeping non ruby user/developer in mind, for simple use. That means it can be just installed as normal rubygems and fired from console as ususal unix command.
Shortly (A cleaner Ruby wrapper for various url shortener services)
As mentioned in header Shortly is a cleaner Ruby wrapper for various url shortener services. It support maximum number of url shortener services out there huh(excluding url shortener services whose own url are not even short. Believe me they are many).
SystemDesign
How Stuff Works - SMTP through WireShark
The SMTP (Simple Mail Transfer Protocol) is an Internet standard communication protocol for electronic mail transmission. Most of mail servers use SMTP protocol to send/receive email messages. Most email clients available today uses SMTP only for relaying messages to another mail server. But Mail client software on your desktop/laptop/electronic devices uses IMAP/POP3 to pull emails from its servers. So in simple terms SMTP is to communicate between/among Mail Server(s) to Mail Server(s). SMTP is implemented upon TCP (Transmission Control Protocol)
How Stuff Works - TCP through WireShark
The TCP (Transmission Control Protocol) is one of the base protocols of the Internet protocol suite implemented. It came into existance when initial work was being done for IP (Internet Protocol) and with an urge to make UDP more reliable.
Telnet
How Stuff Works - SMTP through WireShark
The SMTP (Simple Mail Transfer Protocol) is an Internet standard communication protocol for electronic mail transmission. Most of mail servers use SMTP protocol to send/receive email messages. Most email clients available today uses SMTP only for relaying messages to another mail server. But Mail client software on your desktop/laptop/electronic devices uses IMAP/POP3 to pull emails from its servers. So in simple terms SMTP is to communicate between/among Mail Server(s) to Mail Server(s). SMTP is implemented upon TCP (Transmission Control Protocol)
How Stuff Works - TCP through WireShark
The TCP (Transmission Control Protocol) is one of the base protocols of the Internet protocol suite implemented. It came into existance when initial work was being done for IP (Internet Protocol) and with an urge to make UDP more reliable.
Typescript
An introduction to Bun.sh (Another JavaScript Runtime)
What’s new in ECMAScript 2022 (Javascript)
ECMAScript 2022 is the going to be released soon. Here are some new features that have been incorporated and could be used in javascript in upcoming time.
WireShark
How Stuff Works - SMTP through WireShark
The SMTP (Simple Mail Transfer Protocol) is an Internet standard communication protocol for electronic mail transmission. Most of mail servers use SMTP protocol to send/receive email messages. Most email clients available today uses SMTP only for relaying messages to another mail server. But Mail client software on your desktop/laptop/electronic devices uses IMAP/POP3 to pull emails from its servers. So in simple terms SMTP is to communicate between/among Mail Server(s) to Mail Server(s). SMTP is implemented upon TCP (Transmission Control Protocol)
How Stuff Works - TCP through WireShark
The TCP (Transmission Control Protocol) is one of the base protocols of the Internet protocol suite implemented. It came into existance when initial work was being done for IP (Internet Protocol) and with an urge to make UDP more reliable.
Writing
SEO CheatSheet - Easy Search Engine Optimization (SEO) for beginners and newbie
Search engine optimization (SEO) is the process of improving the quality and quantity of website traffic to a website or a web page from search engines. SEO targets organic traffic rather than direct traffic.
SEO CheatSheet - 10 Technical SEO Checklist for beginners
If you are a writer/blogger, hosting a blog or planning to host one soon. If you are new to SEO (Search Engine Optimization) or never heard of it; this is the right place to start from
goroutine
Go to Go - Concurrency Part#2
In last part, where we discussed Golang Concurrency, we talked about goroutines
and channels. As discussed there is much more to channels, liked channel direction, by default a channel is bi-directional, but it can be restricted to sending or receiving.
Go to Go - Concurrency Part#1
Go came to existance to solve problems being faced by today’s software, one of them is concurrency (ability to execute stuff in parallel while providing control and communication among them). To solve this go has provided goroutines to execute stuff in parallel.
interface
Serving static files with golang or gorilla mux
Today, we are going to demonstrate how one could serve static site/ content using golang’s net/http
or using gorilla/mux
. Let us create base for this. First we would create a directory
Interfaces in Golang
Golang implements interfaces as types and as collection of methods(specs for what should be considered of that type). Let’s first talk about collection of methods (specs that other types could implement)
otp
Elixir - Introducing Event Server
So very first behaviour server of OTP that we are gonna look in is Generic(I am guessing what gen means in erlang) event server.
Elixir - Introducing OTP
Erlang system is tried and tested for years and known for fault tolerance, robustness, ditributed operation handling and concurrency. OTP, stands for Open Telecom Platform, even though there is nothing specific about telecom.
2FA
How does it work TOTP (Time Based Authentication) app
Late in the day one may have encountered many application asking for Second Factor authentication. Most of those uses OTP (One Time Password) via email or SMS. However we have new competitor in this arena, called TOTP (Time Based OTP) apps. There are many big players are in the race, i.e Google Authenticator and Microsoft Authenticator App
API Development
Best Top 6 Rust frameworks to watch out in 2023
In 2023, which Rust web framework will be the best for looking into before you start developing APIs and web applications? Here, we’ll look at some of the most popular frameworks currently in use or looks promising. We’ll also explore look at some simple examples to look at their design principles
Actionmailer
Action Mailer Configuration for Google app or Gmail
Recently I needed to setup smtp server to send mail. nothing was new, I simply used rails ActionMailer as one should be. It should have been working, but wait; ohhhhhh snap, it was not!
Agile Methodology
Back to Top ↑Application Frameworks
Best Top 6 Rust frameworks to watch out in 2023
In 2023, which Rust web framework will be the best for looking into before you start developing APIs and web applications? Here, we’ll look at some of the most popular frameworks currently in use or looks promising. We’ll also explore look at some simple examples to look at their design principles
Artificial Intelligence
Accessing Raspberry Pi 2 using laptop/desktop display and keyboard
There is a lot of buzz regarding IoT (Internet of Things). So we have got our own Raspberry Pi 2 devise to experiment with it. Though we are building something serious, but here is something for starters to access Raspberry Pi 2 using networking.
Authentication
(JWT) JSON Web Tokens for API
In modern era, Authentication and authorization are used widely in mostly every app out there. While authentication establishesh user’s (or machine’s/thing’s) identity, authorization is way to know what kind of access is that user is granted, marking the periphery one is allowed to wander.
Automation
Authenticate Machines not Users
I have been dealing with servers, deployments and system security since long time. One practice that I see and looks much evil to me is using password authentication while deploying to server and/or using password directly into deployment scripts.
Avataree
Avataree (A ruby gem for Gravatar services)
Avataree is a gem to make your project/app deal with Gravatar services for profile and images in a simplified ruby manner.
BDD
Webrat Steps extension (Be more DRY)
Recently when I was working with Cucumber and Webrat, I found default webrat definition very interesting. Even in some case I didn’t even had to write a single step definition. But while proceeding I found that something is missing from webrat definition. So I decided to extend it. And come up with some methods defined as below. To use them just download this file and put it under features/step_definitions/ You can copy below code clipboard.
Behaviour
Elixir - Introducing Event Server
So very first behaviour server of OTP that we are gonna look in is Generic(I am guessing what gen means in erlang) event server.
Behaviour Driven Development
Webrat Steps extension (Be more DRY)
Recently when I was working with Cucumber and Webrat, I found default webrat definition very interesting. Even in some case I didn’t even had to write a single step definition. But while proceeding I found that something is missing from webrat definition. So I decided to extend it. And come up with some methods defined as below. To use them just download this file and put it under features/step_definitions/ You can copy below code clipboard.
Best Practices
API Security - Best Practices and Checklist
Recently API’s (Application Programming Interface) are becoming hot cakes. Implementing API for your application is no more a niche thing but became essential. With advent of multi-faceted application interface (i.e Mobile Apps, Desktop Apps, Web Apps and Other Consumer applications). Its a great tool to expose your application consumption via own and third-party developers looking to integrate with your app. This enhances your audience reach and aid to consumers.
Bots
What not to write in Robots.txt
Robots.txt is a vital part of most/all of websites. It feeds the robots from different search engine e.g. Google, Bing etc.
Bun.sh
Back to Top ↑CDN
Elixir - Static file server
I made to write static file server, can be used as CDN server. Find it at BagwanPankaj@Github
CPU
NodeJS High CPU Usage
A single instance of a Node.JS application runs on only one thread and, therefore, doesn’t take full advantage of multi-core systems. And because of it Node.JS is not suitable for CPU/processor intensive tasks
Checklist
API Security - Best Practices and Checklist
Recently API’s (Application Programming Interface) are becoming hot cakes. Implementing API for your application is no more a niche thing but became essential. With advent of multi-faceted application interface (i.e Mobile Apps, Desktop Apps, Web Apps and Other Consumer applications). Its a great tool to expose your application consumption via own and third-party developers looking to integrate with your app. This enhances your audience reach and aid to consumers.
Cluster
Clustering - Multi-core utilization for Node.JS
While building an application in today’s era; a developer would definitely wish to leverage underlying OS multi-core architecture for performance. Since [JavaScript] is single threaded application meaning that only one thread can run at any given time, hence by default JavaScript can only leverage single core CPU. To come about this, Node.JS has introduced Cluster API. In this article we will have a look at Cluster API, create child processes, and how to use it.
Configuration
Action Mailer Configuration for Google app or Gmail
Recently I needed to setup smtp server to send mail. nothing was new, I simply used rails ActionMailer as one should be. It should have been working, but wait; ohhhhhh snap, it was not!
Crash Course
Back to Top ↑CyberSecurity
Safety Mechanism in Ruby on Rails
Rails became popular and still heavily used by enterprises for its focus on efficiency and productivity. It comes with most suitable defaults for each environment for developer to more focus on building than configuring.
Deno
An Introduction to Deno
A secure runtime for JavaScript and TypeScript. — by (Deno.land)[https://deno.land/]
Deployment
Authenticate Machines not Users
I have been dealing with servers, deployments and system security since long time. One practice that I see and looks much evil to me is using password authentication while deploying to server and/or using password directly into deployment scripts.
Design
Risk in system design
Risk In System design
Design Pattern
Design Patterns
In software engineering, design patterns are software development patterns that make code re-usable and less bug-prone. These are tried and tested patterns that fit in particular scenarios.
Digital Security
Layman’s guide for Cyber Security
Technology has greatly evolved, businesses have gone online, so is digital payment transaction [source]. But to our dismay, cybersecurity awareness is still lowest in India. Banks, financial institutions have adopted digital transactions, online banking but customer awareness is where they fail utterly.
ECMAScript2017
What’s new ECMAScript 2017
Two years ago when ECMAScript 2015 (colloquially known as a ES6) was standardized there was a massive update to the language. Announced at the same time was a yearly release plan that aims to deliver a new version of the language annually and ship it with the proposals that are ready at the time of the TC39 meeting. The list of language improvements is open and you can track it on the TC39 Github account. Following are some noticeable changes in 8th edition or es8 or ECMAScript2017
Effect hooks
Using React’s new Effect Hooks
React has added a new feature named Effect Hooks. So what’s the effect hooks and why were they needed. Effect Hooks allows programmer to use some of the React’s class properties (state and others) without actually extending it, in function component. React class comes with a lot of features but mostly we need is state, props and side effect functions (e.g componentDidMount
, componentDidUpdate
and componentWillUnmount
)
Event
Elixir - Introducing Event Server
So very first behaviour server of OTP that we are gonna look in is Generic(I am guessing what gen means in erlang) event server.
Flashplayer
Flash/SilverLight Player Plugin for Rails 3
It’s been long time since I wrote my last post about Meta programming; I did not find time as I was busy, finally I spared some time from my hectic schedule to upgrade my old plugins to rails 3.
Functional Tests
Back to Top ↑GraphQL
Back to Top ↑Gravatar
Avataree (A ruby gem for Gravatar services)
Avataree is a gem to make your project/app deal with Gravatar services for profile and images in a simplified ruby manner.
HLS
A Look into Video Streaming - MPEG-DASH vs HLS
Streaming is a way of delivering data over the Internet so that a device can start displaying the data before it fully loads. Video is streamed over the Internet so that the client device does not have to download the entire video file before playing it.
HTTP2
Back to Top ↑Hacking
What not to write in Robots.txt
Robots.txt is a vital part of most/all of websites. It feeds the robots from different search engine e.g. Google, Bing etc.
Hooks
Using React’s new Effect Hooks
React has added a new feature named Effect Hooks. So what’s the effect hooks and why were they needed. Effect Hooks allows programmer to use some of the React’s class properties (state and others) without actually extending it, in function component. React class comes with a lot of features but mostly we need is state, props and side effect functions (e.g componentDidMount
, componentDidUpdate
and componentWillUnmount
)
Humongous
Version bump for Humongous
Its been very long since I have updated humongous. I had long list of issues to work upon. Finally I had some time to look back to it and other open source projects.
Hypertext Transfer Protocol
How stuff work Hypertext Transfer Protocol (HTTP)
Whenever you visit a page on the web, your computer uses the Hypertext Transfer Protocol (HTTP) to get that page from another computer somewhere on the Internet.
Hypertext Transfer Protocol version 2
Back to Top ↑IOT
Accessing Raspberry Pi 2 using laptop/desktop display and keyboard
There is a lot of buzz regarding IoT (Internet of Things). So we have got our own Raspberry Pi 2 devise to experiment with it. Though we are building something serious, but here is something for starters to access Raspberry Pi 2 using networking.
Integration Tests
Back to Top ↑Internet of Things
Accessing Raspberry Pi 2 using laptop/desktop display and keyboard
There is a lot of buzz regarding IoT (Internet of Things). So we have got our own Raspberry Pi 2 devise to experiment with it. Though we are building something serious, but here is something for starters to access Raspberry Pi 2 using networking.
Interpreter
JSDB - (A JIT interpreter for JavaScript)
Frankly I used to be frightened from working with JavaScript but since I started working with Core JavaScript(in Titanium) my interest grew for this language. I started hacking around the stuff in JavaScript, but being a Ruby developer from heart I do not want to leave command line and to test the code I have written, I needed some sort of compiler or interpreter like Ruby’s IRB. So as usual I hit the Google but for my misery I found nothing.
Introduction
Go to Go - An Introduction to Go language
First of all Happy New year to all. Great now we should be having a good start for the year 2014. So coming to the point. Being a developer I have worked on server languages and tools, naming ruby, rails, javascript, titanium, mongodb a few.
JIT
JSDB - (A JIT interpreter for JavaScript)
Frankly I used to be frightened from working with JavaScript but since I started working with Core JavaScript(in Titanium) my interest grew for this language. I started hacking around the stuff in JavaScript, but being a Ruby developer from heart I do not want to leave command line and to test the code I have written, I needed some sort of compiler or interpreter like Ruby’s IRB. So as usual I hit the Google but for my misery I found nothing.
JSON
Back to Top ↑JSON Web Tokens
(JWT) JSON Web Tokens for API
In modern era, Authentication and authorization are used widely in mostly every app out there. While authentication establishesh user’s (or machine’s/thing’s) identity, authorization is way to know what kind of access is that user is granted, marking the periphery one is allowed to wander.
JWT
(JWT) JSON Web Tokens for API
In modern era, Authentication and authorization are used widely in mostly every app out there. While authentication establishesh user’s (or machine’s/thing’s) identity, authorization is way to know what kind of access is that user is granted, marking the periphery one is allowed to wander.
Link Dump
Team should work like an open source project
Your team should work like an open source project. On the artificial adoption of open source process and communication in software development organizations.
MPEG-DASH
A Look into Video Streaming - MPEG-DASH vs HLS
Streaming is a way of delivering data over the Internet so that a device can start displaying the data before it fully loads. Video is streamed over the Internet so that the client device does not have to download the entire video file before playing it.
MVC
Go lang and MVC
Its been long since working with go language, been awesome experience so far. This post is regarding how one can structure go application in MVC structure like Rails. This example would be using Martini - A Golang MVC and Gorm - A Golang MVC, for demonstration purpose only.
Maps
Introduction to Maps in Elixir
Elixir v0.13 has introduced Maps
, a key value store. Quoting elixir 0.13 docs
Metaprogramming
Metaprogramming in Rails
Meta-programming means your programming language is writing code for you. And for sure Ruby is a great language having all cool features.Rails being a great ruby framework encashes all features of ruby. Rails itself uses meta-programming every where.
Microservices
gRPC-Communication between Microservices
A high-performance, open-source universal RPC framework
Mongodb
Humongous: A Ruby MongoDB Browser
I recently wrote a lightweight MongoDB browser; written in ruby. It has been written; while keeping non ruby user/developer in mind, for simple use. That means it can be just installed as normal rubygems and fired from console as ususal unix command.
Monkeypatching
Monkey Patching done in a right way (Have some mercy on legacy Ruby)
Classes in Ruby are open; right. That means you can do anything with them, monkey patching around it. But stop doing it before you run into any trouble. I myself used to do it.
Motivation
Learning is like rowing upstream; not to advance is to drop back
Learning is like rowing upstream; not to advance is to drop back—
Multicore
Clustering - Multi-core utilization for Node.JS
While building an application in today’s era; a developer would definitely wish to leverage underlying OS multi-core architecture for performance. Since [JavaScript] is single threaded application meaning that only one thread can run at any given time, hence by default JavaScript can only leverage single core CPU. To come about this, Node.JS has introduced Cluster API. In this article we will have a look at Cluster API, create child processes, and how to use it.
OAuth
Back to Top ↑OAuth2
Back to Top ↑Open Source
Team should work like an open source project
Your team should work like an open source project. On the artificial adoption of open source process and communication in software development organizations.
Operating Systems
Back to Top ↑OperatingSystems
Back to Top ↑Optimisation
Indexes do not scale, choose them wisely
Indexes are most commonly related to improving database speed, query efficiency and lowering latency. As in wikipedia
Patterns
Design Patterns
In software engineering, design patterns are software development patterns that make code re-usable and less bug-prone. These are tried and tested patterns that fit in particular scenarios.
Plugin
Difference Between Gem and Plugin
Now a days many developers are developing web application using ruby on rails. But a few of them know what actually the difference between “Gem” and “Plugin”.
Plugins
Flash/SilverLight Player Plugin for Rails 3
It’s been long time since I wrote my last post about Meta programming; I did not find time as I was busy, finally I spared some time from my hectic schedule to upgrade my old plugins to rails 3.
Privacy
Back to Top ↑Process
Team should work like an open source project
Your team should work like an open source project. On the artificial adoption of open source process and communication in software development organizations.
Processes
Elixir - Lightweight Processes and spawning a proess
Erlang is popular because of its lightweight processes, actors and working rightly in distributed system. Elixir brings that on Lets look
RESTful
Back to Top ↑RPC
gRPC-Communication between Microservices
A high-performance, open-source universal RPC framework
Rake
What is Rake in Ruby
This article has been updated in 2016
Raspberry
Accessing Raspberry Pi 2 using laptop/desktop display and keyboard
There is a lot of buzz regarding IoT (Internet of Things). So we have got our own Raspberry Pi 2 devise to experiment with it. Though we are building something serious, but here is something for starters to access Raspberry Pi 2 using networking.
Raspberrypi2
Accessing Raspberry Pi 2 using laptop/desktop display and keyboard
There is a lot of buzz regarding IoT (Internet of Things). So we have got our own Raspberry Pi 2 devise to experiment with it. Though we are building something serious, but here is something for starters to access Raspberry Pi 2 using networking.
React
Using React’s new Effect Hooks
React has added a new feature named Effect Hooks. So what’s the effect hooks and why were they needed. Effect Hooks allows programmer to use some of the React’s class properties (state and others) without actually extending it, in function component. React class comes with a lot of features but mostly we need is state, props and side effect functions (e.g componentDidMount
, componentDidUpdate
and componentWillUnmount
)
Risk
Risk in system design
Risk In System design
Robots
What not to write in Robots.txt
Robots.txt is a vital part of most/all of websites. It feeds the robots from different search engine e.g. Google, Bing etc.
SCRUM
Back to Top ↑Scaling
Indexes do not scale, choose them wisely
Indexes are most commonly related to improving database speed, query efficiency and lowering latency. As in wikipedia
Search-Engines
What not to write in Robots.txt
Robots.txt is a vital part of most/all of websites. It feeds the robots from different search engine e.g. Google, Bing etc.
Security-Awareness
Layman’s guide for Cyber Security
Technology has greatly evolved, businesses have gone online, so is digital payment transaction [source]. But to our dismay, cybersecurity awareness is still lowest in India. Banks, financial institutions have adopted digital transactions, online banking but customer awareness is where they fail utterly.
Selenium Alternatives
Back to Top ↑Silverlightplayer
Flash/SilverLight Player Plugin for Rails 3
It’s been long time since I wrote my last post about Meta programming; I did not find time as I was busy, finally I spared some time from my hectic schedule to upgrade my old plugins to rails 3.
Single Page Apps
Back to Top ↑Software Lifecycle
Back to Top ↑Software Management
Back to Top ↑Spawning
Elixir - Lightweight Processes and spawning a proess
Erlang is popular because of its lightweight processes, actors and working rightly in distributed system. Elixir brings that on Lets look
System
Authenticate Machines not Users
I have been dealing with servers, deployments and system security since long time. One practice that I see and looks much evil to me is using password authentication while deploying to server and/or using password directly into deployment scripts.
Systems
What not to write in Robots.txt
Robots.txt is a vital part of most/all of websites. It feeds the robots from different search engine e.g. Google, Bing etc.
TOTP
How does it work TOTP (Time Based Authentication) app
Late in the day one may have encountered many application asking for Second Factor authentication. Most of those uses OTP (One Time Password) via email or SMS. However we have new competitor in this arena, called TOTP (Time Based OTP) apps. There are many big players are in the race, i.e Google Authenticator and Microsoft Authenticator App
Team
Team should work like an open source project
Your team should work like an open source project. On the artificial adoption of open source process and communication in software development organizations.
Team Management
Back to Top ↑Technical Debt
Back to Top ↑Test Automation
Back to Top ↑Test Framework
Back to Top ↑Things
Design Patterns
In software engineering, design patterns are software development patterns that make code re-usable and less bug-prone. These are tried and tested patterns that fit in particular scenarios.
Time Based Authentication
How does it work TOTP (Time Based Authentication) app
Late in the day one may have encountered many application asking for Second Factor authentication. Most of those uses OTP (One Time Password) via email or SMS. However we have new competitor in this arena, called TOTP (Time Based OTP) apps. There are many big players are in the race, i.e Google Authenticator and Microsoft Authenticator App
Translation
Translating Date and DateTime in Rails
I was using newdesk’s translate plugin for generating unicode. But there was no way by i can translate date and date_time. So I had to find another way.
Here I am telling you guys what i did
Two factor authentication
How does it work TOTP (Time Based Authentication) app
Late in the day one may have encountered many application asking for Second Factor authentication. Most of those uses OTP (One Time Password) via email or SMS. However we have new competitor in this arena, called TOTP (Time Based OTP) apps. There are many big players are in the race, i.e Google Authenticator and Microsoft Authenticator App
TypeScript
An Introduction to Deno
A secure runtime for JavaScript and TypeScript. — by (Deno.land)[https://deno.land/]
URL Shortener
Shortly (A cleaner Ruby wrapper for various url shortener services)
As mentioned in header Shortly is a cleaner Ruby wrapper for various url shortener services. It support maximum number of url shortener services out there huh(excluding url shortener services whose own url are not even short. Believe me they are many).
Unit Tests
Back to Top ↑Views
New Ways of rendering partials
I was working on project when I bumped into a new feature, rather an old one; I don’t care although, that we can render partial without writing partial or locals. Check it out how?
before
Web Assembly
Introducing WebAssembly using Rust
WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machines. WASM is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
Web Frameworks
Best Top 6 Rust frameworks to watch out in 2023
In 2023, which Rust web framework will be the best for looking into before you start developing APIs and web applications? Here, we’ll look at some of the most popular frameworks currently in use or looks promising. We’ll also explore look at some simple examples to look at their design principles
Web Server
How Stuff Works - Nginx
Assume this - you are done developing your web application and now you need to search for right web server for your production, that is fast secure and reliable.
WebAssembly
Introducing WebAssembly using Rust
WebAssembly (abbreviated WASM) is a binary instruction format for a stack-based virtual machines. WASM is designed as a portable compilation target for programming languages, enabling deployment on the web for client and server applications.
WebRTC
Back to Top ↑WebSockets
Back to Top ↑Webrat
Webrat Steps extension (Be more DRY)
Recently when I was working with Cucumber and Webrat, I found default webrat definition very interesting. Even in some case I didn’t even had to write a single step definition. But while proceeding I found that something is missing from webrat definition. So I decided to extend it. And come up with some methods defined as below. To use them just download this file and put it under features/step_definitions/ You can copy below code clipboard.
arrow functions
When not to use Arrow Function
Arrow Functions
behaviour
Elixir - Introducing OTP
Erlang system is tried and tested for years and known for fault tolerance, robustness, ditributed operation handling and concurrency. OTP, stands for Open Telecom Platform, even though there is nothing specific about telecom.
coroutines
Why one should learn Go, in 2019
Go was first appeared on November 10th, 2009 designed by Rob Pike, Ken Thompson and Robert Griesemer. Go was introduced as a new system programming language with quick build times, great tooling, simple concurrency model, and a different approach to object-orientation.
es8
What’s new ECMAScript 2017
Two years ago when ECMAScript 2015 (colloquially known as a ES6) was standardized there was a massive update to the language. Announced at the same time was a yearly release plan that aims to deliver a new version of the language annually and ship it with the proposals that are ready at the time of the TC39 meeting. The list of language improvements is open and you can track it on the TC39 Github account. Following are some noticeable changes in 8th edition or es8 or ECMAScript2017
goroutines
Go waitgroup with goroutines
Previously in Golang Concurrency we talked about how goroutines in Go language works. Today we will focus on providing robustness to our previous talk by using semaphores from Golang sync package.
grpc
gRPC-Communication between Microservices
A high-performance, open-source universal RPC framework
indexes
Indexes do not scale, choose them wisely
Indexes are most commonly related to improving database speed, query efficiency and lowering latency. As in wikipedia
jQuery
Pretty Radio Buttons
This tutorial is an extension of Aaron’s blog. This tutorial shows how to implement radio button using checkboxes and css with the help of jQuery.
martini
Go lang and MVC
Its been long since working with go language, been awesome experience so far. This post is regarding how one can structure go application in MVC structure like Rails. This example would be using Martini - A Golang MVC and Gorm - A Golang MVC, for demonstration purpose only.
methods
Go to Go - Struct and Methods
Go has a speciel type struct
to define custome type with named fields. Struct act like collection of attributes/properties similar to classes in OOPS languages out there, but not exactly.
nosql
Indexes do not scale, choose them wisely
Indexes are most commonly related to improving database speed, query efficiency and lowering latency. As in wikipedia
package
Go to Go - Packages
Go is modern language, so it has to take care of current software development practices; code reuse or DRY (Don’t Repeat Yourself) being one of them. In go code can be packed into modules and shipped. Lets look into how go uses packages.
promises
Promises in ES6
In JS world, promise
s always been a controversial topic. Interestingly, There are lots of libraries out there implementing promise in there own tastes. jquery’s deferred, q, bluebird, deferred.js to name just a few. Opinions conflict over using async, generators, callbacks etc. But thank God; ECMA has now officially implemented promises in ES6. That’s a good news for JS community over having a single standard implementation of promises.
quote
Elixir - Quote Unquote
Most functional languages are great in treating/presenting everything as data. Elixir is no less, it has power to present anything into data using its powerfull quote
, unquote
.
sql
Indexes do not scale, choose them wisely
Indexes are most commonly related to improving database speed, query efficiency and lowering latency. As in wikipedia
struct
Go to Go - Struct and Methods
Go has a speciel type struct
to define custome type with named fields. Struct act like collection of attributes/properties similar to classes in OOPS languages out there, but not exactly.
unquote
Elixir - Quote Unquote
Most functional languages are great in treating/presenting everything as data. Elixir is no less, it has power to present anything into data using its powerfull quote
, unquote
.
waitgroup
Go waitgroup with goroutines
Previously in Golang Concurrency we talked about how goroutines in Go language works. Today we will focus on providing robustness to our previous talk by using semaphores from Golang sync package.