Search
Write a publication
Pull to refresh
20
0

Уже не безработный ;)

Send message

FizzBuzz, или почему программисты не умеют программировать

Reading time4 min
Views296K
[Автор этой статьи — Джеф Этвуд (Jeff Atwood), один из основателей stackoverflow.com. Сама же статья, несмотря на довольно приличный возраст (она написана в 2007 году) до сих пор популярна, а введенный в ней термин «FizzBuzz question» стал общеупотребительным. Оригинал можно найти здесь.]

Я весьма скептически отнесся к следующему наблюдению Реджинальда Брейтвайта (Reginald Braithwaite):

«Меня немного удручает тот факт, что 199 из 200 соискателей программистских вакансий не умеют программировать. Повторю: они не умеют писать код. Вообще.»

Читать дальше →

Быстрая разработка CRUD на Java: дауншифтинг с «1С: Предприятие»

Reading time8 min
Views26K
В связи с последними событиями на мировой арене и понижением курса национальной валюты, для программистов на «1С: Предприятие» наступают непростые времена. Многих увольняют, одновременно усиливается конкуренция со стороны новичков, которых на рынке появилось довольно много — на что не пожалуешься, так как, работая преподавателем в учебном центре при МГТУ им. Баумана, я и сам приложил к этому руку, выдавая свидетельства щедрой рукой.

Вместе с тем, открываются перспективы по освоению других языков, так как работа на зарубежного заказчика внезапно вновь стала выгодной. Также возрос интерес к открытому программному обеспечению на всех уровнях технологического стека, а больше всего, к “импортозамещающим” СУБД типа PostgreSQL, MySQL.

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

Рассказать хочу на примере 2 моих OpenSource проектов, выкладываемых на GitHub:

№1. Реализует базовую функциональность быстрой разработки, доступную в 1С.
№2. Реализует механизм формирования отчетов с пользовательскими настройками типа “сводная таблица”, упрощенный аналог СКД (системы компоновки данных в 1С).

Для начала, по первому проекту.
Читать дальше →

Эволюция создания веб-приложений на Java

Reading time18 min
Views30K
История развития построения веб-приложений на языке программирования Java с примерами их использования на временном промежутке от появления спецификации сервлетов до сегодняшнего дня.


Читать дальше →

Как я пытался понять смысл метода finalize

Reading time3 min
Views106K
Недавно меня пригласили в одну компанию на собеседование на должность Java-программиста. На собеседовании зашла речь о работе метода finalize. Я имел лишь поверхностное представление о работе этого метода и не смог дать достойного его описания интервьюверам. Поэтому после собеседования я должен был провести работу над ошибками и во всем разобраться.
Читать дальше →

Выбираем бесплатный сервер в облаке для тестовых целей, домашних проектов и т.д

Reading time7 min
Views383K
Всегда хотелось познакомиться с облачными сервисами, но на моих работах они либо не использовались, либо не в моём отделе. Платить свои деньги не очень хотелось за такое знакомство, да и всё это казалось довольно сложным. Куча разных тарифов, что-то бесплатно, что-то платно. Но на самом деле каждый может разобраться с этим и самое главное легко. Настолько легко, что вы просто обязаны получить свой собственный бесплатный облачный сервер прямо сейчас. Осталось только выбрать какой.

Статья будет полезна тем, кто ещё не пользовался облачными серверами.


Читать дальше →

REST API на Java без фреймворков

Reading time9 min
Views77K
Перевод статьи подготовлен специально для студентов курса «Разработчик Java».




В экосистеме Java есть много фреймворков и библиотек. Хотя и не так много, как в JavaScript, но они и не устаревают так быстро. Тем не менее, это заставило меня задуматься о том, что мы уже забыли, как писать приложения без фреймворков.

Вы можете сказать, что Spring — это стандарт и зачем изобретать велосипед? А Spark — это хороший удобный REST-фреймворк. Или Light-rest-4jis. И я скажу, что вы, конечно, правы.

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

Сообщество open source очень активное, и есть большая вероятность, что ошибки в фреймворке будут быстро исправлены. Но все же, я хотел бы призвать вас подумать, действительно ли вам нужен фреймворк. Если у вас небольшой сервис или консольное приложение, возможно, вы сможете обойтись без него.
Читать дальше →

Интернет убыточных вещей

Reading time8 min
Views59K
Зовите детишек! Сейчас дядя Андрей расскажет рождественскую страшилку об NTP (Network Time Protocol).

Почти два года назад, в понедельник 16 января 2017 года, в нашу систему баг-репортов BitFolk поступил интересный тикет от постороннего лица. Отправитель представился как ведущий инженер-программист компании NetThings UK Ltd.

Тема: запрос NTP на IP 85.119.80.232

Привет,

Это может показаться странным, но мне нужно настроить сервер NTP по IP-адресу 85.119.80.232.

Что такого особенного в адресе 85.119.80.232? Это IP-адрес одного из NTP-серверов для обслуживания наших клиентов. За несколько недель до этого тикета сервер также был частью проекта NTP Pool.

Здесь важное слово «был». В конце декабря 2016 года я вывел NTP-серверы BitFolk из общественного пула и заблокировал их для посторонних.
Читать дальше →

Попытка использовать Raspberry Pi 4 в качестве десктопа. Часть 1, Raspbian

Reading time5 min
Views98K
Привет, Хабр.

С момента появления Raspberry Pi 4 стало значительно больше желающих использовать этот микрокомпьютер в качестве основного ПК. Вычислительная мощность Pi4 стала уже весьма неплохой, да и полноценный Linux «на борту» звучит многообещающе. Меня давно интересовала возможность использования портативного и бесшумного ПК для несложных задач вроде набора этого текста, где «настоящий» десктоп избыточен, а планшет неудобен. Я купил топовую модель Raspberry Pi 4 c 8 Гб памяти — настала пора проверить, как это работает.



Для тех, кому интересно что из этого получилось (спойлер — работает пока далеко не всё), подробности под катом.
Читать дальше →

Как я узнал о тайных услугах Мегафона

Reading time3 min
Views128K
Добрый день всем!

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

Собираем недорогой 9.7" E-Ink дисплей для отображения чего угодно

Reading time2 min
Views76K
Всем привет. Давно хотел собрать большой E-Ink дисплей, который можно поставить на стол и отображать на нем полезную информацию (погоду, календарь и т.д.) В этой статье расскажу, как можно собрать такое устройство на базе ESP32 и дисплея от Kindle DX значительно дешевле, чем Waveshare.


Читать дальше →

Как стать Java разработчиком за 1,5 года

Reading time10 min
Views313K

Меня зовут Сергей, мне 40 лет и сейчас я работаю Java разработчиком в немецкой компании. Мы занимаемся разработкой программного обеспечения для пивоварен оценки финансовых и кредитных рисков. Это моя первая работа в качестве разработчика. До этого я работал в сфере IT-поддержки и системной интеграции. Первого февраля 2019 г. закончился мой шестимесячный испытательный срок, и у меня на руках бессрочный контракт. Я хочу поделиться своим опытом, как можно самостоятельно выучить Java так, чтобы получить работу.



Это мой рабочий стол. Пить пиво в рабочее время у нас разрешено, мы же в Германии.


Моя первая статья: «IT-эмиграция с семьей. И особенности поиска работы в маленьком городе Германии, когда ты уже там»

Читать дальше →

Собеседую программистов на Java. Единый набор вопросов для любого уровня

Reading time4 min
Views28K
В своей карьере мне приходилось быть и разработчиком, и менеджером, и даже один раз «CTO» в небольшом стартапе. И, разумеется, приходилось проводить большое количество собеседований кадидатов. Поэтому для себя я выработал такие правила проведения технических собеседований:

  • всем кандидатам задавать одинаковые вопросы,
  • вопросы должны быть такие, чтобы на них ответил и junior, и senior, но по разному,
  • после трёх вопросов должен быть понятен уровень кандидата.

И вот такие три вопроса для Java-разработчиков у меня получились.
Читать дальше →

План подготовки к собеседованию на позицию Java разработчика

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

И я намеренно не пишу, для кого предназначен этот план подготовки: для senior, middle или junior разработчика — все зависит от конкретной вакансии и от требований работодателя. Поэтому опирайтесь на этот план, но фильтруйте и в то же время не воспринимайте его как исчерпывающее руководство.

  1. Java core. Здесь можно ориентироваться например на книгу «OCP: Oracle Certified Professional Java SE 8 Programmer II Study Guide: Exam 1Z0-809» для подготовки к Java сертификации уровня Professional. Есть подобная книга «OCA: Oracle Certified Associate Java SE 8 Programmer I Study Guide: Exam 1Z0-808» для уровня Associate — на нее тоже можно взглянуть. Пройдитесь по оглавлению и выделите для себя, что можно повторить. Конечно же, не стоит пускаться во все тяжкие и читать книгу от корки до корки — многие темы из этой книги можно обойти стороной, например форматирование дат. Выделите самое основное. Например для меня это были следующие темы: коллекции (стандартные вопросы «Как устроена HashMap?» или «Чем отличается LinkedList от ArrayList?» все также часто задают на собеседованиях), дженерики, функциональные интерфейсы, многопоточность (тут тоже фильтруйте — не нужны вам cyclic barrier и fork join framework).
    Также не забывайте проецировать знания на свой опыт. Например, когда вам приходилось использовать многопоточное программирование? Какие проблемы вы решали? Какие блокировки использовали?
  2. Многопоточность.
Читать дальше →

Java теперь платная? Развенчиваем слухи (или нет?)

Reading time2 min
Views100K
Уже 2 дня как вступили в силу изменения лицензионной политики Oracle на распространение сборок Java SE. В среде разработчиков-слоупоков (я тоже в их числе) начали носиться кошмарные слухи.

Что произошло


В середине 2018 года Oracle объявил, что собирается изменить лицензионную политику. 16 апреля 2019 года изменение вступило в силу. Теперь все опубликованные после этой даты сборки Java SE можно использовать бесплатно только для личных нужд и с целью разработки. Для использования в коммерческих целях (в том числе для продакшена) надо оформить платную подписку у Oracle.

Что-а-а?


Oracle выстрелил себе в ногу и убивает Java? Нет, не убивает. Нет, не выстрелил. Но проблем халявщикамвсем нам подкинул. Давайте быстро разберемся, что это означает в практическом плане, без этих ваших GPL, BCL, WTF…
Разбираемся в режиме FAQ

Индикатор на лобовом стекле для автомобиля на Arduino и ELM327

Reading time2 min
Views27K


Некоторое время назад мне удалось немного посидеть за рулём C6 Corvette, оснащённого индикатором на лобовом стекле (ИЛС или HUD) – и мне это очень понравилось. Возможность видеть скорость и обороты двигателя, не отрывая глаз от дороги, делает вождение приятнее.

И с тех пор я хотел сделать ИЛС для своего автомобиля. Разбираясь с применением OBD2 и Arduino для хака автомобилей, я решил сделать себе этот прибор с нуля. Представляю вам материал, который поможет вам сделать свой собственный экземпляр.

Нам понадобятся:

Большое красно-синее надувательство

Reading time2 min
Views95K
Когда идёшь по улице и обращаешь внимание на окна домов, во многих из них можно заметить характерный розовый свет — народ выращивает рассаду под фитолампами.

Читатель прислал на тест огромную фитолампу, на которой было написано «60W». Я её протестировал и удивился.

Читать дальше →

Использование TSDuck для мониторинга IP(TS)-потоков

Reading time9 min
Views10K

На сегодняшний день существуют готовые (проприетарные) решения для мониторинга IP(TS)-потоков, например VB и iQ, они обладают достаточно богатым набором функций и обычно подобные решения имеются у крупных операторов, имеющих дело с ТВ-сервисами. В этой статье описывается решение на базе open source проекта TSDuck, предназначенное для минимального контроля IP(TS)-потоков по счётчику CC(continuity counter) и битрейту. Возможный вариант применения — контроль потери пакетов или потока целиком через арендованный L2-канал (который нет возможности нормально мониторить, например путём считывания счётчиков потерь в очередях).


Очень кратко о TSDuck


TSDuck это open source (лицензия 2-Clause BSD) ПО (набор консольных утилит и библиотека для разработки своих утилит или плагинов) для манипуляций с TS-потоками. В качестве входа умеет работать с IP (multicast/unicast), http, hls, dvb-тюнерами, dektec dvb-asi демодулятором, имеется внутренний генератор TS-потока и чтение из файлов. В качестве выхода может быть запись в файл, IP (multicast/unicast), hls, dektec dvb-asi и HiDes модуляторы, плееры (mplayer, vlc, xine) и drop. Между входом и выходом можно включить различные процессоры трафика, например перемаппинг PID-ов, делать скремблирование/дескремблирование, анализ CC-счётчиков, подсчёт битрейта и прочие типовые для TS-потоков операции.

Читать дальше →

With love from Stepik: образовательная платформа Hyperskill

Reading time7 min
Views20K
Я хочу поговорить с вами о том, почему мы чаще чиним сантехнику, чем пишем про неё диссертации, о разных подходах к обучению программированию и о том, как мы пробуем применить один из них в нашем новом продукте Hyperskill.

Если вам не по душе длинные вступления, то переходите сразу к параграфу про программирование. Но так будет менее весело.


Читать дальше →

Динамическая подсветка приборной панели

Reading time6 min
Views25K
Всем привет.
Как-то ехал в темное время суток и в голову пришла идея, было бы интересно, если цвет подсветки приборной менялся бы от скорости или от оборотов двигателя. Т.к. тахометра на приборке у меня нет, то решено было реализовать именно второй вариант, за одно можно будет и обороты примерно определять.
Если кто-то захочет повторить, скажу сразу, работы с электрикой в авто вы проводите на свой страх и риск.
Умельцы резонно могут сказать о пушечных выстрелах по воробьям и о моём великолепном умении программировать, однако цель достигнута, задуманное реализовано и вполне себе работает :). В общем случае вам понадобится: Ардуино, пара RGB светодиодов, несколько резисторов и парочка микросхем стабилизации напряжения, крепления для светодиодов. Заинтересовавшихся прошу под кат.



Читать дальше →

Работающий трансформатор с деревянным сердечником, или простая грозозащита для компьютеров и телевизоров

Reading time10 min
Views98K
У великого русского поэта Тютчева не было компьютера и сети, иначе он бы не писал: «Люблю грозу в начале мая». В последние годы актуальность грозозащит стала поменьше — оптика, беспроводные технологии, но все же все же.
Если к вам в квартиру заходит кабель, и этот кабель — не оптический, гроза представляет угрозу для вашего оборудования.

Если у вас есть телевизор и он подключен к общей сети — кабельное ТВ, коллективная антенна (вдруг) — к чему угодно, что находится за пределами квартиры, гроза представляет угрозу для телевизора, (причем даже бОльшую, чем для компьютера).
Будем защищаться

Information

Rating
8,955-th
Registered
Activity

Specialization

Backend Developer
Lead
From 450,000 ₽
Java
Java Spring Framework
SQL
Angular
React