Pull to refresh
0
0
Send message

Плагинное приложение на Java без боли

Reading time8 min
Views13K
В этой статье я хотел бы рассказать, как быстро и просто сделать каркас приложения на Java с поддержкой динамической загрузки плагинов. Читателю наверняка сразу в голову придёт, что такая задача уже давно решена, и можно просто использовать готовые фреймворки или написать свой загрузчик классов, но в предлагаемом мною решении ничего этого не потребуется:

  • Нам не понадобятся специальные библиотеки или фреймворки (OSGi, Guice и т.п.)
  • Мы не будем использовать парсинг байткода с помощью ASM и подобных библиотек.
  • Не будем писать свой загрузчик классов.
  • Не будем использовать рефлексию и аннотации.
  • Не понадобится возня с classpath для поиска плагинов. Мы вообще не будем трогать classpath.
  • Также мы не будем использовать XML, YAML или какие-либо другие декларативные языки для описания точек расширений (extension point’ов в плагинах).

Однако всё же есть одно требование — такое решение будет работать только на Java 9 или выше. Потому что оно будет основано на модулях и сервисах.
Читать дальше →
Total votes 18: ↑16 and ↓2+20
Comments49

10 самых популярных курсов Microsoft на русском

Reading time5 min
Views40K
Привет, Хабр! Совсем недавно мы выложили первую часть серии подборок полезных обучающий курсов для программистов. И вот незаметно подкралась последняя пятая часть. В ней мы перечислили некоторые из самых популярных IT-курсов, которые доступны на нашей учебной платформе Microsoft Learn. Все они, конечно же, бесплатны. Подробности и ссылки на курсы под катом!

Темы курсов в этой подборке:

  • Python
  • Xamarin
  • Visual Studio Code
  • Microsoft 365
  • Power BI
  • Azure
  • ML

Новая серия статей


Следующая серия статей, начало 2020 года


Эта серия статей, 2019 год


Читать дальше →
Total votes 15: ↑13 and ↓2+15
Comments0

Великий порноэксперимент: история Интернета для взрослых

Reading time14 min
Views84K
Сайты для взрослых, или простым языком, порносайты, занимают ключевое место во Всемирной паутине и её развитии. Если вспомнить недавний сериал «Холивар. История рунета. Часть 1. Начало: хиппи из Калифорнии, Носик и лихие 90-е» и термин «две девушки в час», «то есть это тогда, когда было fido, были модемы 1200 бит, и вот ты сидел и у тебя в час две картинки девушек эротического содержания проходило», становится очевидным, что трафик для взрослых сыграл свою немаловажную роль. Ведь зачем ещё развивать сети, если не для стриминга порно?

Знаете ли вы какой процент мирового трафика составляет порнография и какой сумме он эквивалентен в долларах США в год? Какие ухищрения придумывают порносайты и какого типа бывают проекты для привлечения своей аудитории? Несёт ли порно вред или пользу?

Отдельные разделы нашего рассказа мы посвятим «Великому порноэксперименту» и приведём научные факты и данные, которые говорят, как о пользе, так и о вреде порно. Бесконечная новизна! Эффект Ку́лиджа и последствия воздействия на не окрепшую психику или наоборот помощь в формировании устойчивой и более окрепшей психики? С помощью интернет-порно парень может увидеть больше горячих девушек за 10 минут, чем его предки могли за несколько жизней. Проблема в том, что у парня мозг охотника-собирателя.
Total votes 82: ↑70 and ↓12+88
Comments219

Python или не Python

Reading time3 min
Views4.5K
Я расскажу о проблемах с которыми столкнулся, выбрав Python3 первым языком.
Я не изучал программирование в университете.
Я не хочу начинать holywar.

В 2016 Google советовал учить Python3 если нужен:

1. Легкий для старта язык.
2. Язык для машинного обучения.
3. Язык для простых 2d игр.

1. Я посмотрел первую лекцию курса Harvard CS50 на сайте JavaRush и понял, что не хочу:

#include <stdio.h>
int main(int argc, const char *argv[]) {
    printf("Hello world\n");
    return 0;
}

Когда можно так:

print('Monty Python')

JavaScript испугал комбинацией из трех систем: JS/HTML/CSS.

2. Машинное обучение вдохновляло тем, что все статьи и примеры напоминали киберпанк и научную-фантастику.

3. Можно программировать игры? Супер!
Читать дальше →
Total votes 8: ↑4 and ↓4+2
Comments14

RE: Страх и ненависть в IT

Reading time12 min
Views10K
Писать ответы на статьи легко и приятно. Не надо часами корпеть над структурой статьи, достаточно следовать чужому плану и лишь внятно изложить мысли на бумаге. Тем не менее, рискну предположить, что критический взгляд «с другой стороны» на проблемы, поднятые в статье "Страх и ненависть в IT" уважаемым eugene_crabs, все же будет интересен. В роли адвоката дьявола, защищающего бесчеловечную системы выступаю сегодня я.

image

Я, в отличии от него, лычек сеньора не ношу, и стаж разработки у меня на пару лет поменьше, да и профильного образования, у меня, если честно, нет. Но вот проблем у меня с базовым интересом к работе не было, и мне кажется — причина в несколько ином восприятии реальности.
Статья для широкого круга читателей.
Читать дальше →
Total votes 37: ↑23 and ↓14+18
Comments49

«Спокойной ночи» – как умные гаджеты лишают людей сна

Reading time3 min
Views13K
image

С чего начинается каждое мое утро? Звонок будильника, беру в руки айфон и… проверяю через приложение, как же я там сегодня поспала.

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

Уверена, я не одна такая. Согласно этому исследованию, 10% американцев уже носят умные часы, а 50% — рассматривают возможность такой покупки в ближайшем будущем. На Reddit есть канал r/Biohackers, и там куча сообщений в таком духе:
«Ребята, помогите! Мое кольцо Oura стабильно показывает 55 баллов или даже ниже. И это несмотря на все мои усилия по улучшению сна – активность в течение дня, медитации, холодный душ, никакой еды за 4 часа до сна, блокировка голубого экрана на смартфоне. Что делать?»
То есть человек чувствует себя нормально, но трекер говорит, что, мол, ничего подобного! Ему-то виднее!

О пользе сна и ужасах от его лишения долго расписывать, думаю, смысла нет: все и так знают, что спать нужно 7-8 часов и делать это качественно, то есть засыпать в течение 30 минут и просыпаться не более одного раза за ночь.

Но помогает ли изучение данных о сне лучше спать?

Читать дальше →
Total votes 22: ↑15 and ↓7+15
Comments56

Краткое пособие для изучающих иностранный язык

Reading time12 min
Views18K
как все непросто в этой жизни!

Доброго дня, уважаемое сообщество!

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

Для начала очень коротко о себе: мне 39 лет, 14 из которых я живу за границей. В настоящий момент я владею 5 языками, в числе которых 1 родной (русский) и 4 выученных (украинский, английский, греческий и немецкий). Мне довелось пережить на себе многие подходы к изучению. Кроме того, я провел много времени помогая своим детям освоить тот или иной язык, с очень разными результатами, поэтому я считаю, что мой опыт достоин того, чтоб на его основании делать какие-то выводы.

Сразу хочу сказать, что изучение языка — дело кропотливое! Я способный к языкам и справляюсь быстрее большинства. При этом, на изучение до уровня В2 у меня ушло 1,5 года и вот сейчас, почти через 2, я подошел вплотную к сдаче С1. Причем, вообще не факт, что С1 я сдам с первого раза. Реально очень сложный экзамен. Поэтому забудьте о 2х, 3х или 6 месяцах, забудьте о годе. Минимальный необходимый срок для освоения иностранного языка, не входящего в одну группу с родным, 2 года. Я правда не знаю ни кого, кто справился бы быстрее. Возможно они и есть, но ориентировать себя на быстрое изучение точно не стоит!

Итак, поехали :)
Читать дальше →
Total votes 31: ↑30 and ↓1+29
Comments37

Зарплатная вилка. Ты ж у мамы программист

Reading time7 min
Views160K
Думаю что у каждого ИТ-специалиста наступает тот момент, когда он хочет написать подобный текст может и не для себя, а для десятков знакомых, которые не работают в этой сфере и не понимают как и что. Возможно кому-то будет полезно просто дать ссылку на подобную статью, чем в 10 раз объяснять самому.

Дело в том, что ИТ-сфера одновременно бурно развивается (все еще) и в то же время полна множества устоявшихся стереотипов.
Читать дальше →
Total votes 249: ↑195 and ↓54+141
Comments472

Что изучают на специальности Data Science в зарубежных вузах

Reading time4 min
Views11K

«Будь то компания, предоставляющая финансовые услуги, которая хочет снизить риски, или ритейлер, пытающийся предсказать поведение покупателей, сценарий применения ИИ и машинного обучения основан на эффективной стратегии использования данных», — слова Рёхея Фуджимаки, основателя компании dotData и самого молодого научного сотрудника в истории 119-летней IT-корпорации NEC.


С ростом спроса, растет и количество программ Data Science в университетах. Какие модули изучают студенты, какие визовые возможности предусмотрены для выпускников вузов — разбираемся ниже.

Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments1

Конспект по «Машинному обучению». Математическая статистика. Метод максимального правдоподобия

Reading time3 min
Views12K


Вспомним некоторые определения математической статистики


Пусть задано вероятностное пространство $(\Omega, \Sigma, P)$.

Определение 1:

Случайной величиной $\xi = \xi(w)$, принимающей значения в множестве $S$ c $\sigma$-алгеброй подмножеств $\Phi$ называется любая $(\Sigma, \Phi)$-измеримая функция $\xi \colon \Omega \to S$, то есть $\forall A \subseteq S, A \in \Phi$ выполняется условие $\xi^{-1}(A)=\{\omega \in \Omega \space \colon \space \xi(w) \in A\} \in \Sigma$.
Читать дальше →
Total votes 14: ↑8 and ↓6+2
Comments1

Работа не волк, часть 1. Поиск работы: 9 кругов HR-a

Reading time16 min
Views70K
Поиск работы вызывает неприятные тревожно-азартные ощущения и у вчерашнего студента, и у профессионала с годами опыта за плечами. Это не признак неуверенности в себе, это проблема всей отрасли поиска персонала: мы идём на собеседование и понимаем, что не всё может зависеть от профессионализма, что кому-то не понравятся наши софт-скиллы или внешний вид, кто-то упрется в вопрос о причинах ухода с предыдущего места. На Хабре может выйти 200 статей-обращений к HR-службами IT-компаний, где сами соискатели будут с пеной у рта рассказывать, как с ними (нами!) нужно разговаривать, как оценивать, но на первой встрече с будущим работодателем вам всё равно подсунут психологический тест, зададут странные вопросы и посмотрят на вас, как будто вы уже что-то нарушили и идёте в компанию, чтобы порушить устои и корпоративную культуру. Поэтому мы не будем рассказывать компаниям, в чём они не правы — мы расскажем вам, как с этим жить. 


Это первая часть нашего нового цикла «Работа не волк», который будет состоять из пяти частей, каждая из которых раскрывает важнейшие аспекты, связанные с трудоустройством. Как и в случае с циклом про образование, статьи будут субъективными, честными и основанными на обширной экспертизе. Вот что вас ждёт:

Часть 1. Поиск работы: источники, резюме, собеседование с HR
Часть 2. Устройство и адаптация: собеседуем с боссом, проходим испытательный срок с ветерком
Часть 3. Работа в роли новичка: рост в компании
Часть 4. Работа в роли опытного сотрудника: как не перегореть
Часть 5. Увольнение: я ухожу красиво
Читать дальше →
Total votes 52: ↑45 and ↓7+38
Comments37

Опровергаем мифы: реальные практики в Армении в сфере ИТ

Reading time10 min
Views5.7K
image

Добрый день, уважаемые читатели! Благодаря вашим отзывам на предыдущую статью по ИТ-отрасли Армении созрела идея создать еще одну публикацию, которая даст максимально развернутый ответ о реальной практике IT-специалистов в южно-кавказском государстве. В этой публикации я познакомлю вас со «светилами» Армении, которые не только живут и работают на территории государства, но и активно наращивают объемы стартапов, разработок, идей, в том числе для выхода на международные рынки.

Читать дальше →
Total votes 14: ↑9 and ↓5+4
Comments2

Цифровизация образования

Reading time3 min
Views4K
На фотографии дипломы дантиста и зубного врача конца 19 века.

image
Прошло более 100 лет. Дипломы большинства организаций и по сей день не отличаются от выдаваемых в 19 веке. Казалось бы, раз все и так хорошо работает, то зачем что‐то менять? Однако не все хорошо работает. У бумажных аттестатов и дипломов есть серьезные недостатки из‐за которых теряются время и деньги:

  • Бумажные дипломы выпускать долго и дорого. Необходимо тратиться на их дизайн, специальную бумагу, печать и доставку по почте.
  • Бумажный диплом легко подделать. Если же делать его сложно подделываемым, добавляя водяные знаки и другие методы защиты, то цена создания сильно возрастает.
  • Информацию о выданных бумажных дипломах нужно где‐то хранить. Если произойдет взлом реестра, в котором хранится информация о выданных документах, то невозможно будет более проверить их подлинность. Ну, бывает, что базы данных взламывают.
  • Запросы о подлинности сертификатов обрабатываются вручную. Из‐за чего процесс затягивается на недели.

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

  1. Сканы и фотографии бумажных документов.
  2. PDF сертификаты.
  3. Цифровые сертификаты различных видов.
  4. Цифровые сертификаты, выпущенные на едином стандарте.

Разберем каждый вид подробнее


Сканы и фотографии бумажных документов

Хоть их и можно хранить на компьютере и быстро отправлять другим людям, все равно для их создания нужно выпустить сначала бумажные, что не решает перечисленные проблемы.
Читать дальше →
Total votes 23: ↑15 and ↓8+7
Comments22

Почему топовые физики не любят многомировую интерпретацию

Reading time7 min
Views52K

Последнее время из каждого утюга слышатся хвалебные высказывания о многомировой интерпретации квантовой механики и негативные в сторону Копенгагенской. Вот, например, относительно недавняя статья на Хабре. Приверженцев идей отцов-основателей (Нильса Бора, Вернера Гейзенберга, Пола Дирака, Вольфганга Паули) теперь считают динозаврами, отказывающимися принять современную (1957 год) многомировую трактовку.

Читать дальше →
Total votes 127: ↑90 and ↓37+53
Comments588

Стохастический градиентный спуск(SGD) для логарифмической функции потерь(LogLoss) в задаче бинарной классификации

Reading time4 min
Views9.2K
Предыдущая часть (про линейную регрессию, градиентный спуск и про то, как оно всё работает) — habr.com/ru/post/471458

В этой статье я покажу решение задачи классификации сначала, что называется, «ручками», без сторонних библиотек для SGD, LogLoss'а и вычисления градиентов, а затем с помощью библиотеки PyTorch.
Читать дальше →
Total votes 10: ↑7 and ↓3+4
Comments1

Data-Oriented Design (или почему, используя ООП, вы, возможно, стреляете себе в ногу)

Reading time10 min
Views36K
image

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

Такое развитие событий довольно точно описывает почти каждую игру, в разработке которой я участвовал на протяжении последних десяти лет. Причины заключаются не в языках программирования и не в инструментах разработки, и даже не в отсутствии дисциплины. По моему опыту, в большой степени в этом стоит винить объектно-ориентированное программирование (ООП) и окружающую его культуру. ООП может не помогать, а мешать вашим проектам!
Читать дальше →
Total votes 34: ↑30 and ↓4+26
Comments18

Предсказание наводнений в Google: взгляд изнутри

Reading time6 min
Views3.3K


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

Модель наводнения


Критический шаг в разработке точной системы предсказания наводнений – разработать модели наводнений, использующие либо измерения, либо предсказания уровня воды в реке в качестве входных данных, и симулирующие поведение воды в её пойме.
Читать дальше →
Total votes 19: ↑13 and ↓6+7
Comments5

Первые полгода в роли тимлида: как не сойти с ума, если кажется, что все плохо

Reading time3 min
Views18K


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

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

Total votes 37: ↑27 and ↓10+17
Comments14

Apple в 2019 году — это Linux в 2000 году

Reading time3 min
Views144K
Примечание: этот пост — ироничное наблюдение на тему цикличности истории. Это самое наблюдение не несет какой-либо практической пользы, но в сути своей — весьма меткое, так что я решил, что им стоит поделиться с аудиторией. Ну и конечно же, встретимся в комментариях.



На прошлой неделе ноут, который я использую для разработки под MacOS, сообщил, что доступно обновление XCode. Я попытался его установить, но система сообщила, что ей недостаточно свободного места на диске для запуска программы установки. Окей, я удалил кучу файлов и попробовал снова. Все та же ошибка. Я пошел дальше и удалил еще кучу файлов и в довесок несколько неиспользуемых образов виртуальных машин. Эти манипуляции освободили на диске несколько десятков гигабайт, так что все должно было заработать. Я даже вычистил корзину, чтобы там ничего не «зависло», как это обычно бывает.

Но даже это не помогло: я получил все ту же ошибку.
Читать дальше →
Total votes 478: ↑439 and ↓39+400
Comments811

Телефонные мошенники. Действие второе, в котором я срываюсь и бегу до ближайшего банкомата

Reading time8 min
Views134K


Итак, по реакции публики я увидел, что первое действие вполне «зашло», поэтому продолжу. Общий хронометраж моих разговоров составил (по «действиям»): 7:10, 18:23, 42:14, 3:51. Непродолжительность финального фрагмента связана с тем, что я понял, что с той стороны находятся исключительно непробиваемые личности. Я мог бы еще часами «ходить» по городу, но мои силы уже были на исходе. Поэтому я сознался в содеянном сам и попрощался.

Положив трубку после разговора с «лже-Дмитрием» я ожидал продолжения банкета на следующий день. Но нет, господа были весьма нетерпеливы и перезвонили мне почти сразу же. Чуток поломав свою легенду.
Читать дальше →
Total votes 126: ↑117 and ↓9+108
Comments331

Information

Rating
Does not participate
Registered
Activity