DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Curious about the future of data-driven systems? Join our Data Engineering roundtable and learn how to build scalable data platforms.

Data Engineering: The industry has come a long way from organizing unstructured data to adopting today's modern data pipelines. See how.

Threat Detection: Learn core practices for managing security risks and vulnerabilities in your organization — don't regret those threats!

Managing API integrations: Assess your use case and needs — plus learn patterns for the design, build, and maintenance of your integrations.

Avatar

Eugen Hoble

Tech Team Lead at Freelancer

Kitchener, CA

Joined Jul 2009

https://ca.linkedin.com/in/jj5r42k7

About

A dynamic, innovative programming professional with more than 15 years experience in designing and implementing highly technical, user-friendly enterprise applications using Java and J2EE platform. Proficient in performing business process analysis, analyzing requirements, creating design specifications, unit test plans and production support. Excellent communication skills, creative problem solver, positive listener and team player.

Stats

Reputation: 1940
Pageviews: 384.7K
Articles: 6
Comments: 9
  • Articles
  • Comments

Articles

article thumbnail
Install Docker, Kubernetes and Minikube on Linux Mint
Docker container packages up the code of an application and all its dependencies so that the application can run unchanged in any environment.
October 3, 2022
· 8,486 Views · 2 Likes
article thumbnail
Divide and Conquer: High Scalability With MongoDB Sharding
MongoDB handles horizontal scaling via sharding. Take a look at the different sharding methods you can use and how to make them work.
November 1, 2016
· 36,572 Views · 3 Likes
article thumbnail
Apache PDFBox. Don’t Leave Home Without It.
Got PDF problems. Check out how you can use Java and a handy tool to design and create PDFs for just about anything you could need.
October 7, 2016
· 26,814 Views · 21 Likes
article thumbnail
Migrating EJB2 Entity Beans to EJB3 and JPA
Impossible is nothing. Read on to learn how to migrate all of the EJB2 Entity Beans from a legacy project to EJB3 Entity Beans with JPA.
October 5, 2016
· 13,902 Views · 4 Likes
article thumbnail
How to Read a Large CSV File With Java 8 and Stream API
Scenario: you have to parse a large CSV file (~90MB), practically read the file, and create one java object for each of the lines. What do you do?
September 28, 2016
· 262,148 Views · 27 Likes
article thumbnail
How to Quickly Load 380K Items Into MySQL
See how a bit of legwork and a single statement can save you a lot of time and overhead when working with MySQL data.
September 27, 2016
· 10,437 Views · 6 Likes

Comments

Layered Architecture Is Good

May 25, 2017 · Grzegorz Ziemoński

"Projects that are supposed to stay small, such as microservices, or larger projects that can be easily factored into smaller pieces."

Really? This contradicts the reality.

Layered Architecture is perfect for big projects. Because is the only one that can be managed efficiently. That is the reason it has been created in the first place.




A Review of Template Engines: What Next After Velocity?

Nov 28, 2016 · Miro Wengner

I hoped to see some numbers....to compare what framework is faster...Perhaps next time :)

Maven vs. Gradle and the Best of Both Worlds

Nov 11, 2016 · Hendrik Ebbers

Using only gradle for my builds for 4 years now.

Never looked back to Maven.

No more XML, thak you.

Apache PDFBox. Don’t Leave Home Without It.

Oct 15, 2016 · Eugen Hoble

Apache FOP is not a good solution for the case in this article.

Apache FOP does not supports fillable forms and it does not suport drawing of a PDF.

Apache FOP is good for instance if someone wants to show a table inside a report (tabular reports).

With PDFBox one can draw a PDF. That is the reason I've chosen it.

I had to draw each element.

To use Apache FOP for my case would have been very hard . I know FOP due I have to maintain FOP reports in real life. Not fun working with them! In my case most of the templates are more than 1000 lines long ! And they are not very fast ! Which is understandable when you have to parse huge template files.

Each library has a different purpose and there is no silver bullet.

Now if I think more it might be a good idea to write my own library that extends PDFBox and allows the creation of tabular reports. :) It shouldn't be that difficult.

Perhaps it will become so successful that anyone will use it. :)

Hmm....I think I just found my next pet project.




Apache PDFBox. Don’t Leave Home Without It.

Oct 12, 2016 · Eugen Hoble

Jaspersoft has a free reports designer.

http://community.jaspersoft.com/project/jaspersoft-studio.

I never used it though.

Apache PDFBox. Don’t Leave Home Without It.

Oct 12, 2016 · Eugen Hoble

In my specific case I had to create PDFs that were fillable by users (AcroForms). Apache FOP does not allow that.

I use both FOP and PDFBox in a legacy project and I personally think that each library is useful for specific cases.

FOP can produce not only PDFs but also ASCI, PS, PCL files..

Regarding the maintenance: with FOP as a developer I have to use Java, XSL templates with fop tags and XML. With FOP I have to know exactly how to properly create templates, those xsl files which are pretty big and somethimes if there is an error that error is not thrown, so debugging is hard.

In my experience anytime I had to combine technologies the result has been harder to maintain in time.

PDFBox is just java . TO create PDFs you just have to know how to "paint". Nothing else. It might need more memory and that's way the article explains how to avoid that issues.

But I think that each of these 2 pdf libraries were created for specific purposes.

How to Read a Large CSV File With Java 8 and Stream API

Oct 08, 2016 · Eugen Hoble

You are correct Piotr.

From the example in this article, the processInputFile method changes a little bit when using Apache Commons CSV:

FileReader csvDataReader = new FileReader(csvFilename);
CSVParser parser = new CSVParser(csvDataReader, CSVFormat.RFC4180);
List<CSVRecord> recordsList = StreamSupport.stream(parser.spliterator(), false).collect(Collectors.toList());

If the csv file contains a line like this:

"Some text here,separated by a comma","123456","more values here"

we can use forEach to printout the value of every column :

recordsList.stream().forEach(new Consumer<CSVRecord>() {

@Override
public void accept(CSVRecord record) {
System.out.println(record.get(0) + "\n" + record.get(1) + "\n" + record.get(2));
}
});

the output is:

Some text here,separated by a comma
123456
more values here


MongoDB: The Good, The Bad, and The Ugly

Oct 06, 2016 · Darel Lasrado

I totally disagree with the 'Bad' and 'Ugly' for the simple reason that is the intended design of all NoSQL DBs.

An Opinionless Comparison of Spring and Guice

Oct 04, 2016 · Nikhil Wanpal

I used Guice first time 8 year ago and it felt easier and more manageabla than using Spring.

Spring and its XML configuration can be difficult to read/manage in large projects.

But , of course this is a personal opinion. Some people like to have the configuration outside the application.




User has been successfully modified

Failed to modify user

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends: