• Служба для управления инфраструктурой с помощью Telegram бота или infrabot.io

      https://www.youtube.com/watch?v=wXhTHyIgQ_U

      Пятница, закончился рабочий день. Радостный, в преддверии двух дней отдыха, а именно субботы и воскресенья, так же, как и мои коллеги собрался я и пошел домой. Добираться до дома та еще задача, так как в связи с сильным ростом заболевших COVID-19, государством было принято решение внести разного рода ряд ограничений, в том числе и ограничение временной остановки работы метрополитена, соответственно все хлынули к виду общественного транспорта – автобусам. Это в свою очередь вызвало гораздо большую переполненность самих автобусов и увеличило загруженность и без того загруженных дорог. Поэтому, если раньше на дорогу уходило 30-40 минут, то сейчас полтора часа. По очевидным причинам в автобусе тоже не разгуляться, стоишь еле стиснутый в углу, пытаешься еле удержаться, хотя и иногда, держась покрепче, не упав ни на кого, залипнуть в телефоне удается. До дома еще добираться час и 20 минут и тут поступает сообщение в общую группу IT в WhatsApp-е, о просьбе разблокировать пользователя. После быстрого ping-а коллег, с некоторыми Request timed out стало ясно, что относительно только у меня, находящегося в переполненным до упора автобусе, есть возможность подключиться и разблокировать пользователя. Проклиная все на свете, подключился через VPN с телефона, еле-еле, кое-как разблокировал пользователя в течении 10-15 минут и сразу отчитался о разблокировке в группе.
      Read more →
    • Войти в IT после 45-ти

      Два с половиной года назад я перешел из отрасли автоматизации промышленного оборудования, в которой я проработал почти 25 лет, в сферу банковского IT, разработчиком Java, и достиг (по оценке моего лида) уровня middle ++.

      Кардинально сменить сферу деятельности в 45 было непростым решением и еще более непростым в реализации, путь был трудным, долгим и на нем пришлось много и часто платить – деньгами, свободным временем и постоянной сложной мозговой активностью. Не всем это под силу, но если вы решились идти в IT в середине своего жизненного пути, то я хотел бы вам помочь - поделиться полезными советами, развеять страхи и сомнения.

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

      Добро пожаловать под кат!
    • Robotic Floor Washer

      • Tutorial

      When we think about robots, the first thing that comes to mind are robotic vacuum cleaners. The reason is simple: they are the most "solid" demonstration of success of "consumer" robotics. So making one sounds like a good idea... at first.

      But isn't it a bit counter productive - to build something that popular, something we can buy in a store at a commodity (small) price? Should we build something similar, but NOT a vacuum cleaner? Something like... a floor washer, perhaps? Yes, a robotic floor washer.

      In this tutorial I am going to build a fully working prototype of a robotic floor washer. By "fully working" I mean that it is going to wash floor, instead of moving dirt around like most robotic "moppers" do. While by "prototype" I mean it is going to be the first step towards production-ready unit, but not a production-ready unit yet. Let me explain.

      First of all, it is not going to be THAT solid. You can grab a robotic vacuum cleaner that you got from the store by any part, including wheels and bumper and lift it. It will not fall apart. Ours probably will. The reason is, to make a device "mechanically solid" is a separate task, and if we focus on it, then "robotic" tasks will become more difficult to achieve. So we are going to do what engineers usually do: first they build C3PO without the outside body, wires everywhere and so on. And only then they put a gold-covered outfit on it.

      Читать далее
    • Android interop with SWIG (a guide). From simple to weird. Part 1 — simple

      SWIG is a tool for generating cross-language interfaces - it provides interoperability of C++ and other languages (C++ and Java in our case). SWIG just simplifies and automizes cross-language interaction; otherwise, you may end up with thousands of lines of handwritten JNI code - but SWIG covers this for you.

      This guide is for newbies (Part 1) and for those who experienced in SWIG (part 2). I'm starting from basic setup and usage and ending with complex & weird cases encountered in development. The latter cases are not so complex, rather usual for modern languages, which SWIG doesn't support yet (as lambdas).

      This guide is practical. In opposition to overcomplicated huge-volume SWIG documentation, this guide is showing the cases practically. The bits developed by myself while working on the different projects or taken from StackOverflow. This guide allows you to quick-start an Android Studio project and giving practical examples of using SWIG. The link to the Android Studio project is here.

      This guide is Android-first. The goal was to make it simple to onboard for Android developers. There are many articles about SWIG, but they are mainly for desktop Java applications, and it is quite an overhead to just try them on Android to check if the solution for the particular problem is working. While this guide includes an Android Studio project, with which you can play around instantly. Of course, all the information given here applies to any Java application.

      Warning! I should warn you, that nowadays cross-platform development offers powerful tools. If you are developing a new application it is much more cost-efficient in practice to use ReactNative, Flutter of Kotlin-Native than the SWIG. While SWIG is more suitable to connect the C++ library or existing C++ application core.

      Enjoy.

      Read more
    • GTK: The First Analyzer Run in Figures

        For some people, the introduction of a static analyzer into a project seems like an insurmountable obstacle. It is widely believed that the amount of analysis results issued after the first run is so large that only two options seem reasonable: do not mess with it at all or refocus all people on fixing warnings. In this article, we will try to dispel this myth by implementing and configuring the analyzer on a GTK project.

        Читать далее
      • Startups going global: a guide to Product Hunt

          Product Hunt is a Y-combinator backed discovery platform, founded by Ryan Hoover in 2013. Conceived as an email list, it has gone on to become one of the most popular directories, raised $7.5 million in backing and was acquired by AngelList — a social network for entrepreneurs — in December 2016.

          Exposure on the platform contributed to viral successes of Yo and Ship Your Enemies Glitter, and brought multi-million dollar companies, like Robinhood and Gimlet Media, to the public eye.

          Continue Reading
        • Tarantool: an analyst's view

            Hi all! I'm Andrey Kapustin. I work as a system analyst at Mail.ru Group. Our products form a unified ecosystem. Many independent infrastructures generate data in it: taxi and food delivery services, email services, social networks, etc. The faster and more precise we can predict a client's needs, the sooner and more correctly we can offer our products. 

            Many system analysts and engineers are keen to know: 

            1. How to design the architecture of a trigger platform for real-time marketing?
            2. How to arrange a data structure that would be in line with the requirements of a marketing strategy for interacting with clients?
            3. How to ensure the stable operations of the  system under very heavy workloads? 

            Such systems are based on technologies of high-load processing and Big Data analysis. We have accumulated considerable experience in these areas. Our expertise is in high demand on the market.  I'm going to show how we help our customers to switch from off-line to on-line in their interactions with clients using Real-Time Marketing solutions based on Tarantool.
            Read more →
          • Ads
            AdBlock has stolen the banner, but banners are not teeth — they will be back

            More
          • React Native: The First Choice of Mobile App Developers and Businesses

              image

              Let’s discuss why mobile app developers select React Native for application development over other cross-platform frameworks.

              While few users continue to work with the Native development approach, those who want to succeed in their business have started exploring new opportunities. One such occasion in this technically advanced world is to turn toward cross-platform frameworks.

              Out of 2.8 million apps available on the Google play store and 2.2 million apps in Apple App Store, there is a growing need for cross-platform applications. The significant advantage of a cross-platform mobile application is that it helps businesses save development costs. This is where React Native comes into action.

              In the middle of this, if you are a businessman and thinking of hiring mobile app developers and there is a continuously running debate in your mind “React Native vs Native” then this post is for you.
              Read more →
            • 9 Reasons Why Students Don’t Want You as a Teacher

                Teaching is hard! Finding a way to explain ideas and concepts, finding an approach to each individual among your students, each having a unique mind and learning capabilities. Being patient and creative, friendly but respective, kind but fair. You have to understand complex stuff and be able to present them in the simplest of ways. There are so many things that you must balance and consider in your work. Teachers, you are heroes, the every-day heroes! With this heroic work comes a responsibility. A responsibility of keeping yourself accountable for your student’s education. Some teachers forget about that and stay oblivious to the mistakes they are making. We’ve compiled a list of 9 Reasons Why Students Don’t Want You as a Teacher. We sincerely hope that it will help you to self-reflect, better connect with your students and achieve better results during your lessons.
              • Tutorial. Deploying Django project to Heroku and storing static content on AWS S3: basic scenario from start to finish

                This tutorial is aimed to help Django beginners who want to run a project on Heroku while storing static files on AWS S3. While being a major help for web developers, both services can be hard for beginners to set up correctly. I’ll admit these topics can be found covered separately elsewhere, but there are also some unaccountable nuances if you are trying to make both work in a single project.

                Personally I couldn’t find a source which would not only cover Heroku deployment or S3 usage, but would address those nuances as well. Reading the manuals trying to figure out what do you have to do to deploy a project correctly might be an important part of learning, but it can also make you lose focus on what you are currently trying to study or, even worse, discourage you altogether. If this is your story, look no further. I hope instructions below will help you to deploy your project in a single track without having to consult with other resources.

                The text is broken down into 3 logically distinct chapters: prerequisites for local Django app (a mini-chapter), integrating  AWS S3 into your app for storing static files, and finally deploying to Heroku. You might not want to go through the entire process in one sitting. In the beginning of each chapter an approximate time required to complete chapter’s instructions will be noted so it is possible for the reader to plan ahead. I would advise not to break down a single chapter into multiple sittings, but if it is not possible, at least try to complete all work covered by a single sub-chapter section in a single go.

                Links to official documentation will be provided in text in case you might need extra details on particular actions.

                Text highlighted in yellow needs to be replaced in accordance with your settings/paths/accounts.

                Read more
              • Visualizing Network Topologies: Zero to Hero in Two Days

                • Translation

                Hey everyone! This is a follow-up article on a local Cisco Russia DevNet Marathon online event I attended in May 2020. It was a series of educational webinars on network automation followed by daily challenges based on the discussed topics.
                On a final day, the participants were challenged to automate a topology analysis and visualization of an arbitrary network segment and, optionally, track and visualize the changes.


                The task was definitely not trivial and not widely covered in public blog posts. In this article, I would like to break down my own solution that finally took first place and describe the selected toolset and considerations.

                Let's get started.


                Read more →
              • Top-10 Bugs Found in C# Projects in 2020

                  image1.png

                  This tough year, 2020, will soon be over at last, which means it's time to look back at our accomplishments! Over the year, the PVS-Studio team has written quite a number of articles covering a large variety of bugs found in open-source projects with the help of PVS-Studio. This 2020 Top-10 list of bugs in C# projects presents the most interesting specimens. Enjoy the reading!
                  Read more →
                • Did It Have to Take So Long to Find a Bug?

                    image1.png

                    Have you ever wondered which type of project demonstrates higher code quality – open-source or proprietary? Our blog posts may seem to suggest that bugs tend to concentrate in open-source projects. But that's not quite true. Bugs can be found in any project, no matter the manner of storage. As for the code quality, it tends to be higher in those projects where developers care about and work on it. In this small post, you will learn about a bug that took two years to fix, although it could have been done in just five minutes.
                    Read more →
                  • Rich text editors from backend perspective

                      Welcome everyone, in this article I’m going to overview the most popular types of rich text editors, tradeoffs of their use from a backend perspective. By that I mean:

                      • Streaming of content from the rich text editor to other infrastructure tools like full-text search, warehouses, etc.
                      • Retrieving of content to clients: mobile, web, desktop.
                      • Storing of content in some kind of storage (SQL database in my case)
                      • Analyzing of content, which includes point 1, but also analyzing it from the perspective of our application
                      Read more →
                    • ONLYOFFICE Community Server: how bugs contribute to the emergence of security problems

                        image1.png

                        Server-side network applications rarely get the chance to join the ranks of our reviews of errors found in open source software. This is probably due to their popularity. After all, we try to pay attention to the projects that readers themselves offer us. At the same time, servers often perform very important functions, but their performance and benefits remain invisible to most users. So, by chance, the code of ONLYOFFICE Community Server was checked. It turned out to be a very fun review.
                        Read more →
                      • Big Data Tools EAP 12 Is Out: Experimental Python Support and Search Function in Zeppelin Notebooks

                          Update 12 of the Big Data Tools plugin for IntelliJ IDEA Ultimate, PyCharm Professional Edition, and DataGrip has been released. You can install it from the JetBrains Plugin Repository or from inside your IDE. The plugin allows you to edit Zeppelin notebooks, upload files to cloud filesystems, and monitor Hadoop and Spark clusters.


                          In this release, we've added experimental Python support and global search inside Zeppelin notebooks. We’ve also addressed a variety of bugs. Let's talk about the details.


                          Read more →
                        • Russian microcontroller K1986BK025 based on the RISC-V processor core for smart electricity meters

                          • Translation
                          Welcome to RISC-V era!

                          Solutions based on the open standard instruction set architecture RISC-V are currently increasing their presence on the market. Microcontrollers from Chinese colleagues are already in serial production; Microchip is offering interesting solutions with FPGA on board. The ecosystem of software and design tools for this architecture are also growing. Seeming previously unshaken leaders have more often found themselves in resale ads, while young startups attract multi-million investments. Milandr also got involved in this race and today began supplying interested companies with samples of its new K1986BK025 microcontroller based on the RISC-V processor core for electricity meters. Well here we go, pictures, characteristics and other information, as well as a little bit of hype under the cut.


                          Read more →