Pull to refresh
39
0
Send message

LJV: Чему нас может научить визуализация структур данных в Java

Reading time26 min
Views29K

Эта статья является пересказом моего доклада на Java-конференции SnowOne 2021 года. LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет визуализировать внутреннее устройство структур данных. В этом докладе я запускаю LJV на разных структурах (от String до ConcurrentSkipListMap) в разных версиях Java и разбираю, что там внутри, как оно менялось от версии к версии, и как это всё работает.


image

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

Как мы распилили монолит. Часть 4. И как Angular между приложениями пошарили

Reading time8 min
Views7.5K

В первой, второй и третьей частях мои коллеги рассказали, как и почему мы распиливали монолит. 

Если коротко, то мы создали решение, которое позволило в рамках одной открытой страницы браузера запускать несколько независимых Angular-приложений, шарить между ними данные, управлять роутингом и аутентификацией. Мы научились бороться с утечками памяти и решать конфликты глобальных стилей приложений. Но одна проблема оставалась открытой — каждое приложение несло в своем банде Angular, RxJS, zone.js и т. д. И в этой статье я расскажу, как мы ее решили.

Читать далее
Total votes 21: ↑21 and ↓0+21
Comments7

Малиновый Прог против Интернета Кирпичей, или Raspberry Pi с графикой на read-only microSD

Reading time16 min
Views87K
Запуск Raspberry Pi с полной поддержкой графики на microSD, навсегда остающейся в режиме read-only после установки системы. Отсутствие какой-либо записи данных на флэш-память повышает надёжность устройства, приближая его к промышленному классу изделий. Пошаговая инструкция. Небольшой театр инженерного абсурда для развлечения аудитории.


Мне понадобилось сетевое устройство с открытым кодом и выходом HDMI, и я решил попробовать Малиновый Прог. Да, я именно так предлагаю переводить Pi: Прог. Понятное дело, даже одноплатнику нужна операционка. И вот, захожу я на официальный сайт, ожидая встретить там подробное руководство по созданию суровой, неломаемой Вещи à la turnkey box. Но народ, как ни в чём не бывало, устанавливает Ubuntu (т.е. Raspbian Jessie) прямо на microSD, размещая и swap там же. Как обычный десктоп, face palm.

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

Итак, по стандартной инструкции нормальный одноплатник превращается в раздутый десктоп со средним временем жизни год-полтора, пока изношенная флэшка не сдохнет, превратив в общем-то хороший девайс в кирпич. И большинство людей, похоже, это вполне устраивает. Меня — нет.
Читать дальше →
Total votes 65: ↑60 and ↓5+55
Comments205

Java-ресурсы, на которые есть смысл подписаться

Reading time4 min
Views24K
Когда язык программирования используют миллионы человек, кажется, что о нём должно быть предостаточно сайтов, в том числе русскоязычных. Однако, если набрать в поисковике «новости Java», результаты оказываются примерно такими:



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

Поэтому, во-первых, мы сейчас перезапустили сайт JUG.ru, чтобы исправить это. А во-вторых, раз русскоязычные регулярно обновляемые ресурсы в дефиците, вспомнили, какие есть англоязычные, и делимся результатами с Хабром. Разумеется, в текст вошло далеко не всё возможное, и будем только рады дополнениям в комментариях.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments10

[PF] Печать PDF под .NET, векторный подход, теория

Reading time4 min
Views8.4K


Продолжаю тему печати PDF документов из под .NET.

В принципе, распечатать документ не трудно, есть даже готовые решения. Сложности возникают, когда нужно управлять некоторыми параметрами печати. В своей практике я столкнулся с задачей по реализации минитипографии — когда при печати документов нужно указывать, из какого лотка брать очередной лист, т.е. печатать документы по шаблонам. Первым делом я попытался найти готовые решения, но не обнаружив ничего подходящего, стал придумывать свое.
Хочу читать дальше!
Total votes 15: ↑15 and ↓0+15
Comments3

400 потрясающих бесплатных сервисов

Reading time16 min
Views722K

Рад представить дополнение оригинального списка из 300 потрясающих бесплатных сервисов. Автор оригинальной статьи Ali Mese добавил ещё +100 новых сервисов, которые помогут найти все — от источников вдохновения и редакторов фотографий до создания опросов и бесплатных иконок.

И еще подборку +500 инструментов от 10 марта 2017 г. смотрите здесь.



A. Бесплатные веб-сайты

  • HTML5 UP: Адаптивные шаблоны HTML5 и CSS3.
  • Bootswatch: Бесплатные темы для Bootstrap.
  • Templated: Коллекция 845 бесплатных шаблонов CSS и HTML5.
  • Wordpress.org | Wordpress.com: Бесплатное создание веб-сайта.
  • Strikingly: Конструктор веб-сайтов.
  • Layers: Создание сайтов на WordPress (new).
  • Bootstrap Zero: Самая большая коллекция бесплатных шаблонов Bootstrap (new).
  • Landing Harbor:  Продвижение мобильного приложения c помощью бесплатного лендинга (new).
Читать дальше →
Total votes 108: ↑89 and ↓19+70
Comments38

Хабр шелл: встраиваем кросплатформенный ssh server в java приложение

Reading time4 min
Views14K


Расскажу как внедрить в существующее java приложение ssh сервер, который может выводить в терминал данные о лучших статьях с habrahabr. Это лишь пример, но на его основе вы сможете получить дополнительное средство для администрирования вашей программы и расширить поведение любыми командами, без изменения исходного кода и пересборки приложения.
Подробности
Total votes 13: ↑12 and ↓1+11
Comments5

Индия строит ториевый ядерный реактор

Reading time2 min
Views134K


Правительство Индии дало разрешение на начало строительства экспериментального ториевого реактора на 300 МВт, первого ториевого реактора в мире. Станции такого типа считаются настолько безопасными, что их можно строить прямо в городской черте, хотя экспериментальный реактор всё-таки построят вдали от города (сейчас выбирают из двух площадок).

Конструкция реактора AHWR (advanced heavy water reactor) представляет собой продвинутый вариант тяжеловодного ядерного реактора, использующий канальную архитектуру, а также обычную воду в качестве теплоносителя. Замедлитель (тяжёлая вода D2O) находится в отдельных от теплоносителя каналах под пониженным давлением.
Читать дальше →
Total votes 89: ↑78 and ↓11+67
Comments133

Список сочетания клавиш для восстановления заводских установок ноутбуков

Reading time1 min
Views514K
Многие владельцы ноутбуков знают, что если их мобильный помощник приобретался с предустановленной ОС, то в 90% случаев на жестком диске есть специальный раздел, предназначенный для хранения образа операционной системы с драйверами и программами. Кто-то удаляет этот раздел сразу, дабы высвободить место, а кто-то даже и не знает о его существовании. А некоторые используют его по назначению. Войти в меню восстановления можно в среде Windows, но если система слетела то, как быть? Восстановить систему при помощи горячих клавиш. Вот мой небольшой списочек этих горячих клавиш.

После включения ноутбука начинаем лихорадочно нажимать:


F3 – MSI;
F4 – Samsung. Под ОС можно через Samsung Recovery Solution III;
Читать дальше →
Total votes 58: ↑48 and ↓10+38
Comments40

Путь обучения: Развертывание Windows на множество компьютеров (материалы на русском языке)

Reading time1 min
Views8.2K
image
В дополнение к подаркам к новому году по разработке в виде статей по Windows был создан обучающий курс по развертыванию Windows на множество компьютеров на русском языке. В курс вошли следующие материалы, которые помогут вам получить все необходимые знания для планирования и развертывания:

Приятного просмотра и счастливых новогодних праздников!
Total votes 78: ↑51 and ↓27+24
Comments19

100 статей про разработку для Windows на русском языке

Reading time4 min
Views11K
image

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

Полный список под катом
Читать дальше →
Total votes 112: ↑81 and ↓31+50
Comments72

Как активировать режим Бога в Windows 7

Reading time1 min
Views579K
Знаете ли вы, что вы тоже можете стать Богом!? Ну, по крайней мере, на Windows 7 (по сообщениям пользователей это так же работает и на Windows Vista).

Этот режим позволит вам управлять всеми настройками Windows из удобного графического меню. Вот как его активировать:

1. Щелкните правой кнопкой мыши на любом пустом пространстве рабочего стола.
2. Перейдите в меню Создать и создайте новую папку.
Читать дальше →
Total votes 276: ↑221 and ↓55+166
Comments356

Разворачивание Unifi сети. Личный опыт от и до

Reading time5 min
Views237K
Wi-FI сети прочно вошли в нашу жизнь и уверенно обосновались на улицах, в домах и офисах. Вот и у меня на работе начальство и менеджеры обзавелись продукцией «какой-то фруктовой компании» и возжелали вайфаю. Первой мыслью было купить пару бытовых Wi-Fi роутеров, настроить один как БС, второй как репитер и дело, казалось бы, в шляпе. Но тут есть одно неудобство, при первом переключении между точками приходиться снова вводить пароль доступа. А так как площадь офиса вскоре должна была увеличиться вдвое и соответственно должно было увеличиться количество таких переключений, было принято решение настроить Wi-Fi с бесшовным роумингом. До недавнего времени на рынке данного оборудования бал правили гиганты Cisco,HP и иже сними. Стоит ли говорить, что цена их решений составляет десятки и сотни тысяч рублей. Но спасибо бесценному habrahabr и данной статье, которая поведала о совсем недорогом решении основанном на Unifi. UniFi продукт компании Ubiquiti — система корпоративного Wi-Fi с бесплатным контроллером. Я опишу весь процесс разворачивания сети на основе Unifi от настройки роутера до монтажа точек на потолок исходя из личного опыта.
Читать дальше →
Total votes 17: ↑15 and ↓2+13
Comments39

Анализ приложения защищенного виртуальной машиной

Reading time52 min
Views44K
В данной статье будет рассмотрено построение защиты приложения с использованием различных программных «трюков» таких как: сброс точки входа в ноль, шифрование тела файла и декриптор накрытый мусорным полиморфом, сокрытие логики исполнения алгоритма приложения в теле виртуальной машины.

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

Для более или менее адекватного восприятия статьи потребуется минимальные знания ассемблера (его будет много) а так-же навыков работы с отладчиком.

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

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

В качестве реципиента, по совету одного достаточно компетентного товарища, я выбрал немножко старый (но не потерявший актуальности, в силу качества исполнения) keygenme от небезызвестного Ms-Rem.

Вот первоначальная ссылка, где он появился: http://exelab.ru/f/index.php?action=vthread&forum=1&topic=4732
А потом он попал вот сюда: http://www.crackmes.de/users/ms_rem/keygenme_by_ms_rem/
Где данному keygenme был выставлена сложность 8 из 10 (*VERY VERY* hard).
Хотя, если честно, это слегка завышенная оценка — я бы поставил в районе 5-6 баллов.

Пожалуй, начнем.
Читать дальше →
Total votes 154: ↑151 and ↓3+148
Comments75

Wake On Lan после сбоя питания (или из состояния G3)

Reading time5 min
Views61K
Wake-on-LAN (WOL; в переводе с англ. — «пробуждение по [сигналу из] локальной сети») — технология, позволяющая удалённо включить компьютер посредством отправки через локальную сеть специальной последовательности байтов. wiki

И все бы хорошо, если бы не одно но. После сбоя питания ваш компьютер не включится.
Согласитесь, это будет «приятной» неожиданностью, особенно если вы находитесь за пару тысяч километров от него.
Одно из решений написано здесь, но оно аппаратно-программное, а ведь можно обойтись без дополнительного железа.
Читать дальше →
Total votes 33: ↑32 and ↓1+31
Comments28

Охотимся за утечками памяти в Node.js (1-я из 12 статей о Node.js от команды Mozilla Identity)

Reading time7 min
Views27K
От переводчика: Это первая статья из цикла о Node.js от команды Mozilla Identity, которая занимается проектом Persona. Как клиентская, так и серверная часть Persona написаны на JavaScript. В ходе работы команда проекта создала несколько инструментов на все случаи жизни — от локализации до отладки, управления зависимостями и многого другого. В этой серии статей разработчики Mozilla делятся с сообществом своим опытом и этими инструментами, которые пригодятся любому, кто пишет высоконагруженный сервис на Node.js.

Первая статья цикла посвящена распространённой проблеме Node.js — утечкам памяти, особенностям утечек в высоконагруженных проектах и библиотеке node-memwatch, которая помогает найти и устранить такие утечки в Node.




Зачем заморачиваться?


Вы можете спросить, зачем вообще отслеживать утечки памяти? Неужели нет более важных дел? Почему бы просто не перезапускать процесс время от времени, или просто добавить памяти на сервер? Есть три причины, по которым устранять утечки всё-таки важно:

  1. Возможно, вы не сильно переживаете об утечках памяти, но этого нельзя сказать о V8 (движок JavaScript на котором работает Node). Чем больше памяти занято, тем активнее работает сборщик мусора, замедляя ваше приложение. Так что в Node утечки напрямую вредят производительности.
  2. Утечки могут привести к другим проблемам. Протекающий код может блокировать ограниченные ресурсы. У вас могут закончиться файловые дескрипторы или вы вдруг не сможете открыть ещё одно соединение с БД. Такие проблемы могут возникнуть задолго до того, как кончится память, но обрушат ваше приложение ничуть не хуже.
  3. Рано или поздно ваше приложение упадёт. И это наверняка случится во время наплыва посетителей. Вас все засмеют и будут писать про вас гадости на Hacker News.

Откуда доносится звук падающих капель?
Total votes 63: ↑61 and ↓2+59
Comments1

Путь JavaScript модуля

Reading time28 min
Views121K


На момент написания этой статьи в JavaScript еще не существовало официальной модульной системы и все эмулировали модули как могли.

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

Вот в JavaScript своя атмосфера — в языке нет официальных модулей, более того все файлы лежат удаленно, один поток приложения. Приходится постоянно решать какие-то странные проблемы с загрузкой, хитро паковать модули в один файлы, чтобы ускорить время загрузки. Бывает, что нужно воевать с двойными стандартами, адаптировать модули другого формата.

Дело в том, что раньше не думали, что на JavaScript можно делать огромные проекты, а не просто «пропатчить DOM», поэтому о модулях не думали. Да и вообще не думали о будущем. И тут Внезапно будущее нагрянуло! Все вроде-бы уже есть, а модули в JavaScript, мягко говоря, запаздывают. Поэтому разработчикам приходится крутиться и выдумывать какие-то эмуляторы модульности.

Думаю многие из вас читали прекрасную статью Addy Osmani Writing Modular JavaScript With AMD, CommonJS & ES Harmony, которая стала одной из глав его книги Learning JavaScript Design Patterns в этой статье рассказывается про «современные» JavaScript модули или же читали достаточно старую статью JavaScript Module Pattern: In-Depth 2010 года про «старые» модули.

Я не буду переводить эти статьи и не буду делать из них солянку. В своей статья я хочу рассказать о моем модульном пути. О том как я проделал путь от «старых» модулей к «новым» и что использую сейчас и почему.
Читать дальше →
Total votes 188: ↑185 and ↓3+182
Comments71

CubieBoard дорого, Raspberry Pi слабовато, или где взять SoC с GPIO помощней да подешевле

Reading time4 min
Views155K

Raspberry Pi стал народным одноплатником почти сразу после своего появления, так как более дешевых, маленьких и универсальных одновременно SoC систем не было. Однако ныне настало время, когда китайцы выпускают дешевые, и компактные SoC вроде AllWinner A10 частотой до 1,2 GHz, которые смотрятся заметно заманчивее чем 0,7 GHz малинового пирога.

Есть конечно CubieBoard
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments63

Онлайн вещание через Nginx-RTMP: несколько готовых рецептов

Reading time5 min
Views154K
Недавно я наткнулся на топик "Сервер онлайн-вещаний на базе nginx" о замечательном модуле Романа Арутюняна (@rarutyunyan) для nginx: nginx-rtmp-module. Модуль очень прост в настройке и позволяет на основе nginx создать сервер публикации видеозаписей и живого вещания.

Про сам модуль можно прочитать на его странице на GitHub, я же хочу привести несколько простых примеров использования. Надеюсь, топик поможет новичкам в видеоделах (таким как я).

Читать дальше →
Total votes 38: ↑34 and ↓4+30
Comments22

Можно вот так взять и сделать МФУ из дешевого сканера в GNU\Linux

Reading time5 min
Views30K
Встала задача помочь своей фирме сэкономить. Не покупать дорогие МФУ типа xerox 3300mfp за ~22 тыс. рублей, а обойтись подручными или более дешевыми средствами.

Задачи:
1. Сканировать в сетевую папку
2. Ксерокопировать документы
3. Делать pdf из отсканированного изображения

Что имеем:
1. ПК под управлением Kubuntu 12.04.1x64(Тестовый вариант. В дальнейшем будет перевод на бездисковый неттоп на atom'е + Ubuntu(Centos?) server)
2. Уже старый принтер HP p1505n
3. Взятый на пробу сканер HP Scanjet G2710

Читать дальше →
Total votes 73: ↑62 and ↓11+51
Comments49
1

Information

Rating
Does not participate
Location
Украина
Registered
Activity