Welcome!

From the Trenches of the Enterprise Software

Yakov Fain

Subscribe to Yakov Fain: eMailAlertsEmail Alerts
Get Yakov Fain via: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn


Latest Blogs from Yakov Fain
Java has a pretty powerful mechanism of error handling. But sometime programmers ignore it. Recently I’ve seen the following post in one of the production support chat rooms: Developers, please don’t do this: } catch (IOException e) { //do nothing, just ignore it } finally ...
Typically, the conversations that involve Google’s hiring process revolve around the cool questions during technical interviews. Something like, “How many piano tuners are in San Francisco?” Business Insider even published and article titled “15 of Google Interv...
I spent the last week in the beautiful island of Crete. It was my second JCrete unconference. Last year I was blogging each day and you can see all these blogs here. This year JCrete was as good as always. Geertjan Wielenga wrote a detailed report here. Stephen Chin’s took an awe...
Probably the most popular question during Java technical interviews is “What’s the difference between abstract classes and interfaces”. In my own three year old book I’ve offered the following answer: “An abstract class may contain code in method bodies, which is not allowed in an in...
Some time ago I blogged that Java Swing should be deprecated and replaced with JavaFX. In this blog I’ll show a piece of JavaFX namely event handlers and binding. I’ve created a simple Sign In window with a GridPane layout (it’s JavaFX equivalent of Swing’s GridBagLayout). I’m not goin...
During my training classes on Web development with Java I used to ask students this question, “Do you think it would be a smart move if Amazon.com would create their online store using Java Applets?” The right answer is “Yes, if their goal is to go out of business....
While working on the second edition for my Java 24-hour Trainer book I’m re-writing some of the code samples to use lambda expressions. Today I was re-writing an example for wait/notify for the chapter on multi-threading. Beside illustrating the wait/notify, I used a closure in this ex...
In 2011 Wiley (Wrox) published my book “Java Programming. 24-Hour Trainer“. To be honest, I don’t like the title because it misleads people as if this book promises that the reader can learn Java within 24 hours. But creators of this series (many titles were published under this umbrel...
Yesterday, I decided to re-write with lambdas one of the example I use while explaining polymorphism during my Java trainings. I realize that lambdas promote functional style of programming, while polymorphism is one of the crucial object-oriented features. Still, I decided to try mixi...
If there is one thing I hate about the Internet it’s the damaging effect that social networks like Facebook have on people’s minds.  Some of the younger minds are getting complete out of touch with the real world. They create their image to be seen online as super heros, ba...
Here’s a simple Java program that I wrote to test Swing GUI in Java 8 (I use JDK 1.8.0_05-b13):   import javax.swing.JFrame; import javax.swing.JButton; public class HelloWorld extends JFrame { public static void main(String[] args) { JFrame myWindow = new HelloWorld(); // C...
Last week I was participating in JEEConf – a Java conference in Kiev, Ukraine. It was the fourth annual conference attended by 700 people despite of the unrest on some of the Ukrainian regions. Kiev was quiet, peaceful and nice looking though. A day before the conference I’...
This will be the easiest blog to write because I’ll just copy/paste one of the today’s email threads. I swear, I have not changed a word. X. Modern Web Application development for Java Programmers: 1) Is this the first iteration of this course? 2) If no, do you have any tes...
While testing the new JMS 2.0 API, I wanted to see an example of the remote client connecting to a messaging server. I decided to start with the HornetQ messaging server that’s embedded into JBoss Wildfly 8. Folks from JBoss sent me a link to the the GitHub project Wildfly/Quicks...
First, there was no GMail.  There were Yahoo!, hotmail, aol, and other OK email services.  At work, we were forced to use Microsoft Outlook. I happened to select Yahoo!. It had simple to use interface and it worked. Then Google created an exemplary GMail single-page Web client plus sma...
I’m sure you like the music by Leonard Cohen. One of his hit-songs  has the words “First we take Manhattan, then we take Berlin“. The Russian authorities sing it differently: “First we take Crimea, then the Internet”. Yesterday, Russian authorities started...
I spend a large portion of my time preparing courseware materials, writing books and technical documentation. These documents include hyperlinks, and some of them can be a 100+ character long. Do you include the long URLs in your docs? The immediate answer is to use one of the services...
Recently I decided to stop running my traditional online trainings Intro to Java and focus on offering more advanced training programs. Over the years I had lots of Java training materials and decided to record and publish 18 video lessons covering Intro to Java and Java EE. I started ...
In June a large expo and a conference Cloud Computing comes back Javits Center in Manhattan. This year it includes a new track Internet of Things, which promises to be “The Next Big Thing”. In our company we have enough of early adopters of anything related to software deve...
After the Berlin Wall collapsed, the world population started to see Russians up close and personal. The world got to learn that Russians are not always walking with balalaika and vodka while being chained to a bear. European cities are filled with Russian-speaking tourists. They look ...
I enjoy the process of developing software, which includes many various activities. But learning and teaching new software are the two activities I enjoy the most. During my 30-year career I’ve been working as an independent contractor, taught countless training classes, prepared...
I like Groupons. I really do. Groupon already saved me lots of money.It introduced me to lots of new places. It can bring a real value to me, the consumer. Groupon does it perfectly when there is a match between what I need and what’s offered. This happened to me twice so far, an...
After years of running traditional in-classroom and online trainings “Intro to Java and Java EE” I decided to try something different: I’ll record training videos and will be publishing them once a week for free. These lessons will have references to my powerpoints, a...
Recently a bunch of workers from our company went to a restaurant. One of our guys asked if he could bring a friend who was in town. Sure, why not. The dinner went well, we were talking about various things from the quality of honey pepper vodka to what dependency injection brings (doe...
Recently I made a presentation at the CTO School in Manhattan about running a virtual company, where people work remotely from different countries. Actually, I’m a co-founder of two startups (consulting and product) where majority of the people working remotely. The slides of thi...
We’ve just started to work on the curriculum of the new online training titled “Modern Web Development for Java Programmers”. This course will be taught by practitioners from our company, Farata Systems.  The initial desription is here: https://github.com/yfain/WebDev...
During the last year I’ve been using Sublime Text editor for all of my new text-writing activities. During the last year I’ve been actively using the version control system Git for our O’Reilly book project. During the last I’ve been using GitHub hosting for my ...
Yesterday I decided to purchase some audio books in Russian language. Buying paper books is a nuicance, and what can be easier that downloading an mp3 file right after you pay for it? Ozon.ru is the #1 Russian e-Commerce  portal (they call themselves “Online Megamarket #1″)...
We had a project kickoff meeting this morning to discuss tools to be used. This is a consumer-facing single-page Web  application (SPA) that will also have a back-office part to be used by the business owners. During this meetin our engineers suggested a list of software. This list wil...
Every time I start teaching my new Java class I’m looking at the Swing units in the manual asking myself, “Why my students need to know Swing framework?” Well, I need to teach them how to program GUI, event listeners, asynchronous worker threads and event loop that ar...
In October of 2013 My colleague Victor Gamov and I ran a presentation “Intro to working with GIT and GitHub” for the Princeton Java Users Group. Then we’ve received a number of requests asking if a recording of this session was availabled. We didn’t record this ...
Some people believe that only good math students can become computer programmers. Nothing can be farther from the truth. To be a successful programmer, a person needs two talents: Logic Analytical Thinking Logic is needed because the majority of programming in the enterprise world is a...
I like Twitter. It’s a telegraph of the 21st Century. It’s quick, messages are short and up to the point. But I’m trying to keep short the list of accounts I follow. As of today I’m following 52 accounts, and this is a reasonable number. I mean, I am actually re...
I’m sure every person who is involved with development of commercial Web application knows about this huge failure – release of the healthcare.gov. I’ve been following this story too, because it’s about the software development – my bread and butter. I don...
I’m a subscriber of Audible, an Amazon company, where you pay monthly fee in exchange for a pleasant purchasing experience of audio books. I like listening to the audio books while on the go or lying in bed. My smartphone is always by my side, and Audible created a free applicati...
When I started to learn the soon-to-be-released programming language Dart, it was a love from first sight. I like Java, and Dart is like Java, but a little better. I’m planning to write a series of blogs about Dart, but I couldn’t resist writing about the missing protected ...
Google gets creative. Apparently some Android devices may have nontraditional sexual orientation. They started selling T-Shirts where two happy male or female Androids are holding each other’s hand while waving the rainbow flag. The next logical step is to clearly mark the sexual...
Everyone knows what fishing means. It’s when a man tries to convince a fish that this fat warm had nothing better to do but diving ten feet into the river. Phishing is somewhat similar. Someone assumes that you are as stupid as an average fish and believe that every incoming emai...
My son Dave showed me the episode from the South Park, season 14, titled “You have 0 friends“. This episode is very smart, and it resonates with my understanding of the virtual world, hence this blog. 1. People who are using Facebook daily are either already retarded or are...
During JCrete conference, every session was recorded onto a small audio recorder that was standing in the middle of the room. Obviously, you can’t expect good sound quality when people are making all kinds of noises. Such recorders require a decent amount of post processing, whic...