Pull to refresh

All streams

Show first
Rating limit
Level of difficulty

Naming things

Reading time5 min
Views7K
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

Reading time4 min
Views7.5K


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 →

Test me if you can. Do YML developers Dream of testing ansible?

Reading time3 min
Views3.6K

kitchen-ci schema


It is text version of the presentation 2018-04-25 at Saint-Petersburg Linux User Group. Configuration example locates at https://github.com/ultral/ansible-role-testing


I suppose that that you make configuration management, not bash. It means that you have to test it some how. Have you ever tested ansible roles? How do you do it?

Read more →

Android Robotics up to 2019: The real story; in 5 parts; part 1

Reading time23 min
Views4.8K
image

Quite a long time ago, seven years ago to be precise, i wrote a series of posts describing the state of android robotics in the world. At the time i was a high school student, with a keen interest in android robotics, who absorbed a bit of knowledge from English, Japanese, Chinese, Korean and Russian internetz and wanted to spill it somewhere.

While the posts were not too professional, and not to my standards of today, they were worthy enough to get stolen and even get translated by unapproved English Habrahabr mirrors, and to this day, appear in searches.

After those posts were written, Habrahabr got split. Removal of everyone outside of pure coding who were considered «not cake enough» to Geektimes felt like an insult and so i left the platform. Yet, the website was reunited last year, and much to a personal surprise, fairly recently an English version of Habrahabr was released.

During all these years i managed to be kicked from one university, finished another with a thick thesis on «Usage of Robotics in Disaster Conditions», lived in the Republic of Korea for half a year, and most importantly, not only expanded my knowledge of android robotics in such ways that the Robotics folder on the main hard drive is now more than 300GB in size, but also expanded the knowledge via journeying and personally meeting projects of the past and present, creating quite a decent archive on Youtube and met not only with the robots, but the engineers and scientists as well.

While i am still nowhere to be a robotics engineer, (and in the daily life i attempt to be a traditional slice-of-life artist), i feel that my tiny gigabytes of knowledge might be worthy of sharing, and today on Habr i'm publishing the real story of Android Robotics from the beginning up to 2019.

[SAP] SAPUI5 for dummies part 1: A complete step-by-step exercise

Reading time2 min
Views4K


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 →

How to test your own OS distribution

Reading time3 min
Views1.9K

intro


Russian version


Let's imagine that you are developing software and hardware appliance. The appliance consists of custom OS distributive, upscale servers, a lot of business logic, as a result, it has to use real hardware. If you release broken appliance, your users will not be happy. How to do stable releases?


I'd like to share my story how we dealt with it.

Читать дальше →

ML.NET Tutorial — Get started in 10 minutes

Reading time3 min
Views5.5K
Last year we announced ML.NET, cross-platform and open ML system for .NET developers. During this time, it has evolved greatly and has gone through many versions. Today we are sharing a guide on how to create your first ml.net application in 10 minutes.

Читать дальше →

(in)Finite War

Reading time6 min
Views1.7K

infitite war


We have a problem. The problem with testing. The problem with testing React components, and it is quite fundamental. It’s about the difference between unit testing and integration testing. It’s about the difference between what we call unit testing and what we call integration testing, the size and the scope.


It's not about testing itself, but about Component Architecture. About the difference between testing components, standalone libraries, and final applications.


Everyone knows how to test simple components(they are simple), probably know how to test Applications(E2E). How to test Finite and Infinite things…

But... no, nobody knows actually.

PVS-Studio for Java

Reading time12 min
Views2.6K
PVS-Studio for Java

In the seventh version of the PVS-Studio static analyzer, we added support of the Java language. It's time for a brief story of how we've started making support of the Java language, how far we've come, and what is in our further plans. Of course, this article will list first analyzer trials on open source projects.
Читать дальше →

My experience of advertising and development of Android and iOS application

Reading time4 min
Views4K


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

Reading time2 min
Views4.6K

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 →

Full-stack developers are in fact stuck at mid-level. Spare yourself from suffering – don’t go down that path

Reading time4 min
Views21K


Back in those times when I just started learning how to code, I trusted the old wise weasels with their “Programming languages don’t matter” mantra. I grew obsessed with the idea of some day becoming a developer who can do just anything. That guy who transfers his experience from one technology to another and transcends the minutia. But that idea failed miserably.

Читать дальше →

$10 million in investments and Wozniak's praise — creating an educational computer for children

Reading time14 min
Views2.1K
We interviewed Mark Pavluykovskiy — the creator of the Piper educational computer. We asked him about immigrating from Ukraine to the US, how he almost died in Africa, graduated from Princeton, dropped out of a doctorate in Oxford and created a product that deserved a praise from Satia Nadella and Steve Wozniak.



In mid-October the Sistema_VC venture capital fund hosted a conference called Machine Teaching, where creators of various educational startups assembled to talk about technical advancements.

The special guest was Mark Pavluykosvkiy, the creator of Piper. His company created an educational computer — a children’s toy that, using wires, circuit boards and Minecraft teaches programming and engineering to children. A couple of years ago Mark completed a successful Kickstarter campaign, got a couple of Silicon Valley investors on board and raised around $11 million dollars in investments. Now he’s a member of Forbes’ “30 under 30” list, while his project is used by Satia Nadella and Steve Wozniak, among others.

Mark himself is a former Princeton and Oxford student. He was born in Ukraine, but moved to the US with his mother when he was a child. In various interviews Mark claimed that he doesn’t consider himself a genius, but simply someone who got very lucky. A lot of other people aren’t so lucky, however, and he considers it unfair. Driven by this notion, during his junior year he flew to Africa, where he almost died.

System in Package, or What's Under Chip Package Cover?

Reading time7 min
Views5.5K
Transistor feature size is decreasing despite constant rumors about the death of Moore’s law and the fact that industry is really close to physical limits of miniaturisation (or even went through them with some clever technology tricks). Moore’s law, however, created user’s appetite for innovation, which is hard to handle for the industry. That’s why modern microelectronic products aren’t just feature size scaled, but also employ a number of other features, often even more complicated than chip scaling.


Disclaimer: This article is a slightly updated translation of my own piece published on this very site here. If you're Russian-speaking, you may want to check the original. If you're English-speaking, it's worth noting that English is not my native language, so I'll be very grateful for the feedback if you find something weird in the text.
Read more →

Currying and partial application in C++14

Reading time10 min
Views8K

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!

Читать дальше →

Progress and hype in AI research

Reading time19 min
Views4.8K

The biggest issue with AI is not that it is stupid but a lack of definition for intelligence and hence a lack of formal measure for it [1a] [1b].


Turing test is not a good measure because gorilla Koko [2a] and bonobo Kanzi [2b] wouldn't pass though they could solve more problems than many disabled human beings.


It is quite possible that people in the future might wonder why people back in 2019 thought that an agent trained to play a fixed game in a simulated environment such as Go had any intelligence [3a] [3b] [3c] [3d] [3e] [3f] [3g] [3h].


Intelligence is more about applying/transferring old knowledge to new tasks (playing Quake Arena good enough without any training after mastering Doom) than compressing agent's experience into heuristics to predict a game score and determining agent's action in a given game state to maximize final score (playing Quake Arena good enough after million games after mastering Doom) [4].


Human intelligence is about ability to adapt to the physical/social world, and playing Go is a particular adaptation performed by human intelligence, and developing an algorithm to learn to play Go is a more performant one, and developing a mathematical theory of Go might be even more performant.

Read more →