Posts

Showing posts from 2015

Print two dimensional array in spiral order

Source code: package com.in2soft.test; public class PrintSpiralTest { /** * @since Dec 26, 2015 * @author Shashwat.Anand */ public static void main(String[] args) { int[][] twoDArry = { { 2, 4, 6, 8 }, { 5, 9, 12, 16 }, { 2, 11, 5, 9 }, { 3, 2, 1, 8 } }; printInSpiralOrder(twoDArry, twoDArry[0].length, twoDArry.length); } private static void printInSpiralOrder(int[][] twoDArry, int m, int n) { int t = 0, b = m - 1, l = 0, r = n - 1; int dir = 0; // 0 = -> ; 0 = bottom; 0 = <-; 0 = top while (t <= b && l <= r) { if (dir == 0) { for (int i = l; i <= r; i++) { System.out.println(twoDArry[t][i]); } t++; dir = 1; } else if (dir == 1) { for (int i = t; i <= b; i++) { System.out.println(twoDArry[i][r]); } r--; dir = 2; } else if (dir == 2) { for (int i = r; i >= l; i--) { System.out.println(twoDArry

Find two strings are anagram in Java ?

Source Code : import java.util.Arrays; /** * Anagram.java * @author Shashwat Anand */ public class Anagram { public static void main(String[] args) { System.out.println(testAnagram("Shashwat", "Shawatsh")); System.out.println(testAnagram("Shashwat", "Shawatwh")); System.out.println(testAnagramWithInbuiltMethods("Shashwat", "Shawatsh")); System.out.println(testAnagramWithInbuiltMethods("Shashwat", "Shawatwh")); } private static boolean testAnagramWithInbuiltMethods(String str1, String str2) { char[] charArray1 = str1.toCharArray(); char[] charArray2 = str2.toCharArray(); Arrays.sort(charArray1); Arrays.sort(charArray2); return Arrays.equals(charArray1, charArray2); } private static boolean testAnagram(String str1, String str2) {

How to add Xtext DSL editor in Multi-Page Editor

To add your Xtext Dsl Editor to Multi-Page Editor Getting the instance of XText editor MyDslActivator activator = MyDslActivator.getInstance(); final Injector injector = activator.getInjector("org.shashwat.xtext.mydsl.MyDsl"); XtextEditor xtextEditor = injector.getInstance(XtextEditor.class); Remember to have editor input instance of IFileEditorInput. XtextEditor uses XtextDocumentProvider which extends FileDocumentProvider FileEditorInput fileEditorInput = new FileEditorInput(file); // Here file is instance of IFile int index = addPage(xtextEditor, fileEditorInput);

Run Javascript Code inside Java Code

As JDK 8 has Nashorn Javascipt Engine, below is simple code snippet for this: package com.sha.java8.jjs_nashorn; import javax.script.ScriptEngine; import javax.script.ScriptEngineManager; public class FirstEg { public static void main(String[] args) { ScriptEngineManager scriptEngineManager = new ScriptEngineManager(); ScriptEngine engine = scriptEngineManager.getEngineByName("nashorn"); String script = "var greet = 'Hello'; " + "greet += ' Shashwat'; " + "greet;"; Object output; try { output = engine.eval(script); System.out.println(output); } catch (Exception e) { System.out.println("Javascript Exception"); e.printStackTrace(); } } } Output: Hello Shashwat

When to use Import-Package and Require-Bundle in Eclipse Plugin?

The OSGi way is to use Import-Package, as it specifically decouples the package from the bundle that provides it. Require-Bundle: Bundles can be re-exported Gives you access to all exports of the bundle, regardless of what they are, and regardless of whether you need them. Specifies the explicit bundle (and version) to use. If a required bundle needs to be refactored and a package moved elsewhere, then dependents will need changes to their MANIFEST.MF file. Import-Package: Loose coupling, only the package (and version) is specified and the run-time finds the required bundle. Actual implementations can be swapped out Dependent packages can be moved to different bundles by the package owner But requires more metadata to be maintained (i.e: each package name) at lower levels of granularity In my view we should below approach in using Import Package or Require-Bundle Interface <=> Import-Package Implementation class <=>

Creating password protected ZIP file using TrueZip

try { final TConfig config = TConfig.get(); // Request encryption in archive files. config.setOutputPreferences(config.getOutputPreferences() .or(BitField.of(FsOutputOption.ENCRYPT))); // Configure archive detector with custom key management for ZIP files. config.setArchiveDetector(newArchiveDetector1("zip", "password")); // Setup file paths. TFile src = new TFile("file1"); TFile dst = new TFile("file2"); if (dst.isArchive() || dst.isDirectory()) dst = new TFile(dst, src.getName()); // Recursive copy. src.cp_rp(dst); } finally { // Commit changes. TVFS.umount(); }

AWS vs OpenStack

AWS (Amazon Webservices)                                            OpenStack AWS Console                                                             Horizon (it is a dashboad of services) IAM                                                                            Keystore EC2                                                                            Nova S3                                                                              Swift VCP/EIP                                                                     Neutron EBS                                                                           Cinder ELB                                                                            LBaaS (Load Banlacer as Service) Machine Image Store                                                   Glance Cloud Watch                                                               Ceilometer Cloud Formation                                                          Heat RDS (Relational Da

OSGI and Eclipse Version

2004 Eclipse 3.0 -> OSGi 4.0 early draft 2005 Eclipse 3.1 -> OSGi 4.0 draft 2006 Eclipse 3.2 Callisto -> OSGi 4.0 2007 Eclipse 3.3 Europa -> OSGi 4.1 2008 Eclipse 3.4 Ganymede -> OSGi 4.1 2009 Eclipse 3.5 Galileo -> OSGi 4.2 2010 Eclipse 3.6 Helios -> OSGi 4.2 2011 Eclipse 4.1/3.7 Indigo -> OSGi 4.3 2012 Eclipse 4.2/3.8 Juno -> OSGi 5 2013 Eclipse 4.3/3.9 Kepler -> OSGi 5     The Bundle-ManifestVersion is not mandatory. If it is missing then defaults version 1. OSGi R4 introduced Bundle-ManifestVersion: 2 , and so in practice,  almost all bundles have this entry.

Cloud Computing

What is Cloud Computing? Cloud computing is a way of delivering services over network. It is a ubiquitous IT services over the network. What are Cloud Services Characteristics? On Demand Self Service Provisioning Broad Network Access Resource Pooling Measured & Metered Service Rapid Elasticity These IT Services when delivered  over the network is called cloud services with little or no service provider interaction. What are the types of Service model available in Cloud? Saas (Software as a Service) Paas (Platform as a Service) Iaas (Infrastructure as a Service)

Tech Companies tech blog

Tech Companies tech blog http://techblog.netflix.com/ http://instagram-engineering.tumblr.com/ http://nerds.airbnb.com/page/2/ https://blog.twitter.com/engineering http://backstage.soundcloud.com/ http://engineering.foursquare.com/ http://engineering.linkedin.com/blog http://engineering.indeed.com/blog/ https://tech.dropbox.com/ http://engineeringblog.yelp.com/ http://engineering.chartbeat.com/ http://eng.yammer.com/blog/ https://engineering.twitter.com/ http://codeascraft.com/ https://www.simple.com/engineering/ http://code.flickr.net/ http://conflatedthoughts.blogspot.ca/ http://don.blogs.smugmug.com/ https://github.com/blog/category/engineering http://engineering.webengage.com/ https://engineering.groupon.com/

Creating Overlay Icons - Table Viewer

Sometimes in table viewer icon decoration is not possible. We can create overlay icons and return them in class ITableLabelProvider method's - public Image getColumnImage(Object element, int columnIndex) will be enough ImageDescriptor desc = Activator.getImageDescriptor(....); // It take String (Image Path) if (desc != null) { DecorationOverlayIcon decoratedImage = new DecorationOverlayIcon(image, desc, IDecoration.BOTTOM_LEFT); if (decoratedImage != null) { return decoratedImage.createImage(); } }