• Teaching kids to program

    • Translation

    Hi. My name is Michael Kapelko. I've been developing software professionally for more than 10 years. Recent years were dedicated to iOS. I develop games and game development tools in my spare time.


    Overview


    Today I want to share my experience of teaching kids to program. I'm going to discuss the following topics:


    • organization of the learning process
    • learning plan
    • memory game
    • development tools
    • lessons
    • results and plans
    Read more →
  • Xcode 10.2, macOS Mojave 10.14.4, iOS 12.1 and other betas



      New betas are here and these are some of the most important things that I have learned about them.

      Swift 5 for Xcode 10.2 beta


      Swift


      Firstly, the latest Xcode beta is bundled with the following Swift version:

      Apple Swift version 5.0 (swiftlang-1001.0.45.7 clang-1001.0.37.7)
      Target: x86_64-apple-darwin18.2.0
      ABI version: 0.6

      Let’s start with the most exciting news:
      Swift apps no longer include dynamically linked libraries for the Swift standard library and Swift SDK overlays in build variants for devices running iOS 12.2, watchOS 5.2, and tvOS 12.2. As a result, Swift apps can be smaller when deployed for testing using TestFlight, or when thinning an app archive for local development distribution.
      Application Binary Interface stability is coming! And this is excellent news. I think this is the one of the most significant issues at the moment with Swift. Not because of side-effects but because of Swift’s failure to deliver on previous promises. Anyway, I even know people who rewrite their Apple Watch extensions to Objective C to reduce the size of binary (something like 15MB vs ~1MB in Objective C). If you want to know more about the state of ABI, follow the links: Swift — ABI Dashboard and Swift ABI Stability Manifesto.
      Read more →
    • SAPUI5 for dummies part 4: A complete step-by-step exercise

      • Tutorial


      Introduction & Recap


      In the previous blog post, we learned how to move our current application into a Master-Detail app displaying Business Partner as a list (master) and its detail information with Sale Orders inside the detail page (detail).


      What will be covered on this exercise


      With Part 4 of this series of blog posts, we will learn how to create a second drill-down page with information about the Sale Order detail and display a table of Sale Order items.


      The most important part of this exercise is to understand how to Delete (part of the CRUD operations) a Sale Order Item of a Sale Order.


      • ODataModel: we have already used it to display server-side information about our Business Partner, Order Sale. Now we’re going to use it to display Sale Order Item and delete them from the set. For this purpose, we’re going to use the remove method

      This is our main task in this exercise but it’s not the only thing we’ve done in the code. Here’s a list of the things you have to do to get to the final result:


      • Add a new route and target in the manifest.json to navigate to the BusinessPartnerSeleOrderItem page
      • Listen on the Sale Order click event and navigate to the SaleOrder detail (where we will display sale order detail and sale order items)
      • Add a FilterBar to filter the Sale Order Item’s table
      • Add a ViewSettingsDialog to sort/group Sale Order Items
      • Expand the ToProduct navigation property of a SaleOrderItem entity to display Product information into table’s rows
      Read more →
    • The VS Code Roadmap 2019 — DRAFT

        As 2018 has come to an end, now is the time to look towards the future. We typically look out 6 to 12 months and establish topics we want to work on.


        As we go we learn and our assessment of some of the topics listed changes. Thus, we may add or drop topics as we go.


        We describe some initiatives as «investigations» which means our goal in the next few months is to better understand the problem and potential solutions before scheduling actual feature work. Once an investigation is done, we will update our plan, either deferring the initiative or committing to it.


        As always, we will listen to your feedback and adapt our plans if needed.


        Read more →
      • Translating Dust templates to JSX



          Hello Habr! I'm Miloš from Badoo, and this is my first Habr post, originally published in our tech blog. Hope you like it, and please share and comment if you have any questions

          So… React, amirite???

          It appeared in the middle of the decade (plagued by the endless JavaScript framework wars), embraced the DOM, shocked everyone by mixing HTML with JavaScript and transformed the web development landscape beyond recognition.

          All those accomplishments, without even being a framework.

          Love it or hate it, React does one job really well, and that is HTML templating. Together with a great community and a healthy ecosystem, it’s not hard to see why it became one of the most popular and influential JavaScript libraries, if not the most popular one of all.
          Read more →
        • SAPUI5 for dummies part 3: A complete step-by-step exercise

          • Tutorial


          Introduction & Recap


          In the previous blog post, we learned how to filter, sort and group our table. This is a fundamental aspect of every CRUD application because most of the time users have to deal with hundreds of hundreds of records.


          What will be covered on this exercise


          With Part 3 of this series of blog posts, we will learn how to create a Master-Detail application leveraging the SplitApp UI control and how correctly configure the app’s manifest to handle routes and targets.


          • SplitApp: UI control that allows you to create a Master-Detail application (used as a replacement of the App control)
          • Routing: we will configure the manifest.json to correctly handle the routing of the application
          • ObjectHeader: control that enables the user to easily identify a specific object. The object header title is the key identifier of the object and additional text and icons can be used to further distinguish it from other objects
          • Navigation to a detail view and bind the element context: you will learn how to navigate and open a detail page and bind the current View (of the detail) to a new context
          • List: in the master page we will use a list to display BusinessPartner because we will have less space
          Читать дальше →
        • AdBlock has stolen the banner, but banners are not teeth — they will be back

          More
          Ads
        • Naming things

            There are only two hard things in Computer Science: cache invalidation
            and naming things.

            — Phil Karlton

            We, developers, spend more time reading code than writing it. It is important for the code to be readable and clear about its intent.


            Below are some advice based on my experience naming things.

            Читать дальше →
          • SAPUI5 for dummies part 2: A complete step-by-step exercise

            • Tutorial


            Introduction & Recap


            In the previous blog post, we started designing our application rendering a table with some Business Partner. We learned what OData protocol is, how to read an OData XML manifest, how to bind data to a Table and how to customize columns layout based on different screen resolution.


            What will be covered on this exercise


            With Part 2 of this series of blog posts, we will learn how to interact with data in our Tables and List. We will learn how to filter and sort data in a smart way.


            • Create JSONModel to handle local data
            • Set a default sizeLimit to our JSONModel
            • FilterBar: UI control that displays filters in a user-friendly manner to populate values for a query
            • Use XML Fragments to create a View Settings Dialog to handle sort and group data
            • Filter and Sort data
            • Add an Info Toolbar to our table to display useful information
            Read more →
          • [SAP] SAPUI5 for dummies part 1: A complete step-by-step exercise

            • Tutorial


            Introduction & Recap


            In the previous blog post, we have created a new SAPUI5 application on our SAP SCP WebIDE Full stack and we have configured it to use the destination to the SAP Netweaver Gateway Demo ES5.


            What will be covered on this exercise


            • What is an XML Metadata Manifest and what’s inside it?
            • How to use our OData Model and bind it into our application
            • Use a sap.m.Table with items and property binding
            • Use sap.ui.model.type.DateTime to format JavaScript Date
            • How to style columns to act differently on mobile/tablet/desktop devices
            Read more →
          • My experience of advertising and development of Android and iOS application



              Let me share an interesting experience in promotion of a mobile game.

              1. Introduction


              I am going to describe all the benefits and of course show the final results. The example will be the mobile game Quick Brain which is available for Android и iOS. Quick Brain Android was released the first that's why its possibilities differ considerably from iOS version.

              I have been always kept by the thoughts that everyone's talking about high returns in contrast with Android. I just couldn't resist such attractive prospects and started more active refinement of iOS version in order to feel less embarrassed about it.

              After Google play iOS has become an absolutely new field for the games for me. During my comparative experiment I've found out that iOS version can bring comparable earnings to Android with daily audience 3 to 10 times less depending on the country.
              Читать дальше →
            • [SAP] SAPUI5 for dummies: A complete step-by-step exercise

              • Tutorial

              Yesterday I’ve blogged about the content I’m creating for new developers that have arrived at our Techedge office in Lucca.


              Teaching is something I started to love, is the natural consequence of the fact that I love to learn and love to share my knowledge. And I think that it’s important that new students or young developers have some curated content to start with, maybe with also some tip&tricks that senior has learned during their journey.


              The idea behind this exercise is to cover every topic a SAPUI5 developer should know and understand.


              The exercise will be available on my GitHub project openui5-exercise.

              Read more →
            • Currying and partial application in C++14

              • Translation

              In this article I'm going to tell you about one of the currying options and partial application of the functions in C++ which is my personal favourite. I'm also going to show my own pilot implementation of this thing and explain the point of currying without complex mathematical formula, making it really simple for you. We'll also see what's under the hood of kari.hpp library which we'll be using for currying functions. Anyway, there are lots of fascinating stuff inside, so welcome!

              Читать дальше →
            • SAP: What do you need to start learning SAPUI5?

              • Tutorial

              image


              Introduction


              At the start of September 2018, some cool guys also joined our team, they are fresh from University and they are really hungry to learn how to design and develop amazing web apps with SAPUI5.


              That’s why I’ve started to collects internally on the web some links in order to create “The perfect journey to become a SAPUI5 Ninja Developer”.


              I’ve also started to write down some exercise (from easy to hard) in order to test what they’ve learned but I will share those in a second blog post as soon I’ve finished them.


              Presentation


              Hi everyone,
              I'm Emanuele Ricci, a full-stack developer based in Lucca (a beautiful little city in Tuscany, Italy).


              Since the last three years, I work full-time for Techedge Group, a big worldwide consultant company that is a partner with SAP. I usually work in projects related with SAPUI5, SCP, HANA and in my free time, I love to create content around the technology I use at work and in my personal projects outside SAP. Lately, I'm a little bit experimenting with Android after the release of SAP Fiori SDK for Android/iOS.

              Read more →
            • Automation VS Chaos

                image

                IT technologies evolution allowed to control huge data flows. Business has a lot of IT solutions: CRM, ERP, BPM, accounting systems or at least just Excel and Word. Companies are different too. Some of companies are composed of plenty branches. Let’s name such as “Pyramid”. Pyramids have data synchronization issue for pile of IT systems. Software vendors and versions differ for branches significantly. In addition management company continuously modify reporting requirements that causes frustration assaults in the branches. This is a story about the project I happened to encounter chaos that needed to be systematized and automated. Low budget and tight deadlines limited the use of most existing industrial solutions but opened up scope for creativity.
                Читать дальше →
              • How to Painlessly Unite Art with Java, JavaScript, and Graphs or The Story Behind Creating an Interactive Theatre Produc

                  Last year 2018, a theatre production series called Tale of the Century was launched in Estonia. Throughout the year, 22 local theatres presented their interpretations of the past hundred years of Estonian history to the audiences. In the draw, the Russian Theatre was assigned the topic of the future of Estonia.

                  Читать дальше →
                • How to setup front-end project with automated formatting, linting, testing and auto-generated documentation

                  • Tutorial


                  Original post in Russian


                  Keeping your code consistent and well formatted not an easy task even when you work alone. But when you work with a team or with open source project all start getting even harder. Everyone has own code style, someone doesn’t run tests, and no one writes documentation. This article will help you to set up all these things and even more — automate this routine to never do it manually.


                  After reading you will get your own npm-ready project with next features:

                  Read more →
                • Modes are vim’s killer feature? Seriously?

                  • Translation
                  Author of the original post in Russian: varanio

                  You may have read a recent article suggesting that vim is great unlike IDEs, because of their allegedly low typing speed.

                  Let’s recall that the main message of that article was that vim’s killer feature consists in its modes that sort of outshine everything else. That said, the author acknowledged that IntelliJ IDEA and other IDEs provide hotkeys and other user experience which can be easily used. However, since they lack modes, vim is supposed to be everyone’s first choice.

                  The author then suggests that instead of pressing ctrl+arrows to move between words, it is easier to press Esc, e and then go back to the i editing mode. Understandably, all this trouble because the author finds it inconvenient to hold ctrl.

                  I know that articles that criticize vim get many negative votes, but I just have to speak out.
                  Read more →