Engineer Blog – About QR Code Generation

Welcome to our engineer blog, where we share our ongoing learning experiences. This post is part of Unit 0, which focuses on web design. Today, I’d like to introduce an opportunity I had to work with something less commonly encountered: QR code generation.

Preparation

For this implementation, I used Java. Since my development environment is Gradle-based, adding the necessary libraries was as simple as including the following in the build.gradle file. (Isn’t it convenient how accessible things have become these days?)

Reference Site:
Getting Started Developing · zxing/zxing Wiki · GitHub

The library used here is ZXing, an open-source Java library that enables the creation and reading of one-dimensional codes (such as barcodes) and two-dimensional codes (like QR codes).

Implementation

The key element for generating QR codes is the encode method of the QRCodeWriter class. As summarized in the comments, the following parameters can be specified:

  1. First parameter: The content to be displayed.
  2. Second parameter: The output format ( BarcodeFormat from the ZXing 3.5.3 API).
  3. Third parameter: The dimensions.

The generated data is stored in a variable of type BitMatrix (bm). By specifying the output format in the writeToStream method, you can save the generated QR code in your desired format. In this case, we output the QR code in PNG format.

While the actual implementation involves handling API requests and returning the output result to the screen, I’ll omit those details here.

Summary

Nowadays, if you just want to generate a QR code once for testing purposes, there’s no need to write a program from scratch. You can find many online QR code generators with just a quick search. Some even let you customize the design or offer formats tailored to specific use cases, making them surprisingly fun to explore.

This post covered only the basics, but I hope it gave you an idea of how QR code generation works. If you found this interesting, I’d be delighted.

Stay tuned for the next engineer blog post!

P.S. The content of the QR code includes a closing message!

技術者ブログ –QRコード生成について

技術者ブログとして日ごろ取り組んでいる学習内容をご紹介します。
今回はWEBデザインをテーマにしている第0ユニットです。
普段触ることないQRコード生成について触れる
機会があったので、そちらをご紹介したいと思います。

準備

今回はjavaで作っていきたいと思います。
私の開発環境はgradleを使っているので、
build.gradleファイルに以下追記してあげるだけで、必要なライブラリーが読み込まれます。
(便利な世の中になりましたね…)

参考サイト:Getting Started Developing · zxing/zxing Wiki · GitHub

使用しているライブラリーは、「ZXing」です。
Javaで実装されているオープンソースで、一次元コード(バーコードなど)、二次元コード(QRコードなど)の作成/読取を行うことができる画像処理ライブラリです。

作成

作成するにあたってポイントになるのが、「QRCodeWriter」の「encode」メソッドです。
コメントにざっくり書いてありますが、以下パラメータを指定することができます。
第一引数:表示する内容
第二引数:出力フォーマット指定(BarcodeFormat (ZXing 3.5.3 API))
第三引数:縦横のサイズ

生成したものをBitMatrix型の変数(bm)に格納し、writeToStreamメソッドで出力形式を指定すれば出力することができます。今回はQRコードをpng形式で出力してみました。
本実装はAPIリクエストを受け付けてそれに対応する出力結果を画面に返却していますが、
そこの部分は割愛します。

まとめ

今の時代は、一回だけお試しに作りたい時などの場合、わざわざプログラムを組まなくても
ネットで検索すれば多数の生成サイトが見つかります。
中にはデザインをいじれたり、用途に応じてフォーマットが用意されていたりと探してみると意外と面白いです。
というわけで、本投稿ではシンプルな部分だけではありますが、
QRコードを作成する仕組みをご紹介致しました。
少しでも興味を持っていただければ幸いです。

それでは、次回の技術者ブログをお楽しみに。

※QRコード内容は締めの挨拶です!

New Year’s Greetings and Aspirations

A Journey to Nachi Falls
Thank you for your unwavering support and kindness toward Dandelions over the past year. As we welcome 2025, I’m delighted to share our New Year’s wishes and hopes for the year ahead.

Nachi Shrine

Recently, I had the opportunity to visit Nachi Falls, a UNESCO World Heritage Site. Nestled in the sacred Kumano region, this majestic waterfall, with its 133-meter drop and lush surroundings, left me in awe. Its powerful and endless flow reminded me of nature’s incredible strength and resilience. Standing there, I felt a profound sense of calm and renewal, paired with a determination to keep moving forward with steady, unstoppable energy, just like the falls themselves.

A New Challenge
The inspiration drawn from Nachi Falls resonates deeply with our theme for the 8th phase of our journey: Health-Oriented Management and Challenges. To achieve sustainable growth, both individuals and organizations require not intermittent effort but a continuous, ever-flowing strength, much like the falls.To this end, we aim to cultivate a corporate culture that prioritizes the health and fulfillment of every employee, fostering vitality and creativity without interruption. We firmly believe that physical and mental well-being lay the foundation for generating innovative ideas, overcoming challenges, and delivering new value to society.

Nachi Falls

This year marks a significant milestone in our journey of challenges. Since our establishment in 2017, we have expanded into a variety of fields, including IT systems planning, design, and operations; e-commerce; human resource development consulting; staffing services; and job placement. Building on our past accomplishments, we aim to take a bold leap forward in 2025.

Amid the rapid wave of digital transformation, we will not only integrate ICT technologies but also harness uniquely human strengths such as creativity and empathy. By doing so, we are committed to delivering solutions that embody the essence of “Dandelions” more than ever before.

Aiming to be a Contributing Company
The name “Dandelions” symbolizes resilience and growth—the ability to thrive anywhere and spread seeds of possibility far and wide. Like the steady flow of Nachi Falls, we aim to keep moving forward no matter the challenges, opening new doors and realizing new dreams.

Together, as a unified team, we’re ready to turn our vision of health and challenges into action, delivering services that bring value to our community and partners.

Nachi Mountain

In Closing
Standing before Nachi Falls, I was reminded of the gift of life and the endless energy that surrounds us. Inspired by this, we will continue to grow, creating a workplace where our people can shine and contributing to the success of our customers, partners, and society.

As we step into 2025, I wish you a year filled with growth and opportunity. Thank you for your continued trust and support for Dandelions—we look forward to an exciting year ahead with you.

January 2025
Hideo Takahashi
President & CEO
Dandelions Co., Ltd.

新年のご挨拶 & 挑戦

世界遺産「那智の滝」

旧年中は、ダンデライオンズにひとかたならぬご支援とご厚情を賜り、誠にありがとうございました。2025年の幕開けにあたり、皆さまへ新年のご挨拶を申し上げるとともに、本年の抱負をお伝えしたいと存じます。

那智神社

先日、私は世界遺産に登録されている那智の滝を訪れる機会に恵まれました。古来より霊場として名高い熊野の地にそびえる那智の滝は、高さや水量、そして周囲の緑と相まって、まさに圧倒的な存在感を放っていました。落差約133メートルから勢いよく流れ落ちる水の力強さ、その一瞬たりとも途切れることのない流れ――それらは自然の偉大さを感じさせるだけでなく、人知を超えたエネルギーを与えてくれるものでした。そこに身を置いていると、心が洗われるような静謐さと同時に、「いつでも前に進む、絶えることのない力」を感じずにはいられませんでした。

さらなる挑戦

この那智の滝がもたらしてくれた感動は、私どもが迎える第8期のテーマである「健康経営と挑戦」にも通じるものがあると痛感しております。人や組織が成長を続けるためには、断続的ではなく、那智の滝のように“連綿と流れ続ける”力が不可欠です。そのためにも、まずは社員一人ひとりの健康と働きがいを大切にし、活力と創造性を絶やすことなく保つ企業文化を育んでいきたいと考えております。身体的にも精神的にも健やかな状態であってこそ、常に新しいアイデアが生まれ、困難を乗り越え、社会に向けて新たな価値を提供することができると信じております。

那智の滝

また、本年は当社にとって大きな「挑戦」の節目でもあります。2017年の創立以来、私たちは情報システムの企画・設計・運用受託をはじめ、EC事業、人材開発コンサルティング、労働者派遣や有料職業紹介など、多岐にわたる事業を展開してまいりました。これまでの歩みを原動力に、2025年はさらなる飛躍へ向けて大きく一歩を踏み出したいと考えております。急速に進むデジタルトランスフォーメーションの流れの中で、ICT技術を取り入れるだけでなく、人間の創造力や思いやりといった“人”ならではの強みを掛け合わせることで、これまで以上に“ダンデライオンズらしい”ソリューションを提供してまいります。

貢献する企業へ

私たちが社名に掲げる「Dandelions(たんぽぽ)」は、どんな場所でも力強く根を張り、種を遠くまで運んで花を咲かせる象徴です。私たちもまた、那智の滝の絶え間ない水流のように、どのような状況下でもあきらめずに前進し、新たな可能性を拓き続ける存在でありたいと強く願っています。この思いを共有する社員が一丸となり、「健康経営」と「挑戦」というキーワードを具体的な行動へとつなげることによって、地域社会や企業の皆さまに価値あるサービスをお届けできるよう、全力を尽くしてまいります。

那智山

那智の滝を目の当たりにしたときの、自然と生かされることへの感謝の念や、尽きることのないエネルギーへの畏敬の念を胸に、私たちはこれからも飛躍を続けてまいります。社員がいきいきと働ける環境づくりを進め、お客様をはじめ、パートナーの皆さまや地域社会に貢献する企業として躍進していきたい所存です。

最後に

皆さまにおかれましても、本年が素晴らしい飛躍の一年となりますよう、心よりお祈り申し上げます。今後とも、株式会社ダンデライオンズへの変わらぬご指導とご鞭撻、そして温かいご支援を賜りますよう、何卒よろしくお願い申し上げます。

2025年 1月
株式会社ダンデライオンズ
代表取締役 髙橋英晃

Internal Training Session: Low-Code Development Experience Using Outsystems Part 2

Hello! I’m Ogi, responsible for this edition of our study session blog. I’m excited to share the highlights of our recent internal training session, “Low-Code Development Experience Using Outsystems Part 2”!

Check out the highlights from our previous study session here!

Building on our last session, the goal of this study meeting was to deepen our understanding of low-code development and Outsystems by gaining hands-on experience with Outsystems development. This time, we had many new members join us, making the session even more vibrant and engaging.

Here’s how the study session unfolded:

  1. Recap of the Previous Session
  2. Watching Educational Videos – Focus on UI Development
  3. Hands-On Development with Outsystems
  4. Summary and Q&A

Watching Educational Videos – Focus on UI Development

We kicked off the session by watching official educational videos provided by Outsystems. This time, the videos focused on UI development, where we learned the basics of screen widgets, variables, and client-side logic.

If you’re interested, you can watch the videos here (an Outsystems account is required).

Hands-On Development with Outsystems

After watching the videos, each participant used their own Outsystems environment to start developing. During this hands-on session, we primarily focused on:

  • Adding Widgets and Logic to Screen
  • Utilizing Aggregates ( Learn more about Aggregates here.)
  • Displaying Data on Screen

We experienced firsthand the unique advantages of developing with Outsystems, such as the simplicity of adding widgets through drag-and-drop and the visual manipulation capabilities provided by Aggregates for data retrieval and sorting.

Throughout the development process, we followed the instructor’s explanations and worked on our own projects, enhancing our practical skills.

While listening to the instructor’s explanations, we proceeded with development in our own environments.

Summary

In this study session, we tackled more hands-on content compared to the previous one, successfully conveying the benefits of low-code development and Outsystems. The development experience segment fostered active discussions and Q&A among the participants, further deepening our understanding.

We plan to continue hosting study sessions focused on Outsystems development in the future. Stay tuned for our next article!

社内勉強会:Outsystemsを用いたローコード開発体験 part2

今回の勉強会記事を担当します、第2ユニットのオギです。
今回は社内勉強会「Outsystemsを用いたローコード開発体験 part2」が開催されましたので、その様子をご紹介します!

前回の勉強会の様子はこちら

前回に引き続き、今回の勉強会も「Outsystemsでの開発を体験することで、ローコード開発やOutsystemsへの理解をより深めていくこと」を目的としています。
今回からの参加となるメンバーも多数いて、さらに活気ある勉強会となりました。

勉強会の流れは以下のとおりです。
⓪前回の勉強会のおさらい
①学習動画視聴 -UI開発について-
②Outsystemsでの開発体験
③まとめ、質疑応答

学習動画視聴 -UI開発について-

まずはOutsystemsが公式で提供している学習動画を視聴しました。
今回はUI開発についての動画を通して、画面のウィジェットや変数、クライアントのロジックについての基礎知識を学んでいきます。

こちらのリンクから視聴することができる(Outsystemsのアカウント取得が必要になります)ので、ご興味がある方は見てみてください!

Outsystemsでの開発体験

動画を視聴した後は、各々が構築したOutSystemsの環境を用いて実際に開発を進めました。

今回実施したのは主に以下のとおりです。
・画面へのウィジェット、ロジックの追加
・Aggregateの活用 (Aggregateについてはこちら)
・画面へのデータ表示

画面にウィジェットをドラッグ&ドロップで簡単に追加できたり、Aggregateを用いることでデータの取得やその条件、ソートなどを視覚的に操作できたりといったOutsystemsでの開発ならではの利点を体験しました。

講師の説明を聞きながら自分の環境で開発を進めていきます。

まとめ

今回の勉強会では前回よりもさらに実践的な内容を取り上げ、ローコード開発やOutsystemsの良さを伝えられた会になったかと思います。
開発体験のパートでは、近くのメンバーとの話し合いや質疑応答が盛んにおこなわれ、理解も一層深められたのではないでしょうか。

今後もOutsystemsの開発をテーマとした勉強会を開催予定です!
次回の記事もお楽しみに。

Engineering Blog – Internal Security Training (Training Emails)

Welcome to the engineering blog, where we share what we’re learning and working on daily.

As part of our employee security education efforts, we conducted a training email exercise.

What is a Training Email?

A training email involves sending employees simulated emails that mimic targeted attack emails to strengthen their ability to respond effectively.
Targeted attack emails are a sophisticated technique aimed at stealing sensitive information, often directed at specific organizations or individuals.

In this training, pseudo-attack emails resembling work-related communications were sent to selected employees to evaluate whether they would open the email or its attachments.

What We Did

1. Created Realistic and Persuasive Email Content

We designed email content and subject lines that employees might open without thinking twice. The goal was to create emails that seemed plausible during the training period.

Example of training email

2. Created a Fake Virus File (Word Document)

For this exercise, we embedded a mechanism into a Word file that accessed our company-managed server when opened.

If an employee opened the attachment, the file accessed the server and logged a unique ID hidden in the document.
By checking the output log, we were able to identify which employees had opened the file.

Unfortunately, a few employees did open the attachment during this exercise.

How training emails work

3. Conducted Internal Re-education

We followed up with additional internal training to reinforce measures against targeted emails and raise awareness further.

Refresher materials

Summary

This exercise helped raise employees’ security awareness.
We plan to continue these efforts in the future to further improve security measures.

Thank you for reading, and stay tuned for the next edition of the engineering blog!

技術者ブログ – 社内セキュリティ訓練 (訓練メール)

技術者ブログとして日ごろ取り組んでいる学習内容をご紹介します。

社員のセキュリティ教育の一環として訓練メールを実施しました。

訓練メールとは

標的型攻撃メールを模した疑似的なメールを従業員に送信して、攻撃メールへの対応能力を養うためのものです。
標的型攻撃メールは、重大な情報を盗むことを目的として特定の組織や個人に送信される巧妙な攻撃手法です。

そこで、訓練メールでは、業務用メールなどに似た疑似攻撃メールを対象従業員に送信し、メールを開封したかどうか、添付ファイルを開いたかどうか評価しました。

実際に行ったこと

1.引っ掛かりやすいメール文章を作成

何気なく開いてしまうかもしれないメールの文章や、名前を考えてメールを作成しました。

訓練メールを行った時期にありえそうなメールを作ることを考えました。

訓練メール文章

2.偽ウイルスファイル(Word)作成

今回は、Wordファイル内に、ファイルを開くと自社で管理しているサーバへアクセスする仕組みを組み込みました。

訓練メールで、添付ファイルを開いてしまったら、

サーバへアクセスし、Word内に仕組まれていたIDをログに出力します。

出力されたIDによって、どの従業員が添付ファイルを開いたか特定できます。

ちなみに、今回の訓練で数人添付ファイルを開いてしまいました。

訓練メールの仕組み

3.社内再教育

再度社内教育を行い標的型メールへの対策を再認識しました。

再教育資料

まとめ

今回の訓練により従業員のセキュリティ意識の向上になったかと思います。
今後も、続けていきたいと思いました。

以上となります。

次回の技術者ブログをお楽しみに。

Employee Introduction

Thank you for reading! Today’s introduction is brought to you by Junpei, and it’s been a while since my last post.

A Recent Hobby

Lately, I’ve gotten back into Pokémon, thanks to my wife’s influence. It’s been about 20 years since I first fell in love with it back in elementary school, when Pokémon Red/Green debuted on the Game Boy. Now, the nostalgia has kicked in again after all these years.

Not long ago, Mie Prefecture’s Shima Spain Village teamed up with Pokémon for a limited-time collaboration. Naturally, I had to check it out. The park was filled with Pokémon displays everywhere, drawing crowds of all ages.

Throughout the area, Pokémon appeared at every turn!
There were lines of people waiting to take photos at popular spots.

Pokémon Everywhere!

Every corner of the area featured Pokémon—and for the more popular photo spots, people were even lining up. I rediscovered old favorites I used as a kid and met new Pokémon introduced over the past two decades. Witnessing a franchise that continues to be cherished by so many people for so long made a strong impression on me.

In the IT industry, we work every day to develop systems that make a positive impact. Lately, I’ve been thinking how wonderful it would be if we could create something as universally beloved as Pokémon—something that resonates with both children and adults alike.

Stay tuned for the next blog post!

社員紹介

閲覧いただきありがとうございます。
今回の社員紹介を担当する「じゅんぺー」です。
久しぶりの投稿になります。

最近の趣味

最近、妻の影響でふたたびポケモンにはまっています。
私が小学生の頃にゲームボーイのポケットモンスター「赤」/「緑」が発売され、夢中になったあの時代から20年ぶりに再燃しました。

先日は三重県の志摩スペイン村が期間限定でポケモンとコラボしていましたので思わず足を運びました。
スペイン村のあちらこちらに数多くのポケモンが登場し、老若男女問わず多くの人で賑わっていました。

エリア内のいたるところにポケモンが…!!
人気スポットでは写真待ちの列ができてました

子供の頃に使っていたポケモンと再会し懐かしさを感じたり、
この20年間で新たに登場したポケモンとの出会いがあったりと、多くの人に長い間愛され続けるコンテンツの素晴らしさに感動しました。

私たちもIT業界で日々、多くの人の役に立つシステム開発を目指していますが、
ポケモンのように子供から大人までに愛されるようなモノが作れたらいいなあと思っている今日この頃です。

次回のブログもどうぞお楽しみに。