Skip to main content


How to build FAQ Chatbot on Dialogflow?

  After Google I/O I’m inspired and excited to try new APIs and learn new stuff from Google. This time I decided to try Dialogflow and build a Flutter Chatbot app that will answer some frequently asked questions about Dialogflow. This time I want to be focused more on Dialogflow rather than Flutter. Firstly, go to  Dialogflow ES console , create a new Agent, specify the agent’s name, choose English as a language and click “Create”. As you created a new agent go to setting and enable beta features and APIs and Save. Now let’s model our Dialogflow agent When you create a new Dialogflow agent, two default intents will be created automatically. The  Default Welcome Intent  is the first flow you get to when you start a conversation with the agent. The  Default Fallback Intent  is the flow you’ll get once the agent can’t understand you or can not match intent with what you just said. Click  Intents > Default Welcome Intent Scroll down to  Responses . Clear all Text Responses. In the defau
Recent posts

Vertex AI – One AI platform, every ML tool you need

  This year on Google I/O (Google’s Developer conference) Google presented a new platform that unites all ML tools. Vertex AI brings together the Google Cloud services for building ML under one, unified UI and API. There are many benefits to using Vertex AI. You can train models without code, with minimal expertise required, and take advantage of AutoML to build models in less time. Also, Vertex AI’s custom model tooling supports advanced ML coding, with nearly 80% fewer lines of code required to train a model with custom libraries than competitive platforms. Google Vertex AI logo You can use Vertex AI to manage the following stages in the ML workflow: Define and upload a dataset. Train an ML model on your data: Train model Evaluate model accuracy Tune hyperparameters (custom training only) Upload and store your model in Vertex AI. Deploy your trained model and get an endpoint for serving predictions. Send prediction requests to your endpoint. Specify a prediction traffic split in your

What the Flutter? ExpansionPanel

  A common pattern in apps is to have a list of items that you can expand to show more details. Sometimes these details don’t justify an entirely separate view, and you just need them to show up inline in the list. For that, check out ExpansionPanel, a widget that when tapped on will expand a panel. Start with the  headerBuilder , which returns what the first line of this panel will be. It takes a context and a boolean, so you can change what it looks like when the panel is open vs closed and returns a widget. Next up is the body, which contains the contents of the opened panel. And finally is the boolean  isExpanded  to indicate whether or not this panel is currently open. But what to do with this flag? Well, ExpansionPanels almost exclusively appear as children of ExpansionPanelLists. Here, we can maintain a list of which panels are open and use  ExpansionPanelList’s  expansionCallback parameter to update them. This callback takes an index of the panel that’s just been tapped and whe

Flutter 2 is here! What’s new?

  Flutter 2 is finally released. And it has a bunch of new stuff! As my core tech for this year is Flutter and automation (wait for it) I will write about it a lot! Here I want just to start the journey and show you the coolest news in Flutter 2 Web support Flutter’s web support has transitioned from beta to the stable channel. With this initial stable release, Flutter pushes the reusability of code to another level with the support of the web platform. So now when you create a Flutter app that is stable, the web is just another device target for your app. Find more details about this stable release in  Flutter’s web support blog post . Desktop The ReorderableListView now has grab handles for easy drag ’n’ drop with a mouse In this release, It was announced that Flutter’s desktop support is available in the stable channel under an early release flag. What this means is that we’re ready for you to give it a try as a deployment target for your Flutter apps: you can think of it as a “beta

Reporting COVID-19 cases via sms using Python

  I was planning to write this tutorial long ago when I actually did such an automation system. I was inspired by Reddit people to do this 😛 The idea is that we want some sort of app that will check daily cases in the selected country about the COVID-19 situation and send a report via text message. We will use Python to write the code and  Twilio  services for sending text messages (You need an account there – it’s free). Let’s start with some libraries that we will need: Here we have Selenium for using the web, pandas for focusing on data, time because my server needs some time to process 😉 and Twilio as a service for our Text messages. The code I’ll explain in comments, let’s create our class Basically, that’s it. We have set up a web driver and wrote our tracker function. To send text messages we need Twilio, from the documentation we need to implement this piece of code: Account_sid and auth_token are values that you need to get from your account, same with Twilio numbers. For no

Python 3.9 is here!

  On October 5th Python 3.9 was officially out of beta and realized to everyone. Here I’m gonna describe some important and cool changes that come with Python 3.9. Simpler Updating of Dictionaries Merge ( | ) and update ( |= ) operators have been added to the built-in  dict  class. These complement the existing  dict.update  and  {**d1, **d2}  methods of merging dictionaries. One advantage of using  |  is that it works on different dictionary-like types and keeps the type through the merge: You can use a  defaultdict  when you want to effectively handle missing keys. Note that  |  preserves the  defaultdict , while  {**europe, **africa}  does not. Type Hinting Generics in Standard Collections In type annotations, you can now use built-in collection types such as  list  and  dict  as generic types instead of importing the corresponding capitalized types (e.g.  List  or  Dict ) from  typing . Some other types in the standard library are also now generic, for example  queue.Queue . Exampl

What’s new in ARKit 4

  Here it is. The latest version of Apple’s Augmented Reality framework,  ARKit 4 , has just been announced at  WWDC 2020 . Let’s see what’s new in ARKit 4 and for Augmented Reality app development on iOS.  If you’re more inquisitive I linked all stuff directly to Apple documentation. Location anchors ARKit  location anchors  allow you to place virtual content in relation to anchors in the real world, such as points of interest in a city, taking the AR experience into the outdoors.   By setting geographic coordinates (latitude, longitude, and altitude) and leveraging data from Apple Maps, you can create AR experiences linked to a specific world location. Apple calls this process “visual localization”, basically locating your device in relation to its surroundings with a higher grade of accuracy.   All iPhones & iPad with at least an A12 bionic chip and GPS are supported. Depth API The new ARKit  depth API , coming in iOS 14, provides access to valuable environment depth data, power