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

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

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

Поиграем в книжки — что такое геймбуки и какие из них стоит попробовать

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


Учить английский по играм и книгам — приятно и довольно эффективно. А если игра и книга объединены в одно мобильное приложение — еще и удобно. Так сложилось, что на протяжении последнего года я неспешно знакомился с жанром мобильных «геймбуков»; по итогам ознакомления готов признать, что это интересная, самобытная и не слишком известная широкой публике ветвь не то игр, не то литературы. В этой экспериментальной для Skyeng статье я тряхну «игрожуровой» стариной, сделав обзор наиболее интересных представителей жанра и их издателей.

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

Для тех, кто познаёт ушами: подкасты для разработчиков

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


Кто сказал, что разработчики могут учиться новому только через книги, видео и анализ чужого кода? Ведь у нас и другие каналы получения информации из окружающего мира. Конечно, речь не о том, чтобы попробовать знания на вкус, пощупать их или понюхать. А вот послушать — самое оно. Мы собрали для вас коллекцию действующих русскоязычных подкастов для разработчиков. Хороший способ дать глазам отдых или занять себя в пробках.
Читать дальше →
Всего голосов 83: ↑80 и ↓3+77
Комментарии57

Шесть бесплатных автоматизированных платформ для изучения программирования

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

Привет, сообщество! Мы в Хекслете составили список из пяти бесплатных автоматизированных онлайн-платформ для новичков.


На русском:


HTML Academy
«Академия» учит верстать сайты. Основной контент в формате подписки (390 рублей в месяц) и интенсивов (от 12500 рублей), но есть несколько бесплатных автоматизированных курсов по основам HTML, CSS и JavaScript.


В HTML Academy не столько задания для прокачки в программировании, сколько для знакомства с основами веб-разработки. Но это идеальный формат для тех, кто никогда не писал код и хочет попробовать. Большое количество веб-разработчиков начинало путь именно здесь.


Code Basics
Это новый бесплатный сервис от Хекслета. Его основная идея — через решение простых заданий прямо в браузере погружать новичков в основы программирования. Сейчас есть уроки по PHP, JavaScript и Python, ближайшее время появятся — новые. Платформа подойдет лучше всего для изучения основ синтаксиса, и меньше — для прокачки алгоритмов.


Обучение построено вокруг чередования небольших порций теории (3-4 абзаца) и закрепления практики в тренажере. У каждого практического задания есть решение учителя, которое можно сравнить со своим после успешного прохождения и раздел для обсуждения задания.

Читать дальше →
Всего голосов 45: ↑44 и ↓1+43
Комментарии52

Песочница и шпаргалка по изучению Python

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

Изучать Python3 я начал с документации на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично легче запоминаются конструкции языка, если я их набрал несколько раз вручную. Python консоль для этого подходит отлично, но хотелось так же иметь своего рода шпаргалку, к которой можно было бы вернуться при написании программ в дальнейшем, если, например, возникнет вопрос, как в Python-е написать цикл for и т.п. И последней каплей стало желание автоматической проверки стиля написания кода в соответствии с существующими стандартами. Читать и вникать в них было лень, поэтому хотелось чтобы проверка кода была автоматической и подсказывала какие ошибки я делаю и как их исправить.


В итоге все свои эксперименты я вылил на GitHub.


Читать дальше →
Всего голосов 49: ↑48 и ↓1+47
Комментарии20

Вечный фотоархив для дома

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

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


image


Теория


Ресурс работы SSD накопителя теоретически не ограничен, если не превышать количество циклов перезаписи в ячейку.


Задача


Сделать систему хранения и просмотра домашнего фотоархива с любого устройства в доме,
и убрать подальше на ближайшие 10 или 20 лет. При этом иметь возможность залить и посмотреть фотки с любого устройства подключенного к internet не использую публичные сервисы хранения и не устанавливая дополнительного клиентского ПО.


Выбор железок дело субъективное, но для себя сформулировал требование к малому формфактору. Кроме того все что скрыто от глаз в квартире, как правило лежит в пожароопасном месте, по этому хотелось питание в по USB, и минимум проводов.

Читать дальше →
Всего голосов 39: ↑24 и ↓15+9
Комментарии95

Java и Project Reactor

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


Всем привет! Меня зовут Лёха, и я работаю бэкенд-разработчиком в FunCorp. Сегодня мы поговорим про реактивное программирование, библиотеку Reactor и немного про веб.


Реактивное программирование часто «подвергается упоминанию», но если вы (как и автор статьи) всё ещё не знаете, что это такое — устраивайтесь поудобнее, попробуем разобраться вместе.

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

Современный CSS для динозавров

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

— Двигать пиксели в CSS и так было трудно! А теперь мне говорят, насколько круто использовать несемантические названия классов, встроенные стили в HTML и даже писать стили CSS на JavaScript!
[Вставь тут гифку из «Гриффинов»] — Ха!
Иллюстрации из Dinosaur Comics Райана Норта


Как ни странно, CSS считается одновременно одним из самых простых и одним из самых сложных языков для веб-разработчика. Определённо он достаточно прост в начале — вы определяете свойства стиля, значения для конкретных элементов и… это практически всё, что нужно знать! Однако в больших проектах ситуация становится довольно запутанной и сложной, чтобы организовать CSS каким-то осмысленным образом. Изменение любой строчки CSS для стилизации элемента на одной странице часто ведёт к непредвиденным последствиям для элементов на других страницах.

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

Цель этой статьи — показать исторический контекст, как развивались техники и инструменты CSS до их нынешнего состояния в 2018 году. Поняв эту историю будет легче понять каждый подход и как с выгодой его использовать. Итак, начнём!
Читать дальше →
Всего голосов 43: ↑39 и ↓4+35
Комментарии41

Микросервисная архитектура, Spring Cloud и Docker

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

Привет, Хабр. В этой статье я кратко расскажу о деталях реализации микросервисной архитектуры с использованием инструментов, которые предоставляет Spring Cloud на примере простого концепт-пруф приложения.



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

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

Первое приложение на Spring Boot + ReactJS

Время на прочтение7 мин
Количество просмотров77K
В жизни каждого Java разработчика может наступить момент, когда ничего не остаётся, как использовать в своём приложении ReactJS. Если, конечно, не AngularJS. Вы долго сопротивлялись, но этот момент настал и надо что-то делать. Вы слышали, что есть Node.JS, что он умеет быть web-сервером, но это уже через чур. У вас будет кошерный Spring Boot. К сожалению, поиск в гугл способен очень запутать. Много разных гайдов, все оперируют разными версиями реакта и сопутствующих средств. Данный гайд описывает процесс создания простейшего Spring Boot + ReactJS приложения, простой и приятный.
Читать дальше →
Всего голосов 16: ↑13 и ↓3+10
Комментарии11

Дюжина приемов в Linux, которые действительно сэкономят уйму времени

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


Эта статья также есть на английском.

Однажды вечером, перечитывая Джеффри Фридла, я осознал, что даже несмотря на всем доступную документацию, существует множество приемов заточенных под себя. Все люди слишком разные. И приемы, которые очевидны для одних, могут быть неочевидны для других и выглядеть какой-то магией для третьих. Кстати, несколько подобных моментов я уже описывал здесь.

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

Под катом — дюжина приемов в командной строке — из личного опыта.
Читать дальше →
Всего голосов 128: ↑122 и ↓6+116
Комментарии169

Переписываем домашний проект на микросервисы (Java, Spring Boot, Gradle)

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

Введение


Image


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


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


Всё это было реализовано в виде прототипа — были пользователи, один урок и одна задача для него, возможность отправить код, который компилировался и исполнялся. Кое-какой фронтенд, но в статье о нём речи не будет. Технологии — Spring Boot, Spring Data, Gradle.


В статье будет реализован такой же прототип, но уже на микросервисах. Реализация будет наиболее простым путём (точнее наиболее простым, из известных мне). Реализация будет доступна любому, кто знаком со Spring.

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

Элегантный Builder на Java

Время на прочтение7 мин
Количество просмотров146K
Наверняка большинство сколько-нибудь опытных программистов знакомы с паттерном Builder. Он позволяет сделать инициализацию структур данных более наглядной, гибкой при этом сохраняя такое полезное их свойство как неизменяемость (immutability). Вот классический пример с первой страницы выдачи гугла на запрос «java builder pattern example». При всех своих преимуществах, самый главный недостаток данной реализации паттерна — в два раза больше кода, по сравнению с обычным плоским бином. Если генерация этого дополнительного кода не проблема для любой популярной IDE, то редактировать такой класс становится достаточно утомительно и читабельность страдает в любом случае.
Что же делать?
Всего голосов 31: ↑21 и ↓10+11
Комментарии86

Защищаем сайт с помощью ZIP-бомб

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

Старые методы по-прежнему работают


[Обновление] Теперь я в каком-то списке спецслужб, потому что написал статью про некий вид «бомбы», так?

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

Когда я в возрасте 13 лет впервые захостил свою маленькую Linux-коробочку с доступом по SSH, я смотрел логи и каждый день видел IP-адреса (в основном, из Китая и России), которые пытались подключиться к моей сладенькой маленькой коробочке (которая на самом деле была старым ноутом ThinkPad T21 со сломанным дисплеем, жужжавшим под кроватью). Я сообщал эти IP их провайдерам.

На самом деле если у вас Linux-сервер с открытым SSH, то можете сами посмотреть, сколько попыток подключений происходит ежедневно:

grep 'authentication failures' /var/log/auth.log
Читать дальше →
Всего голосов 157: ↑155 и ↓2+153
Комментарии184

Доставка миллиардов сообщений строго один раз

Время на прочтение14 мин
Количество просмотров21K
Единственное требование ко всем системам передачи данных состоит в том, что нельзя потерять данные. Данные обычно могут поступить с опозданием или их можно запросить заново, но их никогда нельзя терять.

Чтобы удовлетворить этому требованию, большинство распределённых систем гарантирует по крайней мере однократную доставку. Техники обеспечения «по крайней мере однократной доставки» обычно сводятся к «повторам, повторам и повторам». Вы никогда не считаете сообщение доставленным, пока не получите чёткое подтверждение от клиента.

Но как пользователю по крайней мере однократная доставка — это не совсем то, что я хочу. Я хочу, чтобы сообщения доставлялись один раз. И только один раз.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии16

ESP32 и Ардуино

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

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

Работает ли это вообще? Что там с поддержкой этих модулей в Arduino IDE? Стоит ли платить больше или лучше ограничиться ставшим уже привычным ESP8266? Мы постараемся вместе ответить на все эти вопросы, а в конце статьи я дам ссылку на реальное воплощение работы ESP32 с Ардуино — дистрибутив бесплатной версии Arduino Mega Server для платформы ESP32.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии82

Bash-скрипты: начало

Время на прочтение11 мин
Количество просмотров1.8M
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит

Сегодня поговорим о bash-скриптах. Это — сценарии командной строки, написанные для оболочки bash. Существуют и другие оболочки, например — zsh, tcsh, ksh, но мы сосредоточимся на bash. Этот материал предназначен для всех желающих, единственное условие — умение работать в командной строке Linux.


Читать дальше →
Всего голосов 69: ↑61 и ↓8+53
Комментарии123

Подборка: 50+ материалов для понимания фондового рынка

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


Торговля на бирже — источник дохода для многих фондов и онлайн-трейдеров. Однако начать зарабатывать на рынке ценных бумаг не так-то просто, ведь не каждый начинающий трейдер или неопытный инвестор сможет самостоятельно разобраться в его сложной структуре (к чему это приводит мы писали здесь). Мы предлагаем вашему вниманию 53 полезных материалов о торговых и финансовых инструментах, биржах и их сленге, которые сделают особенности фондового рынка более понятными для новичка.
Читать дальше →
Всего голосов 18: ↑12 и ↓6+6
Комментарии7

Искусство командной строки

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


Вот уже как неделю английская версия the art of command line висит в секции trending на Github. Для себя я нашел этот материал невероятно полезным и решил помочь сообществу его переводом на русский язык. В переводе наверняка есть несколько недоработок, поэтому милости прошу слать пулл-реквесты мне сюда или автору оригинальной работы Joshua Levy вот сюда. (Если PR отправите мне, то я после того, как пересмотрю изменения отправлю их в мастер-бранч Джоша). Отдельное спасибо jtraub за помощь и исправление опечаток.

Enjoy!
Всего голосов 127: ↑122 и ↓5+117
Комментарии143

Создаём парсер для ini-файлов. Теория

Время на прочтение3 мин
Количество просмотров30K
Эта статья задумывалась как наглядное сравнение двух схожих библиотек для создания парсеров: Boost Spirit для C++ и Parsec для Haskell. Потом я решил, что лучше разбить статью на 3 части. В первой части я расскажу как написать контекстно-свободную грамматику для описания содержимого ini-файла.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии25

Java logging. Hello World

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

Вступление


Думаю, ни для кого не секрет, что такое логгеры и для чего они нужны. За время существования java было создано немало фреймворков логгирования. Среди самых известных можно выделить:

  • JUL — java.util.logging
  • log4j
  • JCL — jakarta commons logging
  • Logback
  • SLF4J — simple logging facade for java

В данной статье будет рассмотрен каждый из указанных выше фреймворков на уровне «hello world». Будут приведены простые примеры использования основного функционала и конфигурирования. Статья не преследует цель сравнения логгеров между собой и выявление лучшего из них, эту возможность автор оставляет за вами, уважаемые читатели. В конце статьи будут приведены источники, где можно получить более детальную информацию по каждому фреймворку. Также перед прочтением данной статьи рекомендую ознакомиться с публикацией «Java Logging: история кошмара», где описана история развития систем логгирования в Java.
Читать дальше →
Всего голосов 24: ↑18 и ↓6+12
Комментарии14

Информация

В рейтинге
5 389-й
Зарегистрирован
Активность