Java (+Javascript) fullstack developer
Дюк, вынеси мусор! — 1. Введение

Наверняка вы уже читали не один обзор механизмов сборки мусора в Java и настройка таких опций, как Xmx и Xms, превратилась для вас в обычную рутину. Но действительно ли вы в деталях понимаете, что происходит под капотом вашей виртуальной машины в тот момент, когда приходит время избавиться от ненужных объектов в памяти и ваш идеально оптимизированный метод начинает выполняться в несколько раз дольше положенного? И знаете ли вы, какие возможности предоставляют вам последние версии Java для оптимизации ответственной работы по сборке мусора, зачастую сильно влияющей на производительность вашего приложения?
Попробуем в нескольких статьях пройти путь от описания базовых идей, лежащих в основе всех сборщиков мусора, до разбора алгоритмов работы и возможностей тонкой настройки различных сборщиков Java HotSpot VM (вы ведь знаете, что таких сборщиков четыре?). И самое главное, рассмотрим, каким образом эти знания можно использовать на практике.
Мягкие ссылки на страже доступной памяти или как экономить память правильно

Все java-разработчики, рано или поздно, встречаются с пресловутой ошибкой OutOfMemoryError.После этой встречи мы начинаем более бережно относится к используемой памяти, экономить ее. Начиная с версии 1.2 в Java появился пакет java.lang.ref.* с классами SoftReference, WeakReference, PhantomReference. Далее я расскажу вам о том, как помогут эти классы в борьбе с OutOfMemoryError. И что более интересно, приведу реальные примеры их использования. Начнем.
Идеальный Мини-Хакинтош

Когда в 2005 году Apple перешла на платформу Intel, энтузиасты со всего мира задались целью установить MAC OS X на обычные PC (Хакинтош). На пути реализации этой затеи стояли четыре причины. 2 физические и 2 юридические. Дело в том, что для запуска компьютера MAC используется не привычный BIOS, а собственный EFI загрузчик. Вторая причина, это чип SMC который установлен в каждом компьютере Mac. Он генерирует ключи для запуска всех системных приложений MAC OS X. Благодаря нашему соотечественнику под ником Netkas, удалось обойти эти два ограничения созданием эмулятора загрузчика EFI (Chameleon, Chemera, Clover) и эмулятора чипа SMC (FakeSMC.kext). Этих двух программных решений достаточно, что бы установить MAC OS на PC.
Почему Hackintosh уже актуален. Развенчание мифов
Каждому iOS разработчику нужен свой уголок с печеньками, плюшевой уточкой и шайтан-машиной на OSX.
В свете перехода на Swift, мощность железа стала особенно востребована. Чтобы комфортно разрабатывать под айфоны, нужен как минимум процессор с частотой 3+ ghz, SSD на 120-250Gb и оперативы гигов 16. Все это как раз для того, чтобы не было желания посмотреть футбол, пока запускается проект или открывается interface builder.
А знаете, что еще было всегда актуально? Сумасшедшие цены на яблочные устройства:
PC с таким же, плюс-минус, железом можно запросто собрать всего за 30.000 рублей! (инфа на ноябрь 2016). Многие, конечно, думают, что раз компания покупает железо, то значит финансы бесконечные, можно не стесняться в средствах. Если вы работаете в Google, то вам повезло и жизнь хороша. Но в остальных случаях это не так.
Что же делать? Не разрабатывать же под Android в конце концов?
Под катом мы узнаем о современном Hackintosh, его роли в разработке, способам безболезненной установки и настройки, услышим мнение людей, работающих на нем не первый год, и проведем тест на iOS инструментах.
«Нам проще на листочках»: почему в российских компаниях проваливаются проекты по автоматизации

Мы развиваем сервис контроля выездных сотрудников «Планадо» — им пользуются компании, чьи работники занимаются монтажом и обслуживанием оборудования, окон и мебели, уборкой, доставкой, сборкой и так далее. С помощью приложения в смартфоне руководитель компании может узнавать о том, где они находятся в конкретный момент времени, выполняют ли работу по технологии, убирают ли за собой мусор — для этого есть функции геотрекинга, чек-листов, фотоотчетов.
Рядовым сотрудникам почти никогда не нравится идея внедрения «Планадо» — никто не любит контроль. И не всегда руководству компании хватает сил этому противостоять. Сегодня мы расскажем о том, как потеряли одного из заказчиков.
7 советов начинающему ИП, чтобы избежать проблем (что-то вы точно из этого не знаете)

После регистрации ИП в налоговой инспекции вы получаете не только право вести бизнес, т.е. заниматься предпринимательской деятельностью, но и обязанности, первейшие из которых — сдавать отчётность и платить за себя страховые взносы. Помимо этих ключевых обязанностей каждого ИПешника есть ещё ряд нюансов, о которых стоит знать, чтобы не нарваться на штрафы в первый же месяц своей официальной деятельности. Специально для этой статьи мы отобрали семь важных вопросов, которые надо решить IT-фрилансеру сразу после госрегистрации.
А для тех, кто открыл ООО, мы подготовили: 10 вещей, которые обязательно нужно сделать после регистрации ООО
9 нюансов в работе инди-разработчика, о которых мне никто не рассказывал

5 причин не использовать свой личный счёт в фрилансе

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

«red herring», т.е. «копчёная селёдка» – фразеологизм для обозначения отвлекающего манёвра (селёдка использовалась, чтобы сбить со следа охотничьих собак).
В 1972 году на лекции в Оксфордском университете молодой физик Уильям Унру попросил аудиторию представить рыбу, кричащую от страха во время преодоления водопада. Пусть вода падает так быстро, что в какой-то определённой точке обгоняет скорость звука. Тогда, после того, как рыба пройдёт эту точку, вода будет падать вниз быстрее, чем звуковые волны распространяться по ней вверх, и рыбу уже нельзя будет услышать в верховьях реки.
Унру пояснил, что нечто подобное происходит, когда вы падаете в чёрную дыру (ЧД). Когда вы приближаетесь к одному из этих сверхплотных объектов, ткань пространства-времени искривляется всё сильнее, что эквивалентно усилению гравитации, согласно ОТО Эйнштейна. В точке невозврата, известной, как «горизонт событий», кривизна пространства-времени становится столь сильной, что сигналы уже не могут выкарабкаться по ней наружу. В пределах горизонта событий остаётся даже свет, пойманный гравитацией ЧД, из-за чего ЧД невидимы.
Ваш язык программирования — отстой
1 Почему JavaScript отстой
• 1.1 Плохая конструкция
• 1.2 Система типов
• 1.3 Плохие функции
• 1.4 Отсутствующие функции
• 1.5 DOM
2 Почему Lua отстой
3 Почему PHP отстой
• 3.1 Исправлено в поддерживаемых в настоящее время версиях
4 Почему Perl 5 отстой
5 Почему Python отстой
• 5.1 Исправлено в Python 3
6 Почему Ruby отстой
7 Почему Flex/ActionScript отстой
8 Почему скриптовые языки отстой
9 Почему C отстой
10 Почему C++ отстой
11 Почему .NET отстой
12 Почему C# отстой
13 Почему VB.NET отстой
15 Почему Objective-C отстой
16 Почему Java отстой
• 16.1 Синтаксис
• 16.2 Исправлено в Java 7 (2011)
• 16.3 Модель
• 16.4 Библиотека
• 16.5 Обсуждение
17 Почему Backbase отстой
18 Почему XML отстой
19 Почему отстой XSLT/XPath
20 Почему CSS отстой
• 20.1 Исправлено в CSS3
21 Почему Scala отстой
22 Почему Haskell отстой
23 Почему Closure отстой
24 Почему Go отстой
• 24.1 Базовые средства программирования (базовый язык)
• 24.2 Взаимосовместимость
• 24.3 Стандартная библиотека
• 24.4 Набор инструментальных средств
• 24.5 Сообщество
25 Почему Rust отстой
• 25.1 Безопасность
• 25.2 Синтаксис
• 25.3 Конструкция API и система типов
• 25.4 Сообщество
• 25.5 Набор инструментальных средств
Почему JavaScript отстой
Учтите, что некоторые положения относятся не к самому JavaScript, а к программным интерфейсам веб-приложений (https://developer.mozilla.org/en/docs/Web/API).
Плохая конструкция
• Каждый скрипт исполняется в едином глобальном пространстве имён, доступ в которое возможен в браузерах с оконным объектом.
• Camel-регистр никуда не годится:
XMLHttpRequest
HTMLHRElement
Функциональный TypeScript
Когда обсуждается функциональное программирование, часто разговор заходит о механизме, а не о базовых принципах. Функциональное программирование, это не про монады или моноиды, это в первую очередь про написание программ с использованием обобщённых функций. Эта статья о применнии функционального мышления в рефакторинге TypeScript кода.
Примечание от переводчика: весь код для удобства я оформил в репозитории.
Для этого мы будем использовать три техники:
- функции вместо примитивов
- трансформация данных через pipeline
- выделение общих (generic) функций
Начнём же!
Советы западных консалтинговых компаний. Часть 1, теоретическая

В статье «Как новые руководители разрушают доверенные им компании» мы остановились на роли в этом процессе иностранных консалтинговых фирм.
Большинству читателей показалось спорным утверждение, что консалты работают исключительно в интересах бизнеса своих стран, а для российских компаний их советы, мягко говоря, не приносят пользы.
Хотя никто и не будет спорить, что полезные советы по ведению государственных дел или бизнеса диссонируют с зажиманием РФ по всем фронтам. Санкции, «санитарный кордон» из цветных революций, запрет банкам покупать облигации РФ, снижение рейтинга для страны в целом и по предприятиям в частности, обещания порвать экономику в клочья из уст Президента США, прижали «большой спорт» и даже паралимпийцев не пожалели. Госдеп выпустил инструкцию о запрете работы компаний с Россией, а Вице-Президент США Байден обещает кибератаки.
Почему же тогда западные спецслужбы, которые активно используются даже в экономическом шпионаже между союзниками, до сих пор по-дружески не поговорили с руководством консалтинговых компаний, не объяснили им, с кем дружить надо, а с кем – нет? Ну конечно же они поговорили, правда, немного не так.
Но всё же, как эти консалты умудряются «угодить и нашим и вашим»?
Как они ведут дела так, что их деятельность одновременно одобряют и руководители компаний РФ, и западные спецслужбы?
Это не магия и не искусство, это — отработанная технология.
В МТИ разработали 3D-печать корпусов роботов с амортизацией

Большинство моделей современных роботов — сложные системы с большим количеством составных частей и электронных компонентов. Вывести из строя такого робота довольно просто. Хватит сильного удара или падения с относительно небольшой высоты. Для того, чтобы защитить свои устройства от поломки в результате механического воздействия, многие производители используют бронирование корпуса или его амортизацию.
В Массачусетском технологическом институте предложили новый способ защиты — не броню, а распечатанную на 3D-принтере «кожу», которая поглощает подавляющее большинство ударов. Это не панацея, но такая «кожа» защищает уязвимые электронные внутренности робота гораздо лучше, чем традиционные материалы.
Двенадцать полезных Chrome DevTools Tips
Некоторые из DevTools функций вы возможно не знали. Я буду очень счастлив, если хотя бы одну из них вы найдете для себя полезной.
(В статье ниже присутствуют анимированные гифги, которые начинают раздражать после первого цикла. Поэтому я советую открыть dev tools и удалить DOM ноды, которые отвечают за изображения.)
Итак, поехали:
Копируем переменную в буфер обмена
Об этой возможности я узнал из комментариев, и считаю ее достаточно полезной чтобы быть описанной в начале. Иногда бывает нужно скопировать содержимое переменной в буфер обмена. Например html код или json объект. Для этого можно использовать copy функцию.
copy (someVariable)
Теперь текстовое представление переменной скопировано в буфер обмена.
Запуск NodeJS-приложения на Android
Подарок на 1 сентября всем поклонникам цифровой схемотехники и архитектуры компьютера

Господа! Сегодня на 1 сентября, в День Знаний, группа из украинских преподавателей вузов, их аспиранток, а также российских инженеров, решили, по согласованию с британскими издателями Elsevier через компанию Imagination Technologies, сделать небольшой подарок всем учителям компьютерной архитектуры и цифровой схемотехники, особенно тем, которые используют популярный учебник Дэвида Харриса и Сары Харрис.
Просто нажмите вот на эту ссылку и вы получите zip-файл с слайдами для чтения лекций по этому учебнику на русском языке. Причем без регистрации, которая требуется для загрузки учебника как такового.
Слайды могут быть полезны не только учителям, но и любым интересующимся, кто хочет узнать, как своими руками построить микропроцессор, но не хочет пробиваться через 1600 планшетных страниц книги.
Итого, вырезка из слайдов, чтобы вы поняли, о чем идет речь:
Небольшой скрипт для отслеживания цен avito из Google Spreadsheet
Логика такая — в цикле бежим по ячейкам таблицы с адресами и запрашиваем странички. Из полученных страниц получаем цену и подставляем в соседние ячейки. Запуск скрипта через пункт меню Avito -> Update Prices.

(наименнннование sic!)
Интервью с мамой, банковским программистом на COBOL'е
Фото из Гугла, это не мама автора
Моя мама начала работать в одном из крупнейших банков ЕС ещё до моего рождения, а я всегда был неравнодушен к её специальности, особенно в последние годы, поскольку сам стал программистом. Меня много раз просили взять у нее интервью, и я, наконец, решил это сделать.
Объясню немного
Мир банковского программного обеспечения — это другая вселенная. Она сильно отличается от той, к которой привыкло большинство из нас. Я публикую этот пост на HN и на Reddit. Публикую интервью не в виде вопросов-ответов, а в виде рассказа. Я добавил некоторые вопросы и ответы в нижнюю часть поста.
1991
Год, когда она начала внутреннее обучение в банке Nordea, который тогда назывался Nordbanken (Северный банк). В 2001 году его переименовали в Nordea. Во время обучения она должна была проходить различные тесты, в первую очередь тест IQ, чтобы показать, что она обладает интеллектом, достаточным для работы в этой области. Тест на психологическую устойчивость — что у неё достаточно нервов для этой специфической работы и тест на многозадачность, который она завалила с оценкой 22/100. Остальные тесты она прошла успешно и заняла одну из 16 доступных позиций.
Должность звучала «как программист мэйнфреймов IBM на языке COBOL», и до сих пор, уже 25 лет, моя мама работает на этой должности в том же банке.
Эта позиция в банке самая важная, по крайней мере, с технической точки зрения. Если, скажем, мама и члены её команды одновременно бросят работу, банк разорится в лучшем случае в течение нескольких недель. Её коллектив работает посменно с круглосуточной доступностью.
История URL'а: домен, протокол и порт
11 января 1982 года двадцать два специалиста по информатике встретились, чтобы обсудить «компьютерную почту» (ныне известную как "электронная почта"). Среди участников был будущий основатель Sun Microsystems, парень, который сделал Zork, чувак, создавший NTP, и еще один, который убедил правительство платить за Unix. Перед ними стояла задача решить проблему: в ARPANET было 455 хостов, и ситуация выходила из под контроля.
Проблема возникла из-за того, что ARPANET переходил с оригинального протокола NCP на протокол TCP/IP, на котором сейчас существует Интернет. После такого перехода быстро должно было появиться множество объединенных сетей (inter...net), которым требуется иерархическая система доменов, чтобы ARPANET мог резолвить свои домены, а другие сети — свои.
Information
- Rating
- 3,928-th
- Location
- Санкт-Петербург, Санкт-Петербург и область, Россия
- Date of birth
- Registered
- Activity