Dart is awesome

I recently started working with Flutter by creating my first mobile application for the company’s hackathon.

Prior, I took the course in O’Reilly, which amazingly introduced me to the world of “one code – multiple platforms”.

Flutter is the whole story and requires a separate post.

In the few posts, I’d like to share my expression from the Dart language – which is the language of programming for Flutter apps.

What is Dart

Dart is a programming language designed for client development,[8][9] such as for the web and mobile apps. It is developed by Google and can also be used to build server and desktop applications.
It is an object-orientedclass-basedgarbage-collected language with C-style syntax.[10] It can compile to either native code or JavaScript, and supports interfacesmixinsabstract classesreified generics and type inference.[11]

Wikipedia

The Flutter multi-platform applications are programmed with Dart.

Dart code can be easily converted to JavaScript using dart2js tool.

There is a huge similarity between Dart syntax and Java and JavaScript languages as well as implemented features from other languages like Python.

While JavaScript implements the OOP principles prototypical, the syntax of Dart, is very close to Java with some additional possibilities (like positional and named parameters constructor, default values).

The ease of working with JSON structures and working with them as a Dart object.

Mixins, the widely used feature in Python, can be easily implemented in Dart as, one of the solutions, for multiple inheritances.

Concurrency is another important feature for developing powerful applications. Here, the syntax is also very similar.

String interpolation is the easy and clear way of constructing dynamic contents.

Example

main() {
var h = “Hello”;
final w = “Hello”;
print(‘$h $w’);

print(r’no interpolation for $h $w’);

var hello = ‘Adjusting’ ‘String’;
print(hello);

print(‘${hello.toUpperCase()}’);
print(‘The answer is ${5 + 10}’);


var multiline = “””
This is
miltiline “””;
print(multiline);
}

Dart basic code “Hello World”

Reference

Dart Language Tour by dart.com

Dart in action, by Chris Buckett

Continue Reading Dart is awesome

AWS Technical Essentials

היו המון ידע ומידע חדש בסדנת AWS Technical Essentials בה השתתפתי. הסדנא הועברה על ידי מר גד מאיר.

הקורס הוא רק קצה קרחון של יום אחד בעולם חובק טכנולוגיות ויבשות של AWS. ועדיין, הסקירה באמצעות התרגול בנושאים רבים אפשרה להקים מערך שלם של פתרונות e2e, כולל נושאי אבטחה, היבטים כלכליים, פתרונות חישוב, אחסון, בחירת בסיסי נתונים, הגדרת ביצועים התרחבות (Scaling, Load balancing), ועוד.

לדברי המרצה, ובפוסט המורחב הבלוג שלו, כותב גדי כי הדרך היעילה ביותר לרכוש את הידע ב-AWS היא “הרבה תרגול”. אמזון יצרה מאגרים אדירים של ידע, תרגולים, כתבות ומסמכים ברמות שונות של מורכבות ועומק.

כנקודת כניסה להכשרה מקיפה, אמזון יצרה מדריכי ידע (Ramp-Up Guides), המכילים את כל הנושאים לפי אחד משלושת קטגוריות:  by Role, by Solutionby Industry. כל תחום מביא לרשימה של נושאים וקישורים שצוללים אט אט לעומק הנושא.

הקורסים של AWS זה מאגר תרגולים לפי התחום ההתמחות ומאפשר ללמוד בשלבים באמצעות תכנית מובנית ועקבית.

הסמכות (Certification) למבחני ידע כולל מבחן של 60-70 שאלות. גם המבחנים מחולקים לפי  badge- כל אחד עם דרישות התפקיד, ניסיון בשנים ותחום ההתמחות.

מבחינה טכנולוגית AWS מכיל כיום מספרים עצומים של הפתרונות וכלים. האם אפשר לעקוב אחרי כולם? דף What’s New הוא המחשה לכך: כל החידושים לפי שנים, חודשים או לפי תחום – רשימה נגללת וכמעט אינסופית.

בין הספרים היעילים והמהירים למציאת פתרון, עם חלוקה לנושאים ומפתחות מצוינת – נעזרתי ב-AWS Cookbook של O’Reilly Media.

Continue Reading AWS Technical Essentials

Effective Java practice is starting

Effective Java, the book of Joshua Bloch, is a classic of Java literature. As the book’s preface put it:

If you have ever studied a second language yourself and then tried to use i toutside the class-room, you kjnow that there are three things you must master: how the lanaguage is structured (grammar), how to name things you want to talk about (vocabulary), and the customary and effective ways to say everyday things (usage)…
It is much the same with a programming language. You need to understand the core language: is it algorithmic, functional, object-oriented? You need to know the vocabulary: what data structures, operations, and facilities are provided by the standard libraries? And you need to be familiar with the customary and effective ways to structure your code…
This book addresses your third need: Customeary and effective usage.

I believe every programmer should go through the best books every few years and refine its techniques and best-practice.

In this thread, I will cover the practical examples and practices from the items of the book.

Continue Reading Effective Java practice is starting

הפוסט הראשון

אני רושם את הפוסט הראשון בתחושת גאווה. סוף-סוף הצלחתי ליצור פינה פרטית ואינטימית, שבה אוכל לשתף, לספר, להסביר, לדמיין, לפנטז את תחומי העניין שלי, עיסוק הטכנולוגי, הספרות, הרעיונות למוצרים ודעות על הטכנולוגיות.

Continue Reading הפוסט הראשון

Первая запись

Первый пост, первая запись. В этом блоге я расскажу об интересах, хобби, технологических эксперементах и приключениях, о прочитанных книгах и статьях.

Continue Reading Первая запись

Data Analysis With Python Course Summary

Working with data is an extremely important skill nowadays everyone must-have. Even if you don’t have a programming background, it’s essential today to be able to download easily a dataset from the internet, load and represent it as a table, normalize and then apply some analysis. This is a basic skill for driving in the world of data.

I recently accomplished the course Data Analysis with Python from IBM in Coursera. Seven weeks of learning different stages of working with data: its acquisition, representation, normalization, evaluation, and creating predictions were important knowledge and practice.

Of course, Excel is still a pioneer in most of this stuff. You can easily create a spreadsheet, download some JSON/CSV file or create a new one and finally, do anything from filtering, sorting, and pivot tables to making complex calculations and representing graphs. So why to do that in Python for those who might be neither be familiar with a data science nor the programming world? I believe it should.

Here are my thoughts about the new skills I have reached.

Data Analysis With Python

Data acquisition in python is extremely easy in Python, thanks to the Pandas library. Not just for the simplest file loading, but also for downloading and reading JSON/CSV/EXCEL from the web. With only a single row of code.

Automation. At the end of the day in Python, we are writing code. All the operations are presented as a set of consequent operators. Of course, Excel has something similar to macros, which also can be programmatically expanded, but in python, coding is the only way to work, and thanks to Jupiter Notebooks, the easiest way to code and check yourself on each step by running a single row or code set.

Visualization. Python provides a lot of libraries to visualize data. The course covers the main ones: matplotlib and seaborn. Creating the most of the charts require no more than 6–8 rows of code (depending on customizations).

Prediction. Making a decision based on the data is the core of any business today. Finally, if you want to go forward and create a prediction model for your data, Python is the best place. Starting from week 4, you learn how to create basic linear regression models, visualize, measure, predict, and automate it. The course also covers most aspects of machine learning: model evaluation, refinement, overfitting, and underfitting, ridge regression, and pipes.
This course does not cover deep learning.

In summary, I would say that it’s not the question of which tool is better or worse. However, it is important to be able to use different tools for working with data.

Continue Reading Data Analysis With Python Course Summary