Category Archives: Uncategorized

Web design questions: Here’s what to ask before starting out

A lot of web designing is routine for millions of companies and freelancers. But not all tasks are easy; many warrant long spells spent in battling complex problems.

As a web designer, a checklist of questions to ask your clients can pre-empt many hassles along the way.

With the right answers, you can create a documented set of requirements to guide yourself through a web design project.

Detailed here are five key questions web designers need to ask their clients:

Q 1. What exactly is your profession or business interest?

Knowing the answer to this question will help designers finalize the right combination of shapes, colors and typography on the site.

A dentist may want to infuse a refreshing mint feel in the minds of visitors. A gift shop will want to instantly ignite the joy of giving. A lawyer will want a distraction-free interface to bring his clients straight to the services they need.

You as a designer will need to study a little about your client’s work and stretch your imagination.

Q 2. Who are your competitors?

Your client is very likely to have competitors. Insist on knowing who they are, and create something better and simpler than them.

Competition is a healthy thing – it forces us to raise the bar and evolve.

Q 3. Have you identified example web designs?

Emulating other successful players in your arena is a great idea. A photographer might find appeal in a Pinterest-like design. Someone else may love the soft, tiled design brought about by the metro-style UI.

You might want to give your own recommendations based on this response. For instance, your client’s example site has a slider, but you could convince him that a short video to welcome visitors will be far more pleasant.

Q 4. Are you going to provide text, images and the logo?

If your client’s answer is yes, make sure you are addressing copyright concerns where appropriate. Also, insist on high quality images.

If you are asked to create a logo, ponder over your client’s response to Q1 and work towards creating a memorable icon.

Q 5. What is your budget?

Ask for a ballpark range for the budget to help yourself or your team figure out the right approach.

What if the desired web design requires you to mobilise rare and expensive JavaScript ninjas? Your client’s budget will help you decide.


Are you looking for more checklists and questionnaires to streamline your efforts? Take a look at this diligently compiled article by Cameron Chapman on Smashing Magazine, which is among the web’s most widely-respected authorities on web design.

In Conclusion…

Websites can be designed using innumerable approaches. Some people might consider using pre-cast building blocks delivered through software, while others may use a more powerful and flexible strategy that involves delving deep into code and making changes at will.

Whatever the case, this is a truly exciting exercise. But just like professional sport, you cannot win alone – ample answers and clear communication from clients will pave the way for success.

Unlist Your Number from TrueCaller today!

UPDATE July 18, 2013: Approximately 7 months after this article was published, there’s been news that the TrueCaller database has been hacked into by the so-called Syrian Electronic Army. Again, this highlights the need for users to be careful in the choosing the companies with whom they entrust their private data.

TrueCaller is a mobile app and online service that serves as a very large phonebook for reverse phone number lookups. It can be used to augment your own phone’s contact list in your iOS, Android, Windows Phone, Symbian, or BlackBerry device, helping you let know the names of unknown callers. You can test to see which of your or your friends’ numbers are available in their database at

How does it work?

TrueCaller claims to source the caller information present in their database partly from public directories, and partly from “crowdsourced” data.

However, when I checked, their data didn’t seem to come from public directories. I began searching for my friends’ landline and mobile numbers and those of my own as well, and noted a few interesting things:

  1. Sometimes somebody else’s name would prop up. This would probably be a previous owner, or the former name of the person in case of a name change.
  2. Sometimes the company name would be suffixed or prefixed to the name.

This definitely seems to be populated from contact lists of users.

TrueCaller seems to stop here – it doesn’t, for example, seem to retrieve or store users’ locations. Also, it doesn’t support searching by name – you can only search by number. However, what TrueCaller does reveal is still bad enough, and has actually made many users unhappy, as you can see in a Quora thread on this subject.

Removing your Number

Luckily, fixing this privacy issue turns out to be easy. Head over to Unlist your Phone Number to request an automatic unlisting of your number. It took a few hours for my numbers to get unlisted, and I heaved a sigh of relief after that.

6 Ways to Defend Yourself Against Viruses and Malware

Which virus protection is the best?

Well, to protect yourself against malicious software, the six defensive ways detailed below can work better than the best anti-virus software left to act alone.

1) Be aware of virus symptoms, and attack vectors

This piece of advice might sound something beyond the realm of non-techies. However, non-techies had to learn how to use computers anyway, and learning a little about the basics of viruses won’t hurt. The information contained in this article is a good start.

(i) Be wary of suspicious, new process names in the list of running processes

Sometimes these processes have the same names as legitimate ones to disguise themselves (svchost.exe is an example). Sometimes they have similar names, like svvchost.exe and _services.exe (the legitimate ones have the names svchost.exe and services.exe). The username that’s running the process sometimes gives an indication of whether it’s a legitimate system process or not – a virus usually runs under the currently logged-in user’s name. If you’re a power user, you’d want to use Process Explorer, which will allow you to dive in more deeply when inspecting processes, such as figuring out which exact executable on the file system is responsible for the running process.

(ii) Emails from your friend may not have been actually sent by them

Be wary of opening email attachments, unless you were expecting them – even seemingly innocuous video files could cause your data to disappear. Take your precautions even when the attachment is expected – the anti-virus scanners embedded with the popular email providers provide a good defense.

On a similar note, be careful when downloading files randomly from the Internet. Executable (.exe or .com on Windows) files are the ones that can cause most harm.

(iii) Do not leave the Windows’ auto-run option enabled for portable drives

Auto-run has long been one of the most popular ways in which viruses spread – ensure that you keep it disabled. Never, ever, trust a portable drive that had been previously inserted into a machine that you don’t own, even if it has an anti-virus. Use your anti-virus to scan data that has arrived from external sources. Viruses won’t usually spread through text editors, so you can use these if you’re just inspecting simple files and don’t have an anti-virus at hand.

(iv) Watch out for typical virus symptoms, and gear up to protect yourself

These include:

  1. Access disabled to Task Manager, the Registry Editor1, or msconfig2.
  2. Spikes in CPU or GPU usage – these can be observed either through monitoring tools, such as the Task Manager for the CPU, or GPU-Z for the GPU, or by noticing the hardware fans spinning faster when there is no processor intensive program running.

A good tactic is to run anti-virus scans, preferably from outside your OS, such a Live CD, whenever you detect suspicious activity. Live CDs allow you to boot into them without having to load your OS, which might end up running the virus before any anti-virus can take effect (assuming that the anti-virus failed to detect the malware when it loaded itself onto the machine). Bitdefender Rescue CD is one such option. In addition to regular viruses, Bitdefender scans for rootkits – malware that reside deep within the core of the OS, evading detection while carrying out malicious activity.

(v) Safe online banking

Most Linux distributions, including Ubuntu, support booting from a Live CD and are great for providing added protection when banking online, since viruses cannot write to these disks permanently. Live CDs offer no compromise when it comes to your online browsing experience. These Linux distributions can also be installed on bootable USB sticks.

2) Choose to manually enable the running of plugins in your browser

Chrome and Firefox have the option of enabling “Click to Play” for plugins (i.e. either Flash or Java) within websites so that they run each time only with your permission which you provide by clicking on the area of the page in which . This will help prevent drive-by attacks from malicious code embedded in such plugins, which are almost always hidden from view, or use some sort of social engineering to trick users into downloading malware.

In Chrome, copy and paste chrome://chrome/settings/content into your address bar, and choose “Click to play” under “Plugins”.

Chrome Plugin Settings

In Firefox, go to about:plugins, and turn on the plugins.click_to_play option.

3) Update your OS, focusing on the security updates

They are called “security” for a reason. This is especially important for the Windows OS. Because of Windows’ popularity, hackers have been known to target security holes in Windows on unpatched machines by studying the fixes Microsoft sends out. This is becoming true even for Mac’s OS X; the recent Java malware is an example –though Apple actually released the update and fix after the Trojan was out in the wild. A Windows example: If you updated before Sasser arrived, you’d be 100% secure.

4) Use a firewall

This doesn’t offer much more protection from Internet worms than a NAT, but will be useful if you connect your laptop to a public network. It will also protect yourself from infected machines on your own network. A firewall would protect you from Sasser even if you didn’t install security updates at the time, and would offer partial protection against MSBlast.

While the built-in Windows Firewall provides decent protection, you could try out third-party solutions like ZoneAlarm for better control over what moves in and out of your computer.

5) Use an Anti-virus

This is important, but you must know where it stands – it cannot protect you against everything. In fact, most people skip it on the Mac and Linux, though it’s always recommended for Windows. Remember, you are worse off if you use an anti-virus but don’t know how viruses work.

I bet if you brush up your knowledge of viruses and run Windows without an anti-virus, you’d be infected fewer times than a noob running an anti-virus on a Windows and not knowing a thing about viruses. Anti-virus software are perfect if you realize that they work best for protecting against viruses that the software already knows about, and not so good at protecting new ones.

6) Backups

Whatever precautions you take, you might still lose the fight. Always ensure that you have important data backed-up, so that you can easily restore it in the case of an infection.

Even if there was no danger of infection, backups come in handy in the case of hardware failure, for which you should be prepared for anytime.


  1. ^The Registry is a database of configuration settings and options related to the Microsoft Windows operating systems. It can be accessed by pressing Ctrl+R, typing regedit.exe and pressing Enter
  2. ^MSConfig is a Microsoft Windows utility you can use to troubleshoot issues related to processes that are loaded on startup. Viruses often register themselves to start up automatically – you can remove the easier ones using msconfig or by editing the registry.

Converting Multiple VMDK (Virtual Machine Disk) files into one

To convert multiple VMDKs into a single file, I used the following command (LinuxVM.vmdk is the name of the first VMDK file – i.e. the one attached to the VM):

$ vmware-vdiskmanager -r LinuxVM.vmdk -t 0 LinuxVMSingleDisk.vmdk

Note that vmware-vdiskmanager is bundled as part of VMware Workstation. I couldn’t locate that as a separate download, so I ended up downloading the trial version of Workstation.

The above operation takes a while, but not too long. It shows its progress as it completes.

Next, I had to modify the VM settings so that it would use the new disk. I couldn’t find this option in the GUI, so I had to modify the vmx file manually (use an appropriate editor on a Windows system):

$ vi LinuxVM.vmx

I modified the scsi0:0.fileName property to point to the new disk:

scsi0:0.fileName = "LinuxVMSingleDisk.vmdk"

Next, I double checked the VM settings in the GUI to check if the disk had changed, and then booted it up to confirm everything is fine. I then deleted all the old, multiple vmdk files.

The Motivation for Doing This

I’d been using a few heavy applications in my VM: an HTTP server, an Application Server behind it running a couple of large applications, and a database. When doing intensive work, my hard disk would make grinding noises and my Ubuntu host would suddenly exit to the login screen. I’d lose all data in my current session, though oddly, some background applications would continue to run.

So I decided to implement VMware’s suggestion to use a single file for better performance:

VMware Workstation - Creating a virtual disk

Did it really work? The host did crash once, but that was when another heavy application was running on the host itself. In my entirely subjective assessment, I do think there’s been an improvement in performance – though I still need to be a little careful with certain applications.

TCPMon – A Basic Tutorial

TCPMon is a nice little tool for testing TCP communication between a client and server. It is an open source project, distributed under the Apache 2.0 license.

Downloading and Running TCPMon

To download TCPMon, head over to the Apache TCPMon download page and download the binary distribution.

(There’s a Google Code Project called TCPMon too, but that’s not the same one, and has fewer features)

Once downloaded and extracted, navigate to the build folder and run TCPMon by executing on Linux or tcpmon.bat on Windows. (On Linux, you’ll need to set the execute bit on the sh file before you run it). Note that your current working directory must be the build folder, else Java will report a ClassNotFoundException

TCPMon as an intermediary between clients and a single server

I found TCPMon useful when testing a webservice client I was implementing – I wanted to be certain that it’s sending the right data, and also wanted to double check the server responses in a convenient way. Here’s what you need to do:

  1. Specify the listener properties. The listener port is any arbitrary port that you’d like TCPMon to listen to (and that any other process isn’t using). The target port is that of your webservice.
  2. Click Add

TCPMon admin tab - Configuring a listener

In the window that appears, you will be able to monitor connections between your client and server after setting up your client to point to TCPMon’s listening port. TCPMon forwards all requests to the target server, and you’ll be able to see the requests and responses as they occur.

Requests and responses in TCPMon

Checking the “XML Format” box adds appropriate indentation to any XML in subsequent requests and responses. This can make it easier to read.

TCPMon as a proxy server (an intermediary between clients and an outbound connection of the machine hosting TCPMon)

Another functionality is the use of TCPMon as a proxy – you can set up a proxy server on your machine using it, so that all requests from another device or machine are routed through the proxy.

I found this useful when testing on mobile devices that needed to connect to a VPN network accessible from my computer, but not from the device itself.

Here’s what you need to do to set up the proxy server:

Setting up a proxy server in TCPMon

To get a mobile device connected through this proxy, you’ll need to modify the proxy settings of your Wifi connection:

Setting up an iPad to connect to TCPMon

Now all requests from this device will be routed through the TCPMon proxy.

Note that TCPMon is useful only for simple testing of requests and responses – it fails to work on anything more than a small number of requests. You’ll need a dedicated proxy server for that.

Also, if you’re connecting to a single server, it’s best to go with the first approach of an intermediary rather than a proxy server, so that TCPMon doesn’t capture traffic you don’t need to inspect.

Sending custom requests

The “Sender” tab can be used to craft your own SOAP requests and send them. The fields under this tab are pretty self-explanatory:

Sending requests from TCPMon

– See more at: file:///C:/B/Backups/Technonstop/

What does the Amazon vs Flipkart Contest Herald for us?

When you’re out to shop online, there’s a greater variety than ever before if you’re in India!

Shopping giant Amazon has launched the curiously named in beta mode to target Indian customers. Presently, it is only a comparison shopping site rather than one that allows customers to order directly and obtain shipping from Amazon’s own dedicated courier services. Shoppers are taken to vendors’ individual sites to complete their purchases, and experiences may vary.

UPDATE (10th Feb, 2012): Amazon has been granted FDI approval to set up its logistics service in India.

Junglee means ‘of the forest’ in Hindi, and by all means, the offering at the first instant indeed looks to be just a subset of the vast forest that Amazon has become!

The move appears to be cautious, given the fact that Flipkart has achieved wide acceptance in the country, and a full-scale online shopping war of dominance is going to leave consumers frustrated.

Hanging Around on Junglee

I checked out a few camera deals on the new site, and found the comparisons impressive. It’s a good thing to see several aspects of multiple sellers like seller information, shipping rates and return policy nearly at once, and it would be even better if a summarized at-a-glance chart was provided.

Camera Deal on

What about the shopping experience? That will depend on the sellers and their past track records. For now, I’ll hang around on Junglee if I’m looking for something, but probably head over to the trusty Flipkart to hit the “Buy This Now” button.

It’s the same early mover advantage that stops Facebookers from migrating to Google+.

When will Amazon Stamp the Accelerator?

Amazon has chosen to mark its presence through a yellow-pages-cum-reviews shopping website, which is likely to help give good exposure to little known merchants.

That’s great news if you’re a seller seriously looking to expand.

In my opinion, what ultimately will make the difference is Amazon’s ability to match Flipkart’s low prices, timely delivery and the friendliness of trusted delivery personnel.

A quick look at the Amazon services page reveals tremendous promise for sellers. What can be more encouraging than “convert our traffic into your customers” and “no listing fees”?

The question is whether the individual merchants will help maintain the image Amazon needs to make it big in India.

Do you think Amazon will give Flipkart a run for their money? Will healthy competition in India boost the online shopping experience? We’d like to hear your thoughts!

The Meaning of dot slash for Running an Executable in Linux

The dot refers to the current directory. The forward slash “/” is the directory path separator.

So, when you type in ./filename at the shell, you prefix the filename with the path to the current directory.

Why do we need to do this when running any executable file?

When you run a command in the shell, it either runs it as a built-in command, or as an executable.

If it isn’t a built-in command, the shell tries looking for the executable in all the directories specified by the PATH environment variable – you can see what this contains by typing in echo $PATH in the terminal.

So if your file is in the current directory, the shell won’t find it – because the current directory is not included in the PATH by default. If you prefix the dot and the slash, the path to the file is passed to the shell, which looks for it exactly at the specified location. In fact, the shell doesn’t search the PATH at all when an absolute or relative path (other than just the filename) is specified.

Here’s something to try, but make sure you immediately undo it by exiting the terminal: Add the current directory to the PATH variable in your current shell by typing in

export PATH=$PATH:.

Now, you can run your executable without the dot slash!

WARNING: As noted in the comments below, this change has security implications. The above command will last only for the current terminal session – the changes to the PATH variable will be lost when you exit the terminal. Make sure you do not make this change permanent.

How about using the absolute path?

Since the dot slash helps the shell find the executable by specifying the directory, providing the absolute path without the dot prefix also works.

People might think you always need the dot to be prefixed, even when using absolute paths, but that doesn’t work because you end up prefixing the path to the current directory in addition to the complete path.

Note that you can also execute files using a relative path, in the form of <sub-dir>/<executable>, for example.

5 Ways to Boost Your Efficiency with Eclipse


Learn to use the shortcuts. Seriously!

Did you know that if you need to scroll suddenly while typing, you don’t need to reach out for your mouse? Just use the Ctrl or the Ctrl key combinations to scroll up or down.

To learn more about Eclipse shortcuts, head over to TechNonStop’s tutorial on Eclipse Shortcuts.


Templates are a must-learn – there are so many out there.

For example, sysout, syserr, and systrace.

Look up Window->Preferences->Java->Editor->Templates for all the pre-defined templates available, and don’t forget to add your own!

Often, those working on a single project would like to share templates they create so that the whole team enjoys the shortcuts.

Eclipse Preferences - Java templates

Tweaks to eclipse.ini

I’ve had a noticeable improvement in startup time and overall response times on my Eclipse installation by adding the following to eclipse.ini, at the bottom:


Source: Nerds-Central: Tuning The JVM For Unusual Uses – Have Some Tricks Under Your Hat

Also, tweak the Xms (initial heap size) and Xmx (maximum heap size) to higher values, depending on your RAM and the number of other running applications, or in the event that Eclipse gives you nasty “OutOfMemory” errors. 384m and 1024m respectively for Xms and Xmx work well on my 4 GB machine.

Note: The above optimizations are for Sun’s Java 7. If you use another JDK version, look up this thread for optimizations that have worked for others.

Useful Plugins

Mylyn is an excellent plugin to keep track of your TODOs. The Java EE version of Eclipse has this plugin installed, as well as others that are quite useful. Examples are the Web Page Editor for HTML editing, and the XML editor for XML editing.

Use your version control system’s plugin for Eclipse, so that code check-ins can be done from within.

The JDEclipse Decompiler plugin is useful for class decompilation.

Google’s CodePro Analytics is great to analyze and improve the quality of your code.

Eclipse color themes has a cool plugin for changing color themes.

There’s also this cool JSON Editor Eclipse Plugin.

Whatever plugins you use, ensure that you turn them off on startup. Go to General->Startup and Shutdown, and uncheck ALL plugins listed. Also, disable or uninstall the ones you don’t need.

Improve General Eclipse Knowledge

Did you know that you can use the Navigator View (rather than the Package explorer) to see all the files present, including .project files and the bin directory?

Did you know you could just paste exception stack traces into the Java Stack Trace console, and lines numbers turn into hyperlinks?

Use the documentation to keep improving your general knowledge on Eclipse, and for more tips and tricks!

Add shortcuts to related external tools

Yes, I did say 5, but here’s a bonus!

Using the External Tools Configuration window (accessible from the External Tools icon in the toolbar), add shortcuts to scripts that automate commonly run tasks.

For example, I have a script that does the following: syncs down latest code, builds it and runs the test cases after deploying the newly generated artifacts to a locally running server. Adding a shortcut to this within Eclipse has greatly eased the way I run the script and refresh my workspace after it completes.

Five Reasons to Adopt Linux, Today!

The popular open source news site LXer recently published a detailed article on the advantages of Linux, with the aim of dispelling unfair cynicism.

Whether you are a home user or a business owner, Linux is a great choice for an operating system. I entered the Linux world pretty recently, after spending a long time with various Microsoft Windows versions. Now, there’s no looking back!

I’ve identified the top 5 reasons to consider turning to Linux:

1) Cost of operating your computer.

Microsoft Windows offers various paid license plans to run your computer, or install copies on several machines in a network. When you turn to Linux, software that runs your computers is completely free!

This is a great advantage for both home users and businesses who are seeking to cut costs.

2) The spirit of sharing.

Linux is based on sharing and caring. Linux is often the force behind social initiatives that bring computing power to less privileged children and people in war ravaged areas.

When you adopt Linux, you are automatically enrolled into community service – pure material aims take a backseat.

3) Vibrant support communities.

There are extremely active support communities that help users of various distros troubleshoot their problems. The AskUbuntu forums which I’ve used for my Ubuntu system is just one of countless examples. Experienced users will patiently help you run your computer flawlessly, without asking even a cent for it.

If you’re new to Linux, you surely won’t feel lost.

Paid support is also available from companies specializing in it, especially at the enterprise level.

4) Security.

Linux provides the harshest environment for viruses to live. Open source software is collaboratively scrutinized by developers from around the world, which means that viruses will be busted well before they make it to your computers.

You do need anti-viruses on a Linux box, at times. These are chiefly meant for scanning Windows drives, or viruses that execute themselves with Wine!

5) Linux encourages you to be tech savvy.

What is more gratifying than knowing the what, where, when, how and why of the software that powers your computer?

If you’re an Apple user, you’ll typically head straight to the nearest Mac genius for help in times of distress. As a Windows user, you’ll probably hesitate to venture beyond the basic troubleshooting methods.

Linux users set a very different example. They try to get to the bottom of every problem themselves (if they ever come), get help from worldwide networks of users if they’re stuck, and ensure that they’ve straightened out issues with their operating systems.

Linux has retained the way the classical Unix operating system works. Most servers today run Unix-like operating systems – if you’re technically inclined and get accustomed to using Linux, you’re getting to know how operating systems worked in their original design.

Sounds cool?

Choose from an array of distros, and get ready to go the Linux way!

What has been the most compelling reason for you to adopt Linux and stay with it? Are you skeptical about using Linux? Use the comment form below and speak your mind!

Remotely Working Together on a Terminal Session in Linux

I often get a chance to work from home, and this has given me opportunities to look for ways to share sessions with my colleagues. Windows XP used to have the excellent NetMeeting tool, but I recently switched to Ubuntu and haven’t yet found an equivalent.

Yes, I’ve heard of VNC and used it a lot too, but I wasn’t happy with its remote desktop sharing performance. Ekiga is interoperable with NetMeeting calls, but doesn’t support screen sharing. Even Skype’s screen sharing does not seem to support remote screen controlling.

However, Linux’s power is at the command line, and this is true even in the case of remote sharing. So here comes screen to the rescue – this magical command allows you to flawlessly resume lost sessions and share them with multiple users at the same time.

Starting screen

Start screen using

screen -d -R session_tomcat

Replace session_tomcat with any other helpful name for the session you’re about to create.

Sharing your Session

Ask your friend to connect using (assuming they are logged in using the same user account):

screen -x session_tomcat

Now it’s simply magical. Multiple persons can type and work on the same terminal – it works best when you’re coordinating over the phone. Note that the dimensions of your terminal output will be the same for every user – to change it, press CtrlA and then capital F. This will make the screen output fit your current terminal size, and change it to that size for every connected user.

Detaching from a Screen Session

Important: To detach from the screen session so that you can resume later, simply close the window. If you type exit, you’ll end up terminating the screen session and the processes running within.

Why screen is better than nohup and tail

Here’s a comparison. Consider a hypothetical example in which you need to find a file that contains the word “cat” in its name. You know it will take long, so you run the following combination of commands:

$ nohup find / -name *cat* &
$ tail -f nohup.out

The nohup command is a request to not kill (nohup stands for “no hangup”) the process that you are just about to run in case you lose connection. The & at the end sends the process to the background, so that the prompt returns immediately. The tail -f follows the output of the command executed through nohup. If you do lose connection, simply run tail -f nohup.out again to see the running output.

To do the equivalent in a screen session, you’ll only need run the find command in an open screen session. If you need to reconnect after a lost connection, run screen -d -R <session_name> again, and you’ll be back in your session as though you never left it.

Far more neat, isn’t it? Of course, screen has much more to offer than being a simple replacement for nohup and tail -f. For example, it’s very easy to resume a CLI session running remotely – you’d simply reconnect without having to re-initialize.

Other Advanced Usages

CtrlA has a special meaning when running screen – it allows you to execute special screen commands.

To see the list of available commands, type CtrlA and then ?.

For example, one interesting feature of screen is its support for multiple windows. To create a window, type CtrlA and then c.

To switch to a window, use CtrlA and then the window number (from 0 to 9).

To see the list of available windows type CtrlA and then ".

The man page of screen reveals a great deal more to explore!

Which features of the screen command in Linux do you find the most useful?