Как стать автором
Обновить
1
0

Пользователь

Отправить сообщение

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

Время на прочтение3 мин
Количество просмотров69K
image

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

Просто о D3.js

Время на прочтение6 мин
Количество просмотров84K


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

Читать дальше →
Всего голосов 34: ↑34 и ↓0+34
Комментарии21

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

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

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


Читать дальше →
Всего голосов 47: ↑39 и ↓8+31
Комментарии56

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

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

image
Читать дальше →
Всего голосов 73: ↑69 и ↓4+65
Комментарии30

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

Время на прочтение11 мин
Количество просмотров217K

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


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


image
Читать дальше →
Всего голосов 414: ↑403 и ↓11+392
Комментарии1266

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

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


Всего голосов 12: ↑11 и ↓1+10
Комментарии6

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

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

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

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

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



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

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

Время на прочтение8 мин
Количество просмотров373K
Про 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».
Читать дальше →
Всего голосов 47: ↑43 и ↓4+39
Комментарии16

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

Время на прочтение3 мин
Количество просмотров21K
image

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

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

Время на прочтение4 мин
Количество просмотров60K
image

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

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

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

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

Время на прочтение6 мин
Количество просмотров62K


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


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


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


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

Читать дальше →
Всего голосов 64: ↑50 и ↓14+36
Комментарии117

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

Время на прочтение6 мин
Количество просмотров683K
На 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/

Подробный и обстоятельный ответ
Всего голосов 141: ↑136 и ↓5+131
Комментарии41

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

Время на прочтение8 мин
Количество просмотров99K


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

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

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

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

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

Время на прочтение4 мин
Количество просмотров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.
Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Комментарии629

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

Время на прочтение6 мин
Количество просмотров36K

image


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


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


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

Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии18

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

Время на прочтение12 мин
Количество просмотров202K


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

Содержание:

Читать дальше →
Всего голосов 33: ↑29 и ↓4+25
Комментарии104

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

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


Иллюстрации: Майкл Ковальски
Читать дальше →
Всего голосов 39: ↑38 и ↓1+37
Комментарии129

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

Время на прочтение6 мин
Количество просмотров194K

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


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


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


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


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

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии73

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

Время на прочтение4 мин
Количество просмотров34K
Добрый день, читатель!


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

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность