How Googlebot was able to wipe out an entire database.

Originally published on by  on 2006-03-28.

Reposting as I thought this was a fairly good issue that any web developer can get into.

Josh Breckman worked for a company that landed a contract to develop a content management system for a fairly large government website. Much of the project involved developing a content management system so that employees would be able to build and maintain the ever-changing content of their site.

Because they already had an existing website with a lot of content, the customer wanted to take the opportunity to reorganize and upload all the content into the new site Continue reading

Getting Started with Kotlin – Part 1

I have been building Android Apps for over  5 years now. Started off in java and now a big shift to Kotlin took me quite some time to get accustomed to it. So here, I’m sharing some nutshell of Getting started with Kotlin.

So we all know why Kotlin, if not here’s a link. If you want me to cover that do let me know as well. However, when I saw all the hype Kotlin created after being announced the official language of Android Development. I wanted to get into the nitty-gritty stuff that to say the language itself. So if I’m about to shift my existing knowledge better start from scratch right?

So here, I’ll share the basics. The language itself.



Kotlin has two types of variables ie val and var.

val: Use this if you want to define an immutable variable, a constant.

val firstName: String = "Shilu"
val lastName = "Shrestha"

Notice how we don’t explicitly declare the type of  lastName. Kotlin is a strongly typed language that supports type inference or deduction. The compiler handles type inference. Continue reading

Intent and Intent Filters


A intent is an abstract description of an action to be performed. Also known as a messaging component that is used to request certain action from another component.

Intents have basic fundamental use cases:

  1. To start an activity: Used to start new instance of an activity by passing intent to it.
    ie. startActivity(new Intent(<CONTEXT_PACKAGE>, <CLASS>)).
    Similarly, if we want to receive a result from the starting activity then we use startActivityForResult(<INTENT>, <RESULT_CODE>).
  2. To start a service: Start a service to perform one time service by passing intent to startService(<INTENT>).
  3. To deliver a broadcast: Deliver broadcast to other apps by passing intent on functions such as sendBroadcast(<INTENT>). There are other ways to send broadcasts as well which will help differentiate what type of broadcast is being delivered. Learn more here.

Intent Types

There are two types of intents Continue reading

Four Building Blocks of Android

Lets talk about the four fundamental building blocks from which all the android applications are built. These building blocks are implemented as Java classes.

Android Component

Here is a diagrammatic representation of android application fundamental which explores android components and other fundamentals by Romain Chaippinelli.

application fundamental







Lets understand the four building blocks Continue reading

Dalvik Virtual Machine

We might think that as android is written in java it should also run on Java Virtual Machine using Java Compiler to compile its code. However, this is different in android ie. android uses Dalvik Virtual Machine to execute its code.


Dalvik Virtual Machine was build to make applications run in environment with resource constrains. By resource constrains what do we mean here is, comparatively mobile devices run under particularly low memory while desktop devices or laptops are high end devices with lesser constrains like this. Hence, Dalvik VM was specially designed to run on resource-constrained environment.

Extra Info: Dalvik byte codes Continue reading

Introduction to Android

Android is an operating system which was build for mobile devices and tablets. It is a software stack comprising not only operating system but also middleware and key applications.

The Platform

Android provides low level system software to high level end user application software. Android includes Linux kernal based OS, rich UI, multiple build in software, Telephony services, multimedia frameworks etcs. One of the best part about android platform is regardless of how strong a build in application might be you can always build similar powerful applications with access to all the resources on the device. Since android is an open source platform you can also get application level codes and start experimenting with it.

The Layer of Android Architecture

Linux Kernel: This provides a Continue reading

Install Android Virtual Device (GenyMotion)

Let’s dive into installing genymotion as a virtual device for you android applications.

Download and install virtual box (Optional)

Download VirtualBox + follow instructions to install.

SignUp for GenyMotion and download it’s installer

Sign up for an account  here.

Download the appropriate installer with (if you have skipped first step) or without virtualbox.

Run the GenyMotion Application

Select Virtual device you want to install.  Continue reading