All streams
Search
Write a publication
Pull to refresh

Development

Show first
Period
Level of difficulty

How to Set Up Your Own VPN Server in 15 Minutes

Reading time3 min
Views66K

If you use Habr, chances are, you’re conscious about privacy on the web. As governments and corporations tighten their grip on people’s online activities, the issue of keeping your browsing data to yourself becomes more and more relevant.


Numerous tech websites say VPN is no longer a geek-only thing, and regular people should use it, too (Fast Company, Mashable, PCMag). But as a tech-savvy person, you know there isn’t a service you can trust as much as the one you host and manage yourself.


With this post, you’ll deploy your own instance of Outline VPN on AWS.

Read more →

Indexes in PostgreSQL — 6 (SP-GiST)

Reading time11 min
Views9.5K
We've already discussed PostgreSQL indexing engine, the interface of access methods, and three methods: hash index, B-tree, and GiST. In this article, we will describe SP-GiST.

SP-GiST


First, a few words about this name. The «GiST» part alludes to some similarity with the same-name access method. The similarity does exist: both are generalized search trees that provide a framework for building various access methods.

«SP» stands for space partitioning. The space here is often just what we are used to call a space, for example, a two-dimensional plane. But we will see that any search space is meant, that is, actually any value domain.

SP-GiST is suitable for structures where the space can be recursively split into non-intersecting areas. This class comprises quadtrees, k-dimensional trees (k-D trees), and radix trees.
Read more →

How to push parameters into methods without parameters in safe code

Reading time4 min
Views6.8K
Hello. This time we continue to laugh at the normal method call. I propose to get acquainted with the method call with parameters without passing parameters. We will also try to convert the reference type to a number — its address, without using pointers and unsafe code.

Read more →

Flightradar24 — how does it work? Part 2, ADS-B protocol

Reading time9 min
Views8.2K
I’m going to have a guess and say that everyone whose friends or family have ever flown on a plane, have used Flightradar24 — a free and convenient service for tracking flights in real time.

image

In the first part the basic ideas of operation were described. Now let's go further and figure out, what data is exactly transmitting and receiving between the aircraft and a ground station. We'll also decode this data using Python.
Read more →

Dozen tricks with Linux shell which could save your time

Reading time10 min
Views9.2K


  • First of all, you can read this article in russian here.

One evening, I was reading Mastering regular expressions by Jeffrey Friedl , I realized that even if you have all the documentation and a lot of experience, there could be a lot of tricks developed by different people and imprisoned for themselves. All people are different. And techniques that are obvious for certain people may not be obvious to others and look like some kind of weird magic to third person. By the way, I already described several such moments here (in russian) .

For the administrator or the user the command line is not only a tool that can do everything, but also a highly customized tool that could be develops forever. Recently there was a translated article about some useful tricks in CLI. But I feel that the translator do not have enough experience with CLI and didn't follow the tricks described, so many important things could be missed or misunderstood.

Under the cut — a dozen tricks in Linux shell from my personal experience.
Read more →

Details

Reading time6 min
Views1.1K
How often do you get to 404 pages? Usually, they are not styled and stay default. Recently I’ve found test.do.am which interactive character attracts attention and livens up the error page.

Probably, there was just a cat picture, then they thought up eyes movement and developer implemented the idea.imageNow user visits the page and checks out the effect. It’s cool and pleasant small feature, it catches, then user discusses it with colleagues or friends and even repeats the feature. It could be this easy, if not:

Pentesting Azure  — Thoughts on Security in Cloud Computing

Reading time3 min
Views1.7K
A few months ago I worked with a customer on how a team should evaluate the security of their Azure implementation. I had never done a pentest(extensive security testing)on an Azure application before, so these ideas were just the thoughts off of the top of my head at that time based on my experience in security.

Matt Burrough’s book, Pentesting Azure Applications, goes even deeper and it is a must-read for security experts focused in Cloud Computing, I’m reading it right now.

Below I share with you these pre-book thoughts, and will compare them in a future article with the ones I will learn — or confirm — after reading Matt's book.

Read more →

The Processing of Unrecoverable Errors in Swift

Reading time6 min
Views3.9K

Preface


This article is an example of how we can do research into Swift Standard Library functions behavior building our knowledge not only on the Library documentation but also on its source code.


Unrecoverable Errors


All events which programmers call "errors" can be separated into two types.


  • Events caused by external factors such as a network connection failure.
  • Events caused by a programmer's mistake such as reaching a switch operator case which should be unreachable.
Read more →

Announcing TypeScript 3.3

Reading time5 min
Views1.2K

If you’re unfamiliar with TypeScript, it’s a language that brings static type-checking to JavaScript so that you can catch issues before you even run your code – or before you even save your file. It also includes the latest JavaScript features from the ECMAScript standard on older browsers and runtimes by compiling those features into a form that they understand. But beyond type-checking and compiling your code, TypeScript also provides tooling in your favorite editor so that you can jump to the definition of any variable, find who’s using a given function, and automate refactorings and fixes to common problems.

Read more →

Announcing F# 4.6 Preview

Reading time10 min
Views1.6K

We’re excited to announce that Visual Studio 2019 will ship a new version of F# when it releases: F# 4.6!


F# 4.6 is a smaller update to the F# language, making it a “true” point-release. As with previous versions of F#, F# 4.6 was developed entirely via an open RFC (requests for comments) process. The F# community has offered very detailed feedback in discussions for this version of the language. You can view all RFCs that correspond with this release here:



This post will detail the feature set and how to get started.

Read more →

Videogame monsters: how to sow fear

Reading time4 min
Views3.3K

In video games, enemies are one of the key figures, without which a game might lose its meaning, and when it’s not only enemies, but terrifying monsters, they often create the chilling atmosphere intended by the developers. It’s impossible to imagine Silent Hill without the Pyramid Head, or Outlast without Chris Walker, and so on, you get the idea. Monsters are a cumulative image of a video game enemy, and it’s not necessarily an ugly demon or a giant spider: even an angry neighbor, like in Hello Neighbor, is a monster despite his human appearance.

This is where the reader probably asks:


what’s the point of this article?
Read more →

Lifetime Profile Update in Visual Studio 2019 Preview 2

Reading time5 min
Views1.4K

The C++ Core Guidelines’ Lifetime Profile, which is part of the C++ Core Guidelines, aims to detect lifetime problems, like dangling pointers and references, in C++ code. It uses the type information already present in the source along with some simple contracts between functions to detect defects at compile time with minimal annotation.



Read more →

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 →