Pull to refresh
1
0
Send message

Вложенные классы в Java

Reading time 3 min
Views 69K
image

Добрый день, Хабровчане! Я уже довольно давно программирую на java, и нередко использую вложенные классы, но недавно наткнулся на статический вложенный класс и понял, что я о нем почти ничего не знаю. Поэтому я решил разобраться в этом, систематизировать свои знания, а заодно и поделиться этими знаниями с вами.
Читать дальше →
Total votes 22: ↑15 and ↓7 +8
Comments 13

Просто о D3.js

Reading time 6 min
Views 82K


70 тысяч звездочек на гитхабе и сотни интересных проектов. Кажется, что D3 это что-то большое и очень сложное, но это не так. Я расскажу об основах D3 и поделюсь опытом разработки инфографики Бюростат.

Читать дальше →
Total votes 34: ↑34 and ↓0 +34
Comments 21

Путешествие из Node в Crystal

Reading time 7 min
Views 14K
В компании Duo много лет, в качестве основной платформы, использовали Node. Однако, в последнее время они экспериментировали с очень новым, ещё не вполне оформившимся языком Crystal. По их словам, чем больше они им занимались — тем сильнее к нему привязывались.

Сегодня мы хотим поделиться с вами переводом их рассказа о сильных и слабых сторонах платформ Node и Crystal, и о том, почему в Duo всё больше серверных проектов переводится на Crystal.


Читать дальше →
Total votes 47: ↑39 and ↓8 +31
Comments 56

Удивительно полезный инструмент: lsof

Reading time 9 min
Views 122K
Я привык искать проблемы в коде или в системе, пользуясь логами или показателями мониторинга, которые выводятся на симпатичных панелях управления с простым и понятным интерфейсом. Однако, если по какой-то причине данные на панель управления не поступают, или логи какой-нибудь службы недоступны, отладка усложняется. Теперь подобных проблем немного, встречаются они редко, но они, всё же, случаются. Поэтому и в наше время весьма ценно знание инструментов, которые помогают понять, что не так с неким процессом на каком-нибудь компьютере.

image
Читать дальше →
Total votes 73: ↑69 and ↓4 +65
Comments 30

Путешествие за бугор и обратно: как не надо устраиваться работать за рубежом

Reading time 11 min
Views 216K

Тема трудовой эмиграции в IT-сообществе — одна из любимых. Кто не задумывался о том чтобы уехать туда где трава зеленее? Интернет кишит различными success story. Я же хочу показать, как вашу success story может испортить неудачный выбор места работы.


В этой статье хочу поделиться с вами своей историей неудачной эмиграции в Прагу и работы с неудачным работодателем, и помочь избежать совершения ошибок, которые совершил я. Немного о себе: меня зовут Алексей, я Java-разработчик, переехал в Санкт-Петербург из Новосибирского Академгородка.


image
Читать дальше →
Total votes 414: ↑403 and ↓11 +392
Comments 1266

Графическим дизайнерам для ума и души: 20 новых уроков

Reading time 5 min
Views 23K
Даже самые опытные и осведомленные дизайнеры никогда не перестают учиться, учебные пособия расскажут, как использовать новые технологии, функции, инструменты и методы. Возможно, ниже перечисленные техники смогут сэкономить ваше время и энергию, улучшить ваши навыки и способности. И помните: повторение — мать учения.


Total votes 12: ↑11 and ↓1 +10
Comments 6

Как писать нормальные тексты на английском, не будучи носителем языка

Reading time 10 min
Views 88K
Ксения Каланова, выпускница нашего курса по копирайтингу и маркетолог в MERA, написала колонку для блога Нетологии о том, как заставить текст звучать «по-английски», даже когда до уровня Advanced еще далеко.

Вся моя жизнь связана с английским языком: школьные олимпиады, подготовка к вступительным экзаменам в вуз, пять лет на переводческом факультете, лето в США и путешествия по миру. В студенческие годы я работала письменным переводчиком, а сразу после выпуска — устным.

С тех пор как я устроилась маркетологом в международную IT-компанию, ко мне все чаще обращаются с просьбами написать или отредактировать англоязычные тексты IT-тематики.

Если бы не опыт работы переводчиком, меня такие просьбы поставили бы в ступор. Ведь мой текст увидят иностранцы — клиенты компании, руководители!



В этой статье я поделюсь секретами, как заставить текст звучать «по-английски», если вы не носитель языка. Для этого расскажу о 5 основных ошибках, которые мешают написать нормальный англоязычный текст.
Читать дальше →
Total votes 115: ↑107 and ↓8 +99
Comments 63

Шпаргалка по Redis

Reading time 8 min
Views 357K
Про Redis (официальный сайт, материалы на Хабре) написано много, но мне до сего дня не хватало материала, который послужил бы шпаргалкой по его практическому использованию, а так же справочником по базовым теоретическим моментам. Постараюсь заполнить этот пробел в богатой базе знаний Хабра.

Я поставил перед собой цель показать возможности Redis с помощью примеров кода. После публикации приму любые предложения по улучшению материала.

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

Ключи


Redis — хранилище данных в формате «ключ-значение». Факты о ключах:
  • Ключи в Redis — бинарно-безопасные (binary safe) строки.
  • Слишком длинные ключи — плохая идея, не только из-за занимаемой памяти, но так же и в связи с увеличением времени поиска определенного ключа в множестве в связи с дорогостоящим сравнением.
  • Хорошая идея — придерживаться схемы при построении ключей: «object-type:id:field».


Типы данных Redis


  • Строки (strings). Базовый тип данных Redis. Строки в Redis бинарно-безопасны, могут использоваться так же как числа, ограничены размером 512 Мб.
  • Списки (lists). Классические списки строк, упорядоченные в порядке вставки, которая возможна как со стороны головы, так и со стороны хвоста списка. Максимальное количество элементов — 232 — 1.
  • Множества (sets). Множества строк в математическом понимании: не упорядочены, поддерживают операции вставки, проверки вхождения элемента, пересечения и разницы множеств. Максимальное количество элементов — 232 — 1.
  • Хеш-таблицы (hashes). Классические хеш-таблицы или ассоциативные массивы. Максимальное количество пар «ключ-значение» — 232 — 1.
  • Упорядоченные множества (sorted sets). Упорядоченное множество отличается от обычного тем, что его элементы упорядочены по особому параметру «score».

Про типы данных Redis есть отдельная хорошая статья: «Структуры данных, используемые в Redis».
Читать дальше →
Total votes 47: ↑43 and ↓4 +39
Comments 16

Chromebook для удаленной работы. Настраиваем VPN и RDP

Reading time 3 min
Views 21K
image

Привет! Удаленную работу часто можно описать как два технических требования от исполнителя: первое, доступ в интернет, и второе, ноутбук. А если у вас есть удаленный сервер, на котором вы работаете, то все, что вам нужно: тонкий клиент для доступа к нему. В этой статье я расскажу, как я выбирал и настраивал тонкий клиент для удаленной работы, и почему хромбук отлично справляется с этой задачей.
Читать дальше →
Total votes 13: ↑12 and ↓1 +11
Comments 17

Native Script. Один код для всех платформ

Reading time 4 min
Views 60K
image

Native script (NS) – это библиотека, позволяющая делать кросс-платформенные приложения, используя XML, CSS, JavaScript. Native script решает ту же задачу, что и уже всем известный phonegap (создание кросс-платформенных приложений), но подходы у них разные. Phonegap использует движок браузера, чтобы отобразить ваш UI (фактически вы получаете веб-страницу), Native script использует нативный рендеринг, использует элементы нативного UI. Следующее важное отличие: чтобы получить доступ к камере, gps и так далее в phonegap необходимо устанавливать плагины, в то время как NS дает доступ из коробки.
Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 23

Как я написал мобильное приложение на react-native

Reading time 7 min
Views 15K
Меня зовут Алексей Андросов, я уже много лет работаю в Яндексе фронтенд-разработчиком. Два года назад мне и моим партнерам пришла в голову идея создать мобильную социальную сеть Verb. Идея Verb в том, что пользователи могут делиться небольшими статусами — “вербами” — о том, чем они занимаются в данную минуту, простыми вещами, о которых хочется рассказать друзьям, но некуда об этом написать. И мы уже даже получили инвестиции, но сейчас не об этом. Сегодня я хочу рассказать о том, как и почему я написал мобильное приложение на react-native.
Читать дальше →
Total votes 23: ↑20 and ↓3 +17
Comments 6

Как написать максимально хреновый бэкенд для мобильного приложения

Reading time 6 min
Views 62K


Известно, что практически ни одно мобильное приложение не обходится без бэкенда.


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


Специально для таких случаев, я подготовил список вредных советов о том как угробить бэкенд вашего приложения.


Приятного чтения.

Читать дальше →
Total votes 64: ↑50 and ↓14 +36
Comments 117

Как работает yield

Reading time 6 min
Views 662K
На StackOverflow часто задают вопросы, подробно освещённые в документации. Ценность их в том, что на некоторые из них кто-нибудь даёт ответ, обладающий гораздо большей степенью ясности и наглядности, чем может себе позволить документация. Этот — один из них.

Вот исходный вопрос:
Как используется ключевое слово yield в Python? Что оно делает?

Например, я пытаюсь понять этот код (**):
def _get_child_candidates(self, distance, min_dist, max_dist):
    if self._leftchild and distance - max_dist < self._median:
        yield self._leftchild
    if self._rightchild and distance + max_dist >= self._median:
        yield self._rightchild

Вызывается он так:
result, candidates = list(), [self]
while candidates:
    node = candidates.pop()
    distance = node._get_dist(obj)
    if distance <= max_dist and distance >= min_dist:
        result.extend(node._values)
        candidates.extend(node._get_child_candidates(distance, min_dist, max_dist))
        return result


Что происходит при вызове метода _get_child_candidates? Возвращается список, какой-то элемент? Вызывается ли он снова? Когда последующие вызовы прекращаются?

** Код принадлежит Jochen Schulz (jrschulz), который написал отличную Python-библиотеку для метрических пространств. Вот ссылка на исходники: http://well-adjusted.de/~jrschulz/mspace/

Подробный и обстоятельный ответ
Total votes 141: ↑136 and ↓5 +131
Comments 41

Работа с сервлетами для чайников. GET / POST

Reading time 8 min
Views 98K


В прошлой статье Создание сервлетов для чайников. Пошаговое руководство я описал, как создать сервлеты и попытался объяснить, как это работает. В этой статье мы научим наши сервлеты работать с UI через HTTP-запросы GET и POST.

На самом деле, этих запросов намного больше, но для чистоты эксперимента мы разберём только два основных.

  • GET — обрабатывает адресную строку, которая получается при вызове сервлета. Например, site.com/example?action=test&id=10&admin=true
  • POST — обрабатывает загруженный контент (картинку, файл, строки, объектные данные), в общем, всё, что можно передать через HTTP

В Java-сервлете запросы POST и GET обрабатывают соответствующие методы doPost(); и doGet().
Читать дальше →
Total votes 9: ↑5 and ↓4 +1
Comments 6

У Mozilla есть план, как победить Chrome. Встречайте Firefox 57 и боевую лисичку в броне

Reading time 4 min
Views 86K
На июньской конференции разработчиков Mozilla All Hands 2017 на сцене не было привычной лисички (на самом деле firefox — это малая панда, просто её принято так называть) — неизменного талисмана Firefox в последние 14 лет. На открытии конференции старший вице-президент Mozilla по разработке Firefox Марк Майо (Mark Mayo) объяснил, что произошло. Дело серьёзное. Пришло время войны. Маленькая лисичка сейчас облачилась в бронекостюм по примеру Железного человека — и готова дать сдачи обидчику.

Уже год Mozilla работает над совершенно новой версией браузера, которая выйдет 14 ноября 2017 года под версией Firefox 57. Это не простое совпадение, что лисичку в бронекостюме зовут Mark 57. Именно на эту версию браузера Mozilla возлагает самые большие надежды, пишет Cnet. Компания Mozilla считает, что версия Firefox 57 станет именно той версией, которая заставит многих бывших пользователей вернуться обратно на Firefox.
Читать дальше →
Total votes 62: ↑55 and ↓7 +48
Comments 629

Пишем и собираем приложения для Android в linux консоли

Reading time 6 min
Views 35K

image


В данной статье я покажу как можно собрать apk файл в Ubuntu используя лишь
утилиты командной строки.


Обычно для создания приложений для Adroid используется Android Studio. Но для сборки небольших программ можно обойтись командной строкой. Например, когда ресурсы компьютера ограничены и ваше приложение очень простое.


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

Читать дальше →
Total votes 29: ↑27 and ↓2 +25
Comments 18

Laravel — экосистема, а не просто PHP-фреймворк

Reading time 12 min
Views 201K


Данная статья предназначена для начинающих веб-разработчиков, а также тех, кто хочет понять, для чего стоит изучить PHP-фреймворк Laravel и какую экосистему он нам предлагает. Статья написана на момент актуальности Laravel версии 5.4, в августе 2017 выйдет релиз Laravel 5.5, который предоставляет ещё больше возможностей.

Содержание:

Читать дальше →
Total votes 33: ↑29 and ↓4 +25
Comments 104

Что за болезнь: рак. Риски и мифы

Reading time 14 min
Views 57K
В первой статье о раке мы рассказали, что это за болезнь и как она развивается. После прочтения у многих возник вопрос, что влияет на развитие злокачественной опухоли. Сегодня эксперты проекта Solo биомедицинского холдинга Атлас расскажут о реальных и мифических факторах, которые повышают риск онкологических заболеваний.


Иллюстрации: Майкл Ковальски
Читать дальше →
Total votes 39: ↑38 and ↓1 +37
Comments 129

Топ инструментов разработки для PostgreSQL

Reading time 6 min
Views 188K

Конференция PG Day Russia растет и масштабируется: этим летом мы готовим для вас доклады и тренинги по всем наиболее популярным базам данных, а также по администрированию и хранению данных. в рамках подготовки мы запустили корпоративный блог, где планируем делиться ценной информацией о происходящем в мире баз данных. Первый пост посвящен инструментам разработки для PostgreSQL, его автор varanio будет рад ответить на ваши вопросы и комментарии!


Я поспрашивал различных людей, имеющих отношение к PostgreSQL, что они используют в реальной жизни для разработки приложений, использующих PG.


Это, конечно, не строго математическая выборка, но тем не менее получился некоторый список инструментов на слуху, которые достойны того, чтобы их "пощупать", что я и собираюсь сделать в этой статье.


Если вашего инструмента нет в списке, или у вас просто есть что сказать, добро пожаловать в комментарии.


Итак, вот неформальный топ и субъективное описание.

Читать дальше →
Total votes 22: ↑20 and ↓2 +18
Comments 73

Еще один способ поставить tails на флешку (и вернуть свои гигабайты)

Reading time 4 min
Views 34K
Добрый день, читатель!


TAILS — это замечательный live дистрибутив, которым можно проверить ноут перед покупкой и через который можно безопасно работать в сети и который не оставляет следом на машинке. Весит сие дело всего 1.3 Gb.
Читать дальше →
Total votes 21: ↑17 and ↓4 +13
Comments 20
1

Information

Rating
Does not participate
Registered
Activity