Смотритель: hubert

Самый красивый код, который вы когда-либо писали. Romantic edition.

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



Но один паренёк, пожелавший остаться неизвестным, рассказал вот такую историю:
В своем классе я — один из немногих, кто прилично знает программирование и любит кодить. Со мной учится одна девчонка, она просто потрясающая… Я серьезно на неё запал, и был просто вне себя от радости, когда попросила меня помочь разобраться с программированием. Недолго думая, я склепал для неё такую вот программку:
#include<stdio.h>
int main()
{
    int i=3;
    int arr[]={85,3,73};
    while(i--)
        printf("%c ",arr[i]);
    return 0;
}


Уже догадались что она выводит? Не буду томить (вдруг, вы не знаете Си), вот окно консоли:



Наконец-то я смог своим кодом выразить свои чувства!

А у вас есть образец вашего кода, который вы считаете красивым? В любом из возможных смыслов. Делитесь, будем рады увидеть его=).
  • ,

Java Magazine за сентябрь/октябрь: интернет вещей и множественное наследование в Java

Java Magazine сентябрь, октябрь
Всем, кто следит за миром Java и… читает по-английски, сообщаем: вышел новый выпуск журнала Java Magazine за сентябрь/октябрь. Его можно загрузить в формате PDF или не заморачиваться и читать online-версию. Единственное условие — нужно оформить бесплатную подписку на сайте.

Осенний Java Magazine 2016 года посвящен интернету вещей и гаджетам. Вы узнаете, как управлять CNC-роутером (это такое устройство для выпиливания разнообразных штуковин из дерева или пластика) с одноплатного компьютера Raspberry Pi и о том, каким образом на плате Intel Galileo Gen 2 (она Arduino-совместима) происходит взаимодействие сенсоров.

Также интересна статья о языке Fantom (слышали о таком?) и обзор книги «Java Performance Companion».

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

Эта тема вполне может быть интересной тем, кто дошел до 12 уровня JavaRush или выше.

30 минут кодинга: Дженнифер и её 180 сайтов

Программировать каждый день хотя бы по полчаса в день — такой совет дают всем начинающим (и не только) разработчикам их более опытные коллеги. Это непросто, но сформировавшаяся привычка дорогого стоит.

Мы на JavaRush солидарны с этими специалистами, поэтому у нас так много задач. А как делают другие?



Вот, например, Дженнифер Дивалт решила научится программировать и поставила себе цель: писать по маленькому сайту каждый день в течение 180 дней. При этом у девушки было гуманитарное образование и никакого опыта в подобных вещах. Тем не менее, каждый день Дженнифер шла к своей цели, ставя перед собой новые задачи. В качестве советчиков у неё были друзья и верный Stack Overflow.

Самый первый сайт оказался «домом» для всех остальных. Поначалу проекты были совсем простенькие и состояли только из HTML и CSS. Довольно быстро появились вкрапления Javascript, а через какое-то время девушка начала писать на Ruby on Rails. Среди её работ появились игры, калькулятор, часы, мессенджеры, рисовалки…
Она осуществила свою мечту, подойдя к процессу творчески. Возможно, маленькие проекты каждый день — это ваш путь?

Посмотреть, что получилось у Дженнифер: jenniferdewalt.com/index.html

The Game of Java: Java-конференция в Киеве 14-15 октября 2016 года

Осенний Киев на два дня станет центром притяжения Java-специалистов — 14-15 октября тут пройдет Java-конференция JavaDay 2016, которую организовывает украинское сообщество разработчиков Java User Group Ukraine.



JavaRush является информационным партнером данной конференции, поэтому мы решили рассказать, что интересного подготовили организаторы для активных участников Java-комьюнити и какие технологические тренды поставлены во главу мероприятия.

JavaDay шестой — как это будет


Прошлогодняя юбилейная 5-я конференция порадовала участников 5 треками с интересными сессиями от 40 докладчиков. В этом году мероприятие повторит успех JavaDay 2015,которая заняла второе место среди IT-мероприятий Украины. Конференция особенно мероприятие порадует тех, кто хочет получить как можно больше инсайтов.

Цель конференции — дать сообществу возможность эффективно поучиться и насыщенно пообщаться с коллегами. Конференц-центр “Парковый”, где будет проходить мероприятие, позволит разработчикам и спикерам с комфортом достичь обеих целей.

Те, кому хотя бы однажды посчастливилось побывать на JavaDay, прекрасно знают, что помимо возможности

• открыть для себя лучшие и новейшие методы в работе с Java
• пообщаться с ведущими международными и украинскими Java-звездами
• завести новые интересные и полезные знакомства
• стать частью Java-коммьюнити,

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

Например, в прошлом году вся серия ивентов была посвящена 20-летию Java и у всех участников JavaDay в Киеве была невероятная возможность задать вопрос лично Джеймсу Гослингу, который в онлайн режиме общался с участниками конференции.



Программа


Организаторы формируют интересную и насыщенную программу мероприятия. На данный момент (1 сентября) она сформирована на 98%.

Отличительной особенностью конференции в этом году, станет участие группы докладчиков от компании Pivotal, известной своим Spring Framework и экосистемой продуктов вокруг него. Мы постарались чтобы представители компании рассказали о наиболее популярных на сегодняшний день продуктах.

• Juergern Hoeller — автор Spring Framework, в своих докладах расскажет про новую версию Spring 4.3, а так же про те возможности который ожидаются в Spring 5, выход которого запланирован на 2017 год
• Stéphane Nicoll — один из основных разработчиков Spring Boot, расскажет о его возможностях, области применения и дальнейших планах по разработке
• Christoph Strobl — Spring Data Committer, поделится новыми возможностями Spring Data для создания REST-приложений, а так же его взаимодействия с Redis
• Alvaro Videla — Core Developer for RabbitMQ, выступит с докладом посвященным построению Distributed Systems, подходам и решениям, которые используются для построения Distributed Systems

Чтобы соблюсти баланс, так же будет ряд докладов посвященных Java EE. Очень надеемся, что к моменту проведения конференции Oracle поделится своими дальнейшими планами касательно судьбы данной платформы.

Reza Rahman — бывший евангелист компании Oracle по Java EE, а сейчас один из лидеров группы JavaEE Guardian, на встрече JUG UA (которая пройдет перед конференцией) в формате живого общения с аудиторией расскажет о планах и перспективах Java EE 8. А на самой конференции проведет мастер-класс по JMS 2, и вместе с Ivar Grimstad (Java Champion and JCP member) расскажут про планируемые спецификации по Java EE Security, HTTP 2, JMS 2.1, Java EE Microprofile для создания микросервисов.

Традиционно, какой же JavaDay обходится без Баруха Садогурского и Жени Борисова! Ждем от них новых докладов-битв, пазлеров и как обычно, массу позитива! Кроме докладов, Женя проведет мастер-класс по Apache Spark.

Организаторы очень рады видеть, что из года в год существенно растет количество отечественных докладчиков. Причем по результатам голосованию их доклады входят в пятерку лучших докладов конференции. Среди местных звезд Java разработки хотелось бы выделить:

• Николая Алименкова, организатора JEEConf и XPDays
• Тараса Матяшевского, основателя встреч Morning@Lohika
• Егора Бугаенко, чьи доклады просто не могут оставить слушателей равнодушными!

Тематика треков


Темы, которые будут освещать докладчики, будут максимально практичными и соответствующими современным задачам, которые стоят перед Java разработчиками:

  1. Core JVM platform and Java SE (Java 8)
  2. JVM languages and new programming paradigms
  3. Web development and Java Enterprise technologies
  4. Architecture & Cloud
  5. BigData & NoSQL
  6. Software engineering practices

В этом году организаторы постарались больше сосредоточиться на тематике Web development and Java Enterprise technologies.

Как попасть на мероприятие


Билеты на конферецию можно купить на сайте. Пока что доступны Early Bird билеты, количество которых ограничено и разлетается как птички поутру. Если у вас есть вопросы по поводу тикетинг системы и вашего билета, направляйте их на support@ticketforevent.com.

Партнеры


Конференция — традиционно некоммерческое мероприятие — в этом году поддерживается такими компаниями как EPAM (title partner), Globallogic, Luxoft, Levi9, Sigma, Microsoft (golden partners), Red Hat (silver partner) — и большой дружной компанией информационных партнеров.

Если вы внезапно осознали необходимость участия наравне с заявленными выше партнерами — ознакомьтесь с условиями и напишите организаторам, которые будут рады поддержать столь полезную для обоих участников инициативу!

Полезное


На новости и апдейты JavaDay 2016 можно подписаться на сайте конференции, в Facebook и на сайте Java User Group. Если у вас есть вопросы или предложения, организаторы будут рады их услышать.

В общем,

Embrace it! Java is coming!
  • ,

Вышла 10-я лекция Гарвардского курса CS50 на русском

Посмотреть лекцию можно здесь: javarush.ru/cs50.html

cs50 10 лекция
В шпионских (или любых других) боевиках, вы, наверное, замечали такую штуку: хакер сидит в темной комнате, весь такой загадочный, подсвеченный монитором своего компьютера и всякими цветными диодами непонятного происхождения. На мониторе — не менее загадочные буковки, обычно зелёные с курсором-нижнее-подчеркивание и малюсенькая карта, на которой где-то в дебрях спрятан интересующий спецслужбы объект. Приходит команда «увеличь этот участок изображения», дабы обнаружить, скажем, номер автомобиля, отражённый в чьем-нибудь глазу… И специалист бесконечно масштабирует картинку, пока отражение не станет ясным и четким…

Вам нравятся такие сцены? Если да, спешим вас огорчить: после 10 лекции Гарвардского курса по основам программирования CS50 вы уже не будете смотреть их прежними глазами, понимая всю их несуразицу и преувеличение. Впрочем, будущему программисту это необходимо сделать. Это как рано или поздно все узнают правду о Санта Клаусе. С другой стороны, если в мире будет все больше и больше грамотных с точки зрения IT людей, Голливуду придется повысить качество подобных сцен, не лепя случайные наборы терминов куда ни попадя.

А всё дело в том, что фотографии состоят из пикселей (или точек), и когда мы увеличиваем фотографию, рано или поздно мы дойдем до одного пикселя и как бы мы дальше ни увеличивали изображение, дополнительной глубины не появится, перед нами — конечное количество битов. «Это цифра, детка!».

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

Итого, из лекции вы узнаете:

  • Как кодируется изображение. Слово bitmap станет родным и понятным.
  • Вы узнаете, как понять (с точки зрения компьютера), что перед вами именно JPEG-файл и какую роль в этом играет комбинация битов 244 216 255.
  • Вспомните (или изучите) 16-ричные числа. Запись 0хff станет столь же очевидной, как 255 а десятичной системе.
  • Что такое struct в Си? Собственные типы данных в Си.
  • Сравнение содержимого строк в Си (strcmp) и другие средства работы со строками.
  • Адресная арифметика.
  • char* t = malloc((strlen(s) + 1) * sizeof(char)) — как вам такая строчка кода? После лекции вы будете понимать, что к чему, и сами сможете писать нечто подобное =)
  • Немного синтаксического сахара =)
  • Как писать swap с указателями и зачем

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

True Java Conference for True Java Developers

18-19 ноября в Минске состоится очередной JET!

Настоящий двухдневный полет в мир Java!

О конференции:
— 2 полноценных дня выступлений
— по 6 часовых сессий каждый день
— профессиональная Java-тусовка
— конкурсы, приставки, общение, пиво и вечеринка
В общем, все, что наполнит эти дни не только хардкор знаниями, но и весельем.

Докладчики — активные участники open source сообщества, которые не просто являются авторами различных библиотек и фреймворков, но и своими же решениями меняют подходы в разработке.

Среди них
— Jean-Francois Arcand (CTO и основатель Yulplay)
— Jeremie Papillon (разработчик в Yulplay)
— Philipp Krenn (database эксперт и cloud computing тренер)
— Тагир Валяев (разработчик JetBrains, автор StreamEx и анализатора байткода Java HuntBugs)
— Рустам Мехмандаров (лидер Norwegian JUG и организатор JavaZone)
— Андрусь Адамчик (основатель ObjectStyle и участник Apache Foundation)
— Tomasz Nurkievich (JVM эксперт и автор книги RxJava)
— Volker Simonis (разработчик в SAP и член JCP Executive Committee)

Кроме того, на конференции будут организованы стенды различных open source проектов, с разработчиками которых можно будет пообщаться, а ещё лучше присоединиться к проекту.

Больше информации jetconf.by/

#jetconf True Conference for True Java Developers!

Ночные кошмары программистов

На сайте Quora кто-то когда-то задал вопрос, чего на самом деле боятся программисты. Вот сборник их ответов. Дополняйте=).

• Ваш код (или баг в нем) случайно кого-то убил или искалечил;
• Internet Explorer (если вы — веб-дизайнер);
• Требования изменились. Опять!
• конфликт слияния (merge conflict) на GitHub
• Случайно набрал rm -rf * не в той директории. Это конец, братишка… :(
• Stack Overflow упал!
• Вы зашли на Stack Overflow и увидели чей-то пост с нужным вопросом. Пост опубликован год назад, а ответа так и нет…
• Вы достигли предела вопросов на Stack Overflow;
• Ошибка возникает только в релизе и не может быть воспроизведена локально;
• Вероятность бага низкая, но не настолько низкая, чтобы ею пренебречь;
• Причина ошибки включает в себя нарушение последовательности доступа (race condition), которое происходит только под нагрузкой.
• Причина бага неясна.
• Вы не написали код, содержащий ошибку, но ответственны за её исправление. А человек, который писал этот код, уже не с нами…
• Проблема, которая стала причиной бага, находится в библиотеке, надежной на 99.9%, и это последнее место, где вы будете искать её.
• Баг хардварный, но все считают его софтварным.
• «Было много смельчаков, пытавшихся отладить это в течение многих лет. Но никому не удалось это сделать»
• Баг является логической ошибкой, проявляющейся только во время выполнения после длительного периода.
• Отладка требует специальных знаний в области, о которой вы ничего не знаете.
• У вас есть жесткие временные рамки для исправления бага.
• Кнопка «;» перестала работать.
• Глядя на собственный неоткомментированный код вашего главного проекта спустя год после его написания, думать: «Как я это сделал?» and «Это точно мой код?». Чувство такое, что потерялся в собственном доме.
• Библиотека без документации.
• = instead of ==
• Чрезмерная самоуверенность. Недостаток подготовки. Недооценка сложности. «Мой код работает, и я не знаю, почему»
• Слишком много общения: митинги, митинги, митинги… порой это смертельно для работы самой работы.
• Необходимость длительного ожидания уточнений, если клиент живет в другом часовом поясе.
• Отсутствие всякой документации — лучше, чем наличие бесполезной. No documentation or much worse, useless documentation. (например, в ней описаны только очевидные вещи или вообще какой-то «левак»)
• Программа перестает отвечать на запросы из-за ошибки в какой-либо версии ОС, и к этой ошибке у вас нет и не будет доступа.
• Босс пытается тестировать приложение со старой версией.
• Клиент делает что-то невообразимое, и ваша программа останавливается. Вы не знаете, что он сделал, а менеджер говорить исправить «это» до завтра.

• Ваши варианты?

JavaDay Kyiv - October 14 -15, 2016

14-15 октября приглашаем всех Java-инженеров на заключительную в серии ивентов этого года конференцию JavaDay Kyiv 2016.

Конференция JavaDay Ukraine проходит в трех городах Украины вот уже второй год подряд и 6 лет в целом. Традиционно, организаторы показали качественно новый и высокий уровень организации и докладов еще со старта во Львове.

В Киеве нас ожидают 5 потоков с более чем 50 докладами. На привычной уже и всеми любимой площадке КВЦ Парковый организаторы планируют собрать 1000+ гостей.

Среди спикеров как всегда звезды и признанные международные эксперты в мире Java!

Juergen Hoeller, Principal Engineer Сергей Медведь Inc.; Mikalai Alimenkou, Senior Delivery Manager @EPAM; Stéphane Nicoll, Senior Software Engineer Сергей Медведь, Inc.; Yann Cébron, Software Developer Inna Hot; Edson Yanaga, irector of Developer Experience RED Hat; Maurice Naftalin, Senior Software Engineer @Incept5; Reza Rahman, Senior Manager/Architect @CapTech Ventures, Inc; Christoph Strobl, Principal Software Engineer Сергей Медведь, Inc.; Taras Matyashovskyy, Staff Engineer Тести и многие-многие другие!

Ознакомиться со всеми спикерами и приобрести билеты можно на сайте: javaday.org.ua/kyiv/

Стоит поторопится, пока еще доступны Early Bird билеты!

Те, кому хотя бы однажды посчастливилось побывать на JavaDay, прекрасно знают, что помимо возможности:
• Открыть для себя лучшие и новейшие методы в работе с Java
• Пообщаться с ведущими международными и украинскими Java-звездами
• Завести новые интересные и полезные знакомства
• Стать частью Java-коммьюнити
всех участников конференции ожидает масса неожиданных и приятных сюрпризов от партнеров ивента, незабываемая атмосфера и обязательно нестандартный подход к организации.

Например, в прошлом году вся серия ивентов была посвящена 20-летию Java и у всех участников JavaDay в Киеве была невероятная возможность задать вопрос лично Джеймсу Гослингу, который в онлайн режиме общался с участниками конференции.

Интересно чем удивят организаторы в этот раз? Без всяких сомнений JavaDay в Киеве станет ярким завершающим событием в этом году 

Контакты:
contact@javaday.org.ua
+38 (098) 264 0211;
+38 (095) 090 8909.

JavaDay Kharkiv 2016

JavaDay Kharkiv 2016

17 сентября, приглашаем всех на конференцию JavaDay Kharkiv 2016 – самый масштабный ивент в Харькове для Java-инженеров. За один день мероприятия участники смогут услышать более 14 докладов от ведущих украинских и международных экспертов.



Конференции JavaDay проводятся уже шестой год подряд в Украине и второй год в Харькове. В этом году, в июне, конференция состоялась во Львове, где участники услышали о новых трендах в Java-разработке и получили положительные эмоции.

Среди докладчиков конференции в Харькове такие признанные эксперты в мире Java, как Николай Алименков, Nicolas Frankel, Олег Цал-Цалко, Борис Трофимов, Antons Kranga и многие другие.

Ознакомиться с полным списком спикеров и темами докладов можно на сайте:

Ознакомиться с программой javaday.org.ua/kharkiv/#schedule

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

Почему вы должны посетить конференцию?
1. Откроете для себя лучшие и новейшие методы в работе с Java
2. Встретить ведущих международных и украинских экспертов по разработке на Java
3. Конференция поможет находить новые способы решения проблем в разработке программного обеспечения
4. Пообщаться с единомышленниками

Сайт конференции javaday.org.ua/kharkiv/

Специальный код, дающий 5% скидку на билеты JavaDay в Харькове JavaRush5%

Java-конференция Joker 2016

14-15 октября в Петербурге уже в четвертый раз состоится Java-конференция Joker 2016, которая соберет более 1000 разработчиков уровня Senior/Middle. Конференция ориентирована на участников, которые хорошо разбираются в Java.



Спикеры конференции – ведущие мировые эксперты из США, Европы и России, такие как Алексей Шипилев, Барух Садогурский, Евгений Борисов и многие другие. Полный список спикеров и докладов вы найдете на сайте конференции: jokerconf.com/

Кроме того, в рамках конференции пройдет специальная программа для начинающих разработчиков и студентов, изучающих Java. Подробности о Joker Student Edition: jokerconf.com/se.html
  • ,

Вышла восьмая лекция гарвардского курса CS50 на русском

Посмотреть лекцию можно здесь: javarush.ru/cs50.html

cs50 на русском 8 лекций

Восьмая лекция Гарвардского курса по основам программирования CS50 пройдет в необычной обстановке: Дэвид Малан окажется в окружении зелёных стен библиотеки Вайднера. И пускай они выглядят не так эффектно, как полюбившийся студентам театр Сандерса (та самая огромная торжественная аудитория, в которой обычно проходят занятия), это никак не повлияло на увлекательность лекции! В этот раз мы:

  • Узнаем, может ли рекурсия помочь нам в поисках Майка Смита. И вообще, узнаем, что это за загадочный инструмент такой — рекурсия — и как её применять.
  • Разберемся, с понятием сортировки слиянием, и поймем, как можно её реализовать с помощью рекурсии. Снова разделяем и властвуем, уже практически по привычке.
  • Станем на шаг ближе к пониманию загадочного компилятора Clang и его работе. Продолжим разбираться с тем, что находится «под капотом» программы и оценим путь от исходного кода через ассемблерный к объектному.
  • Столкнемся с такими вот знаками: & | ^ ~. Это— не «птичий язык», а побитовые операторы, они позволяют добраться до отдельных битов данных. Для расшифровки каждого из них Дэвид воспользуется весьма необычным инструментом — доской и маркерами! Даже такое «ретро» изредка проскакивает на CS50 =).
  • А еще Дэвид приоткроет завесу тайны: в практическом задании вам предстоит вспомнить детство и поиграть в «пятнашки». Только в этот раз они будут написаны на Си.
  • Наконец, вы увидите милую беседу Эрика Шмидта из Google и одного бывшего сенатора с каким-то знакомым лицом по имени Барак. Эрик попросил Барака предложить самый эффективный способ отсортировать миллион 32-битных целых чисел. Ответ нынешнего президента США вы узнаете из лекции.
  • ,

Вышла седьмая лекция гарвардского курса CS50 на русском

Посмотреть лекцию можно здесь: javarush.ru/cs50.html

7 лекция cs50 на русском

Помните разорванный телефонный справочник из самой первой лекции CS50? В седьмой лекции он возвращается! Возвращается, чтобы сделать фразу «эффективность алгоритмов» не пустым звуком, а пояснить на примере. Все программисты думают о скорости работы программы и о том, сколько памяти она при этом «съест». На учебных задачках это не так очевидно, но когда мы работаем с большими массивами данных (как почти везде в «Энтерпрайзе»), эти вопросы становятся первоочередными.

Представьте себе, что данные в телефонном справочнике не отсортированы по алфавиту. Представляете, сколько времени у нас бы ушло на то, чтобы его там найти? С учётом того, что в телефонном справочнике нет человека с таким именем, пришлось бы перебирать все строчки подряд — и всё впустую! Но есть выход: данные всегда можно отсортировать.

И в седьмой лекции Дэвид Малан расскажет об известных алгоритмах сортировки — пузырьковой, вставки и выбора. Эффективны ли они? Подсказка: не слишком, в чем это проявляется — узнаете из лекции. Но почему они в таком случае знамениты и зачем их изучать? Дело в том, что они довольно просты в реализации, а на их основе можно создавать уже более продвинутые алгоритмы сортировки.

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