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の開発をテーマとした勉強会を開催予定です!
次回の記事もお楽しみに。

Internal Study Session: About Monaca

I’m “xig” from Unit 0, and I’ll be writing this study session article.

The theme of this in-house study session is “Monaca.”

It’s a familiar topic in Unit 0, but we held the study session with the aim of allowing inexperienced people to actually try it out and deepen their understanding. I was the one teaching, but the number of people who participated was greater than we initially expected, so I was a little nervous.

The study session went as follows:

①Outline of Monaca

②Introduction to the environment

③Hands on actually trying out Monaca

Overview of Monaca

In the 0th unit, we used Monaca’s cloud IDE (browser-based development environment),
so we focused on that and explained what Monaca is and what it can do.

I’ve found the following three points to be useful when actually using it,
and I hope that the participants were able to understand them.

〇 Easy to get started with an internet connection

〇 Easy to check operation (on a browser or smartphone)

〇 Easy to publish to the store

Environment introduction

After I gave them an overview, I had them create an account to start using Monaca.
I also showed them an actual screen and explained what items are available.
I personally didn’t feel any resistance to it because the UI is similar to the integrated development environment I normally use, but what did you all think?

Let’sTry

After the explanation, we did some coding exercises using Monaca’s sample programs. Monaca has pre-made templates, so this time we used the Todo app template, changed the background color, and added functions to add and delete database functions to actually create an app.

Summary

In this study session, we actually used Monaca to experience developing a simple app.

– I want to write a simple sample program, but setting up the environment is a hassle…
– I want to quickly develop an app for iOS or Android…
– I hope that when you feel like this, you will remember the exercises from today and put them to good use.

So, please look forward to the article from the next study session!

In-house study session: “The strongest encryption that can be used by ordinary people”

The theme of this in-house study session is “encryption.” The person in charge is Emu from the 3rd unit.
The 3rd unit is mainly responsible for infrastructure and security.

In recent years, we have heard of damage caused by cyber attacks in various forms, both for individuals and businesses.
If a company were to suffer damage, it could lead to a loss of trust from customers and a large amount of compensation, and in the worst case scenario, the survival of the company could be greatly affected.
Therefore, one way to protect important information and prevent leaks is to encrypt data and communication content.

There are many different types of encryption, and I learned how to encrypt disk files as one of them.

Study session title
What is encryption?
Study session scene

I studied VeraCrypt as an encryption software.
Encrypted virtual drive creation software.
“VeraCrypt” is software that allows you to create a “secret encrypted drive.”

VeraCrypt site
VeraCrypt encrypted hidden volume

I felt that the software I used this time was easy and safe to use when I had the opportunity to carry data around on a PC or external memory.

There are many other cases of encryption, so I would like to continue learning about them.

社内勉強会 「一般人でも使える最強暗号化」

今回の社内勉強会のテーマは、「暗号化」です。担当は第3ユニットのえむです。
第3ユニットは、インフラ、セキュリティをメインに担当しています。

近年、個人・企業問わず、様々な形でサイバー攻撃による被害を聞くことがあります。
万が一企業が被害に遭うと、顧客からの信頼の損失や多額の損害賠償などにつながる可能性があり、最悪の場合企業の存続を大きく左右してしまいます。
そこで大切な情報を守り、漏洩を防ぐ一つの方法としてデータや通信内容の「暗号化」が必要となります。

暗号化とひと口に言っても様々な種類があるため、その中の一つとしてディスク・ファイルの暗号方法を学びました。

勉強会タイトル
暗号化とは?
勉強会風景

暗号化ソフトとして、VeraCryptを勉強しました。
暗号化仮想ドライブ作成ソフトです。
VeraCrypt」は、“ 暗号化された秘密のドライブ ” を作成することができるソフトです。

VeraCryptサイト
VeraCrypt暗号化された隠しボリューム

今回使用したソフトは、PCや外付けのメモリなどでデータを持ち運ぶ機会がある時に簡単で安全に使用できると感じました。

暗号化は、その他にも様々なケースがあるので、今後も学んでいきたいですね。

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

今回の社内勉強会のテーマは「Outsystemsを用いたローコード開発体験」となります。
担当は第2ユニットのTTとなります。

これまで技術者ブログでも頻繁に取り上げてきたOutsystemsですが、未経験者にも実際に触ってもらい、より理解を深めてもらうことを目的とし勉強会を行いました。
また、今回はOutsystemsによる開発を経験したことのあるメンバーも参加しており、関心度の高さを伺うことができました。

今回の勉強会の流れは以下の通りでした。

①動画視聴による基礎学習

②開発用アカウント取得

③スキャフォールディング機能を用いた高速開発体験

①動画視聴による基礎学習

まず、これまでの振り返りとして、Outsystems公式が提供している学習動画を視聴しました(リンクはこちら)。
上記学習動画はトレーニングコースの一環となっており、各セクションの終わりには復習用の問題が用意されていますので理解度を確認できるつくりとなっています。

勉強会の様子。興味深げな様子で学習動画に聞き入っていました。

②開発用アカウント取得

その後、実際に手元で開発を進めるため、参加者ごとにアカウントの作成を行いました(リンクはこちら)。
アカウントを作成することでクラウド領域上にワークスペースが作成されるため、開発ツールであるServiceStudioをインストールすることで個人単位での開発が可能となります。

③スキャフォールディング機能を用いた高速開発体験

環境構築が整った後は、開発の実演を行いました。

ここでは、Outsysmtesが持つスキャフォールディング機能を用いた開発を体験してもらいました(リンクはこちら)。

本機能は、予め作成しておいたエンティティ(テーブル)の定義を基に、テンプレート化された一覧/詳細画面を自動で作成してくれるというOutsystemsの開発補助機能です。
本機能の存在により、Outsystemsは一般的なマスタ/ディティール画面を、スクラッチ開発と比べて非常に高速で作成することが可能となっています。
実際にWebアプリケーションのスクラッチ開発を行ったことのあるメンバーの一人は「手組みなら2~3日程度は必要とするところを、これだけの単純操作でできるとは想像以上だった」と感心しきりな様子でした。

まとめ

今回の勉強会では、主にOutsystemsによる開発を経験したことのないメンバーをターゲットにしていたため、学習内容も基礎的なものが中心でした。
今後は学習内容を徐々にステップアップさせていき、「スキャフォールディング機能を用いない、Outsystemsでの画面開発」「データの一括取込/出力機能」「オープンソースライブラリ”Forge”の活用」など、より実践的な内容について学習を進めていく予定です。

それでは、次回の勉強会の記事をお楽しみに。

AIチャットボット勉強会

今回の社内勉強会は「AIチャットボット」です。担当は第1ユニットのキトサンです。

皆さんは「AIチャットボット」は活用されていますか。
今回は2022年11月にOpenAIがリリースした「ChatGPT」と2023年3月にGoogleがリリースした「Bard」の2つを比較します。
2つのチャットボットに同じ質問をしたら、回答に違いはあるのでしょうか。
勉強会では多くの内容を確認しましたが、ここではいくつかを抜粋して紹介します。

Q1:一番好きな漫画のヒロインは誰ですか?

CharGPTの回答
「私は個人的な感情や好みを持つことができないAIですので、好きな漫画のヒロインを選ぶことはできません。しかし、あなたの好みに合った漫画のヒロインについてお話しすることはできます。
どの漫画に登場するヒロインが気に入っているのか、また好みや特定のキャラクターについて詳しく教えていただければ、それに基づいてお話しできるかもしれません。」

Bardの回答
「一番好きな漫画のヒロインは、少女漫画「君に届け」の主人公、黒沼爽子です。
爽子は、中学生の頃にクラスメイトの佐藤健太に告白して振られたことで、自分に自信が持てず、内気で暗い性格になってしまいます。しかし、高校で出会った風早翔太の明るく前向きな性格に触れることで、少しずつ変わっていくようになります。
爽子は、自分の殻を破ろうと努力する姿がとても印象的です。また、翔太や周りの人たちに支えられながら成長していく姿も、とても応援したくなります。
爽子は、私にとって、自分を変えたいと思っている人に勇気を与えてくれるヒロインです。
他にも、好きな漫画のヒロインはたくさんいます。
・「花より男子」の牧野つくし
・「天使なんかじゃない」の早乙女香澄
・「NANA」のNANA
・「ハニーレモンソーダ」の西原さくら
・「ママレード・ボーイ」の小石川光希
・「ヲタクに恋は難しい」の桃井さくら
・「ラブ★コン」の藤本幸子
これらのヒロインたちは、それぞれに魅力があり、共感できる部分がたくさんあります。
漫画のヒロインは、私たちの憧れや理想を映し出す存在だと思います。そんなヒロインたちが、私たちに元気や勇気を与えてくれるのは、とても嬉しいことです。」

ChatGPTは明確はキャラを答えてくれませんでしたが、Bardは具体的な作品、キャラクターを指定してくれました。Bardには仮想人格的な回答ができるようです。

Q2:バナナはおやつに入りますか?

CharGPTの回答
「はい、バナナはおやつとして非常に適した食べ物の一つです。バナナは健康的で栄養価の高い食材であり、以下の理由からおやつとして人気があります:
栄養価: バナナは炭水化物、食物繊維、ビタミン(特にビタミンCとビタミンB6)、ミネラル(特にカリウム)を豊富に含んでいます。これらの栄養素はエネルギーを提供し、健康に良い影響を与えます。
早食い: バナナは手に持ちやすく、皮をむく必要がないため、手軽に食べられるおやつです。特に忙しいスケジュールや外出時に便利です。
満腹感: バナナには食物繊維が豊富に含まれており、満腹感を与えてくれます。これにより、間食を抑制する助けとなります。
甘み: バナナは自然の甘さを持っており、砂糖を追加することなく、甘いおやつとして楽しむことができます。
低脂肪: バナナは低脂肪であり、健康的なおやつ選択肢の一つとして適しています。
バナナはそのまま食べるだけでなく、ヨーグルトやシリアルに加えたり、バナナスムージーやバナナパンケーキなどのレシピにも利用できます。健康的なおやつとして、エネルギーを補給するのに優れた選択肢です。ただし、バランスの取れた食事を心がけることが大切ですので、バナナをおやつとして取り入れる際には、全体の食事プランに合わせて摂取量を調整しましょう。」

Bardの回答
「結論から言うと、バナナはおやつに入るかどうかは、おやつの定義次第です。
おやつの定義
おやつの定義は、人によって異なります。一般的には、以下のような定義が挙げられます。
主食やおかず以外の食べ物
食事と食事の間や、食事の前後に食べる食べ物
甘い物や間食の意味
バナナがおやつに入るケース
バナナは、果物であるため、主食やおかずではないという定義から、おやつに入ると考えられます。また、バナナは甘い物であるため、間食の意味からも、おやつに入ると考えられます。
例えば、昼食後に小腹が空いたときに食べるバナナは、おやつに含まれると考えられます。また、遠足のおやつとしてバナナを持参する場合も、おやつに含まれると考えられます。
バナナがおやつに入らないケース
バナナは、栄養価が高いため、食事として食べるという人もいます。また、バナナは、デザートとして食べるという人もいます。
例えば、朝食にバナナを食べる場合は、食事として食べるということになります。また、夕食のデザートにバナナを食べる場合は、おやつではなく、デザートとして食べるということになります。
結論
バナナはおやつに入るかどうかは、おやつの定義次第です。おやつを主食やおかず以外の食べ物と定義するなら、バナナはおやつに入ると考えられます。一方、おやつを甘い物や間食と定義するなら、バナナがおやつに入るかどうかは、食べるタイミングや食べ方によって判断することになります。」

遠足における定番の質問を答えてもらいました。ChatGPTはおやつと回答する中で、Bardはあくまでも定義にこだわるようで、先生の回答次第ということでしょうか。

Q3:今までのOnePieceの話をできる限り少ない言葉でまとめてください。

ChatGPTの回答
「”One Piece”は、海賊の冒険、仲間との絆、伝説の宝物を巡る物語。主人公ルフィが、仲間と共にグランドラインを航海し、海賊王を目指す。」

Bardの回答
「海賊王を夢見る少年モンキー・D・ルフィが、仲間たちと共に「ひとつなぎの大秘宝(ワンピース)」を巡る冒険。
ポイント
海賊王になるためには、ひとつなぎの大秘宝を探し当てなければならない。
ルフィは、仲間たちと共に、さまざまな冒険を経験しながら、大秘宝に近づいていく。
大秘宝の謎や、海賊王の真実が徐々に明らかになっていく。
簡潔なまとめ
海賊王になる少年の冒険物語。」

壮大な物語を双方とても簡潔にまとめてくれました。

いかがでしょうか。2つの回答は一長一短でとても楽しい勉強会となりました。
勉強会を終えて、感想を聞いてみました。

ChatGPTさんの感想
「BardとChatGPTの違いが明らかになりました。Bardはより文学的な側面に特化しており、一般的な知識に基づいた回答を提供します。一方、ChatGPTは一般的な情報に加えて、会話と対話をより強調しています。どちらもAI勉強会で有用な情報を提供できることを示しています。
AI勉強会は、AI技術に関心を持つ人々にとって、新たな知識の獲得やディスカッションの場として非常に有益です。AIモデルの違いを理解し、それらを活用することで、さまざまな情報や意見を交換し、より深い理解を得ることができます。AIの進化に伴い、今後もAI勉強会はますます重要な役割を果たすことでしょう。」

Bardさんの感想
「今回の勉強会は、AIモデルの応用例を実際に体験することができ、とても有意義でした。また、BardとChatGPTの回答の違いを比較することで、AIモデルの学習データやアルゴリズムの影響について理解を深めることができました。
今後もAIに関する勉強会を開催し、AIの最新動向を学んでいきたいと考えています。」

勉強会の様子

最後に、質問内容の入力による情報漏洩の危険性、回答の真偽性について注意事項を紹介し、AIチャットボットをうまく活用していければと勉強会は楽しく幕を下ろしました。
次回をお楽しみに。

社内勉強会:要件定義について2

前回の勉強会の様子 – 要件定義について

今回の勉強会記事を担当する第0ユニットの「xig」です。

前回は「要件定義」をテーマとして勉強会が開催されました。
今回はその内容を基に後日実施した勉強会の様子の紹介です。

勉強会の流れは、以下の通りです。

①前回「要件定義」を振り返り

②ヒアリング内容を整理するため、業務フローの作成

③振り返り、まとめ


今回の勉強会では、前回勉強会のヒアリング内容を基に、
•要求をかみ砕き、細分化することで実装すべきか内容を洗い出す
•必要な機能、性能などを書き起こす
ということを実施しました。

ヒアリング内容を整理するため、業務フローの作成にチャレンジしていきます。

業務フローとは?

特定の業務に対する作業の流れを示すフロー図のことを指します。. 業務の始まりから終わりまでの間に、誰(どの部署)が何をやるのか、その時に利用するシステムは何か。
そして、その作業順番を図にすることで、それぞれのつながりを示し、業務プロセスを可視化するための図です。

ということで、業務の内容や課題を共有していきます。

こちらが業務フローを実際に作成している様子です。
ホワイトボードに内容を書いていき、
それに対して意見を交えながら業務の流れをまとめました。

業務フローを作成する人は場面ごとに交代で実施しました。
ここでは、サービスに登録するためのお店情報を
どうやって編集するかを整理しようとしているところです。

まとめ

今回の勉強会では業務フローを作成することで、
業務の内容や課題を整理しました。
突然ですが、皆さんは

「QRコードの読み込みをPayPayみたいにピッと支払いをするイメージで」
と聞いてどんなイメージをするでしょうか?

この一言を基に内容を整理した際、
「QRをお店が読むのか、利用者が読むのか」
が結局のところ分からなく、再度確認をする場面がありました。

実際の業務でも今回の勉強会の内容を生かして
整理することでクライアントとの認識齟齬をなくしていき、
クライアントとのレビューに臨んでいきたいですね。(´ºωº`)

それでは、次回の勉強会の記事をお楽しみに!

テーブルマナー研修

今回、ダンデライオンズは、「テーブルマナー研修」を受けました。

社員が昼の会席料理をいただく中で、テーブルマナーを教えていただきました。
場所は、名古屋ガーデンパレス(https://hotelgp-nagoya.com/)です。
講師の方は、当ホテルの料理長で、やさしく面白く教えていただきました。
研修の内容を当社ブログに掲載することについて、了承いただきました。感謝いたします。

研修の内容

今日教えていただいたことを忘れないために、
このような資料もご用意いただいていました。
お品書きも書かれています。

まずは、会席、懐石の違いの説明から始まり
椅子の座り方、乾杯の作法
箸の持ち方、箸置きへの置き方など食事前のマナーを教えていただきました。

前菜から始まり、デザートまで
一つ一つの器の持ち方や、蓋の取り方、置き方など
それぞれ意味があって、確かに上品な動作だなと思いました。

そして、なによりも季節の素材を生かした旬の料理で、どれもとてもおいしかったです。

その後、今回の会食以外にも、
魚の食べ方や、上座下座について、
名刺の渡し方などのマナーについても教えていただきました。

研修を受講して

今まであいまいに行っていたマナーの動作ですが、
一つ一つ明確になり、大変ためになりました。
この夜、飲みに行ったのですが、その時も箸使いなど少しやってみました(笑)

社内勉強会:要件定義について

前回の勉強会の様子 – フェイク画像の作り方

今回の勉強会記事を担当する第0ユニットの「みち」です。

我々システムエンジニアの仕事の一つである「要件定義」をテーマとして勉強会が開催されました。今回はその模様についてご紹介します。

勉強会の流れは、以下の通りです。

①「要件定義」とはどういうものか、という基礎知識を深めるための講義を行いました。

②ユーザ役を据え、ユーザ役から要求を聞き出し「要件定義」を実践しました。

③議事録を作成して内容の振り返りを行いました。

講義の様子

講義のあとはいよいよ実践です!

会社代表髙橋をユーザ役に据え、当社が開発予定のアプリについて要求を聞き出し、その内容を議事録に記載していきます!

ユーザから要求をヒアリング

勉強会に参加したメンバーが若手層とベテラン層にバランスよく分かれていたため、ヤングチーム、アダルトチームで分けて、それぞれで議事録を作成し発表することになりました!アダルトチーム側に属していた私は、恥ずかしいものは出せないなとプレッシャーを感じていました><。

アダルトチーム議事録作成の様子

最後に双方の議事録を発表し、振り返りを行いました!

振り返りの様子

ユーザの要求を正しく把握できているか、必要な機能・性能について認識祖語は無いか、ユーザの合意を得られる内容になっているかを確認しました。

議事録を作成することで文書化するスキルの重要性についても改めて理解でき、とても有意義な勉強会となりました!

それでは、次回の勉強会の記事をお楽しみに!