Случайны выбор дневника Раскрыть/свернуть полный список возможностей


Найдено 4471 сообщений
Cообщения с меткой

плагин - Самое интересное в блогах

Следующие 30  »
SoftLabirint

Red Giant Trapcode Suite 14.0.0 (ENG) » SoftLabirint.Ru: Скачать бесплатно и без регистрации - Самые Популярные Новости Интернета

Воскресенье, 06 Августа 2017 г. 21:30 (ссылка)
softlabirint.ru/soft/graphi...0-eng.html


Red Giant Trapcode Suite 14.0.0 (ENG)

Trapcode Suite 14 — коллекция из 11 удобных полнофункциональных инструментов и реалистичные эффекты для высококачественного 3D-дизайна и графики. Позволяет создавать заголовки, анимированные фоны, логотипы, разрабатывать эффекты Visual Effects и другие 3D-элементы в среде After Effects (системы частиц, объёмный свет, органические формы).



В состав Trapcode Suite 14 входят следующие плагины:

• Trapcode Particular — обеспечивает органические 3D эффекты частиц, сложные элементы моушн графики и многое другое. Включает в себя обновлённный Effects Builder — визуальный редактор частиц с множеством пресетов и предпросмотром; более 180 пресетов; введена новая система графиков Graphs; больше частиц — 30 миллионов частиц (до 20 млн. на предпросмотре).

• Trapcode Form — включает 3D-сетки, сферы и объекты из частиц, обеспечивает генерацию частиц с импортированными моделями OBJ; анимационные эффекты в виде огня, дыма, песка, ветра; растворение текста, логотипа и других 3D объектов; анимация частиц с помощью звука. Добавлен новый тип частиц: Square (квадрат).

• Trapcode Tao — новый плагин для анимированной 3D-геометрии по заданной траектории. Обеспечивает создание анимированных геометрических форм, лент и т.д., 3D-геометрию на основе масок, 3D света и путей; фотореалистичные текстуры и отражения; создание циклической анимации; быстрый рендеринг самой сложной геометрии при помощи GPU ускорения.

• Trapcode Mir — плагин для обработки 3D-поверхности, ландшафта, структур. Обновления в плагине Trapcode Mir: создание гладких поверхностей и абстрактных фигур; создание сетки в виде спирали, деформация поверхности с помощи спиралевидных вращений; бесшовные циклические фоны на основе фракталов; отображение затененных поверхностей в виде полигонов или вершин; выбор между четырехугольными или треугольными полигонами; 3 новых режима выборки текстур: Nearest, Linear, Solid Face; добавление вторичных сеток на Mir поверхности; 4 вида фрактальных искажений: Regular, Multi, SmoothRidge, MultiSmoothRidge.

• Trapcode Shine — плагин, обеспечивающий сверхбыстрые эффекты трехмерных световых лучей. Добавлены симуляция реалистичного 3D света; объемное освещение текста, объекта или футажа; новые эффекты Fractal Noise для создания «задымленного света»; 35 готовых пресета.

• Trapcode Lux — эффект «видимого» света в полупрозрачной среде. Плагин позволяет создавать объемный точечный и направленный 3D- свет, придавать драму и реализм 3D-композициям.

• Trapcode 3D Stroke — плагин для органических 3D-фигур и линий на основе масок. Позволяет создавать объемные линии, логотипы, текст на основе контуров масок. Включает разнообразные пресеты фигур, обеспечивает контроль над формой, цветом и другими параметрами.

• Trapcode Echospace — обеспечивает дублирование и контроль анимированных слоев, автоматизацию сложной многослойной 3D-анимации; управление слоями без выражений; создание эффекта «падающего домино» или «карточного домика».

• Trapcode Starglow — плагин для создания эффектов стилизованного сияния, блеска и мерцания. Включает 49 пресетов.

• Trapcode Sound Keys — плагин для синхронизации видео с аудио. Позволяет визуализировать любой звук и музыку, анализирует звук и генерацию ключевых кадров для создания анимации.

• Trapcode Horizon — представляет реалистичные бесконечные фоны. Позволяет создавать фоны в 360 градусов, использовать изображения или цветные градиенты для фона, обеспечивает полный контроль над движением и полем зрения 3D-камеры.



What’s New in Red Giant Trapcode Suite 14:

• NEW - Trapcode Particular 3.0

Organic 3D particle effects, complex motion graphics elements and more. Trapcode Particular 3.0 features GPU acceleration for massive speed boosts, multiple particle systems in the same 3D space, the ability to use 3D models as particle emitters, and a new overhauled Designer that makes the building and previewing of effects an intuitive and creative experience, amongst other new features in high-demand. Experience the new Trapcode Particular 3.0.

With a library of over 60 3D objects/models, an expanded library of more than 270 sprites, and 210 new presets (over 300 in total), Trapcode Particular continues to offer motion graphics artists the most robust set of options for particle effects.

What’s new in Trapcode Particular 3.0

GPU-Accelerated. Get fast feedback with Trapcode Particular’s new GPU Acceleration through OpenGL. Depending on system and setup, users can see speed boosts of up to 4X or more over previous versions.

Designer. New in Particular 3, the Designer respects the AE comp size, bringing in the composition and camera info. Preview your particle layout with camera and emitter position controls.

Multiple Systems. For the first time ever, explore endless creative possibilities when combining multiple particle systems in the same 3D space. Create beautiful, complex effects through the interaction of different systems, all within one instance of Particular. Emitters in Multi-system setups can share parameter settings (such as turbulence, gravity and more), and can be saved as a single preset.

OBJs as Emitters. Give your particle systems a new dimension by using 3D models and animated OBJ sequences as particle emitters. Use your own 3D models or choose from Particular’s library of over 60 OBJs which can be easily loaded directly within After Effects or in the Designer via the new OBJ Loading Panel.

Sprites and Polygons. Use any composition image as a particle by assigning it to a 2D sprite or textured polygon - still and animated sprite images can be easily loaded directly within After Effects or in the Designer via the new Sprite Loading Panel.

Aux System. Spawn new child particles through Particular’s Aux system. Particular 3’s updated Aux system now includes the ability to add custom particles for even more variation, as well as keyframeable parameters for more control.

300+ Presets. Particular 3 includes over 210 new presets that show off powerful features like multiple systems, OBJ emitters and more - create fire, spaceflight, fireworks, muzzle flashes, explosions, smoke and more. Save presets and share them across your facility.



• NEW - Trapcode Form 3.0

Immortal Particle Grids and 3D Objects. Trapcode Form 3 now features the same Designer found in Particular, which gives instant visual feedback and makes the process of building and previewing effects both intuitive and creative. Form offers users an expansive set of tools to work with, including over 60 3D Objects/Models, 270 New Sprites and Polygons, and over 70 Presets for fast motion graphics creation. Experience the new Trapcode Form 3.0.

What’s new in Trapcode Form 3.0

Designer. Create particle grids visually in an intuitive environment. Add adjustable blocks with preset settings and styles for emitters, particles and more. Or add complete, customizable particle effects with a single click.

3D Models. Bring your motion graphics into a new dimension by using 3D models and animated OBJ sequences as particle grids. Use your own 3D models or choose from Form’s library of over 60 OBJs which can be easily loaded directly within After Effects or in the Designer via the new OBJ Loading Panel.

Sprites and Polygons. Use any composition image as a particle by assigning it to a 2D sprite or textured polygon - still and animated sprite images can be easily loaded directly within After Effects or in the Designer via the new Sprite Loading Panel.

More Control. Animate controls over time for the color, size, opacity, and dispersion of your particles, as well as their fractal and audio reactivity with the newly updated keyframeable graphing system.

70+ Presets. Form 3 Includes over 70 new fully-customizable Designer presets for creating backgrounds and motion design elements.



• UPDATED - Trapcode Tao 1.2

Create 3D geometries animated along a path. A new depth-of-field effect makes it easy to create camera-realistic blurs for your Tao objects, based on their distance from the After Effects 3D camera. This is a free update for Trapcode Tao users.

Additional Tools in Red Giant Trapcode Suite 14

The Red Giant Trapcode Suite offers 11 tools in total covering the full range of needs for motion graphics artists. Additional tools include:

· Trapcode Mir 2.1: 3D Surfaces, Terrains and Wireframes in After Effects

· Trapcode Shine 2: Ultra-fast, 3D light ray effects

· Trapcode Lux 1.4: After Effects lights made visible

· Trapcode 3D Stroke 2.6: Organic 3D shapes and lines from your masks

Trapcode Echospace 1.1: Instantly clone and offset animated layers

Trapcode Starglow 1.7: Stylized glints and glows for motion graphics and text

Trapcode Sound Keys 1.4: Instant audio-driven motion graphics in After Effects

Trapcode Horizon 1.1: Infinite backgrounds for After Effects 3D

 



Red Giant Trapcode Suite 14.0.0 (ENG)



Red Giant Trapcode Suite 14.0.0 (ENG)



Red Giant Trapcode Suite 14.0.0 (ENG)






Системные требования:

- Windows 7 - 10 (64-bit)

- Adobe Creative Suite CC 2017-2014

- 4 GB of RAM

- 64-bit Processor



Название: Red Giant Trapcode Suite 14.0.0 (ENG)

Год выпуска: 2017

Разработчик: redgiant.com

Платформа/ОС: Windows® 7/8/8.1/10 (64-bit)

Язык интерфейса: English

Лекарство: В комплекте

Размер: 730.84 MB



Скачать: Red Giant Trapcode Suite 14.0.0 (ENG) >>>



 



 

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[Из песочницы] Пусть интернет прогнётся под нас

Четверг, 20 Июля 2017 г. 13:51 (ссылка)





Если ты давно хотел сделать Интернет чуточку лучше (для себя), но всё было лень некогда, то сегодня твой счастливый день. За 21 шаг я покажу тебе как достичь этой заветной цели.



Бесплатный бонус! В добавок к интернету, делаем лучше и Google search. Может, Google оценит идею и предложит руку и сердце (если что, я согласная, даже учебу брошу ради него).





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



Плагин позволят легко внедрять собственный JavaScript/CSS на любые страницы просматриваемые в браузере. Т.е. этакий chrome extensions API версия lite.



В начале весны нам дали задание для курсовой работы по предмету «Интернет технологии».

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



TL;DR



Если кому-то не хочется читать про все 21 шага, то можно обойтись пятью.



Код плагина можно загрузить с GitHub.



И после этого:




  1. Открыть chrome://extensions в Хром браузере

  2. Поставить галочку напротив «Developer mode»

  3. Нажать на «Load unpacked extensions» и выбрать директорию в которую сохранили исходный код

  4. После этого для плагина «CustomActions» выбрать «options»

  5. На форме опций, нажать «Demo config» и «Save»







Вот и все, можно пользоваться, например открыть google.com или Хабр, поправить конфигурацию или поиграться со скриптами.



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



Если верить исследованиям британских ученных, то сферический интернет пользователь спасаясь от объема информации которую хотят на него вывалить, создает себе уютный интернет мирок из 5-10 сайтов которые посещает более-менее постоянно, а в «большой» интернет выходит случайно и поскорее бежит обратно.



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



Но еще печальнее было осознать, то что мои 9-ть с половиной сайтов не идеальны. Поэтому в рамках курсовой работы было решено сделать их (ну заодно и остальной интернет) лучше.



В большинстве случаев, для этого требовалось написать всего 3-4 строчки на JavaScript и/или 2-3 на CSS.



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



Определяем наши хотелки:




  1. При открытии сайта внедряется пользовательский Ж-скрипт ассоциированный с этим сайтом

  2. Пользовательский скрипт конфигурируется на странице предпочтений

  3. В тулбар браузера добавляем кнопочку для быстрого вызова конфигурации



Техзадание определено, начинаю кодить.



Шаг 1.



Читаю getstarted до просветления, или посинения, смотря с какой стороны посмотреть.



Шаг 2.



Определяю структуру проекта



options.html

options.js



popup.html

popup.js



background.js



manifest.json



icon.png

images

images\icon128.png

images\icon16.png

images\icon48.png



Шаг 3.



Создаю манифест.



{
"name": "CustomActions",
"description": "plugin for CustomActions",
"version": "1.0",
"background" : {
"scripts": ["background.js"]
},
"icons":
{
"128": "images/icon128.png",
"16": "images/icon16.png",
"48": "images/icon48.png"
},
"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'",
"permissions": [
"webRequest", "tabs", "activeTab", "http://*/*", "https://*/*", "storage", "unlimitedStorage", "contextMenus", ""
],
"browser_action": {
"default_title": "Custom Actions Injection plugin",
"default_icon": "icon.png",
"default_popup": "popup.html"
},
"commands": {
"cmd-exec-1": {
"suggested_key": {
"default": "Ctrl+Q"
},
"description": "Custom Action #1"
},
"cmd-exec-2": {
"suggested_key": {
"default": "Ctrl+B"
},
"description": "Custom Action #2"
},
"cmd-exec-3": {
"suggested_key": {
"default": "Ctrl+Y"
},
"description": "Custom Action #3"
}
},
"options_page": "options.html",
"manifest_version": 2
}


Шаг 4.



Работаю над формой options.html.



Не зря посещала предыдущую сессию. Пригодились знания по knockout.js из курса «Дизайн Веб-страниц 2.0»



Добавляю файлы knockout-3.4.1.js и knockout.mapping-latest.js в структуру проекта.



Ничего не работает. Копаю. Не помогает. Рою. Нарыла что chrome extensions не любит knockout.

Заставляю полюбить, обновляю манифест.



"content_security_policy": "script-src 'self' 'unsafe-eval'; object-src 'self'"


Шаг 5.



После боли и страданий в попытке реализовать пользовательский интерфейс приходит озарение.



Тянем всё из chrome://settings



Встали на плечи гиганта и дело пошло:







Шаг 6.



Надо сохранять данные. Читаю про chrome.storage

Дилемма выбора между chrome.storage.sync и chrome.storage.local



chrome.storage.sync привлекательней, но жёсткие лимиты.



Еще одно озарение – у меня же тестовый проект, так что local — это наше всё.

Правлю манифест чтобы не было проблем с лимитами.



И пользую chrome.storage.local.set для сохранения конфигурации.



            chrome.storage.local.set(items, function () {
self.status('Items saved.');
setTimeout(function () { self.status(''); }, 750);
});


Шаг 7.



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



Ага, сладкая парочка chrome.runtime.sendMessage:

            chrome.storage.local.set(items, function () {
self.status('Items saved.');
setTimeout(function () { self.status(''); }, 750);

chrome.runtime.sendMessage({ command: 'refreshConfig' });
});


и chrome.runtime.onMessage:

            chrome.runtime.onMessage.addListener(
function (request, sender, sendResponse) {
onCommand(request.command);
});


Шаг 8.



Открываю popup.js. Закрываю. Снова открываю. И так 7 раз. Ничего не понятно.



Это я одна такая или где? Наступает долгожданное утро и тут споткнулась о samples — спасибо вам невидимые труженики гугла.



Разгребаю завалы драгоценных знаний. В конце концов нахожу нужный пример и использую волшебную комбинацию ACV ( Ctrl-A / Ctrl-C / Ctrl-V ). 13 часов спустя — дело сделано.



Шаг 9.



Пора приступать к главной части, перехват и внедрение.



Перехватчик — chrome.tabs.onUpdated:

chrome.tabs.onUpdated.addListener(function (tabId, changeInfo, tab) {
var url = '';
if (changeInfo && changeInfo.url)
url = changeInfo.url.toLowerCase();
else if (tab && tab.url)
url = tab.url.toLowerCase();

// . . .
});


и внедренец — chrome.tabs.executeScript:


if (item.sourceType == 'InjectCSS')
chrome.tabs.insertCSS(item.output == 'Owner tab' ? tabId : null, { code: item.data });
else
chrome.tabs.executeScript(item.output == 'Owner tab' ? tabId : null, { code: item.source });


Все прошло легче чем могло, но всё же дольше чем хотелось.



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



Шаг 10.



Всё готово. Можно идти за честно заработанной пятеркой…



… не так быстро. Вместо пятерки принесла кучу замечаний и улучшений.



Шаг 11.



Начнем с самого легкого, в popup.js добавляю поддержку функции «добавить текущий сайт»



Нет так легко как кажется, надо передать данные из popup.js в options.js.



Потратила 3 часа пытаясь поймать messages, сохранить в extension storage и прочитать обратно, но в конце концов решила, что умный в гору не пойдет, он её обойдет.



Query string – наш ответ этой горе.



Шаг 12.



Следующая функция посложнее, добавить поддержку context menu.

Примеры снова спасают. Всё оказывается проще чем могло бы — chrome.contextMenus.create:

chrome.contextMenus.create({ id: item.id, 
contexts: ["page", "frame", "selection"],
title: item.name,
onclick: function (info, tab) {
onCommand(info.menuItemId);
}
});


Шаг 13.



Не верю в приметы, но оказался не счастливый шаг.



Надо сделать поддержку вызова через горячие клавиши.



Всё делаю как в примерах, правлю манифест:

"commands": {
"cmd-exec-1": {
"suggested_key": {
"default": "Ctrl+Q"
},
"description": "Custom Action #1"
}
}


и использую chrome.commands.onCommand:

chrome.commands.onCommand.addListener(onCommand);


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





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



Шаг 14.



У нашего завлаба, жена преподаватель английского. Требует перевести интерфейс. Придется учить английский.



Технологии приходят на помощь. Гугл транслейт vs преподаватель английского – счёт 1: 0 в пользу гугла животворящего!



Шаг 15.



Опять идем за пятёркой, но в душе уже согласна на четвёрку.



Возвращаюсь с новым словом рефакторинг (до этого знала только слово ФАКторинг. Особенно часто говорила его в начале проекта).



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



Похоже у завлаба в добавок к английской жене, есть любовница с кафедры UX/UI.

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



Шаг 16.



Рефакторинг закончен. Удивительно как много багов скрывается под покровом первоначального варианта кода, надо бы получше запомнить это слово.



Шаг 17.



Добавляю пример для lorem ipsum. Кто это посоветовал? Учитель латыни?



Требование: при нажатии на комбинацию клавиш заполняем поля на форме предложениями языка lorem.



Сделала, вроде работает.



    var loremDemoData = {
names: [
{ firstName: "Victoria", lastName: "Veit", email: "Victoria.Veit@noreply.ru" },
{ firstName: "Gisele", lastName: "Gillard", email: "Gisele.Gillard@noreply.ru" },
{ firstName: "Edmund", lastName: "Edelson", email: "Edmund.Edelson@noreply.ru" },
{ firstName: "Joey", lastName: "Janelle", email: "Joey.Janelle@noreply.ru" }
],
lorem: [
"Orem ipsum dolor sit amet, consectetur adipiscing elit. Etiam sit amet purus condimentum, porta nulla sed, consequat felis. Phasellus quis condimentum odio. Maecenas scelerisque vehicula leo, sit amet tristique tellus molestie sed. Aenean lacus lorem, feugiat semper imperdiet a, vehicula ac orci. Pellentesque ac nisi commodo, pellentesque lorem quis, fringilla tellus. Fusce bibendum erat sit amet libero maximus rutrum. Integer dictum nibh sodales efficitur congue. Mauris nulla libero, hendrerit eget dictum nec, aliquam eu mi. Donec ipsum nisi, bibendum et consequat eu, imperdiet eget nisl. Duis tincidunt nibh et nibh tempor, quis mattis mi vulputate.",
"Suspendisse quis eleifend lectus. Sed nec vehicula elit. Praesent ac sollicitudin diam. Nam at venenatis lectus. Fusce condimentum tortor nec augue vestibulum tempus. Nullam faucibus vehicula lorem, et mollis justo dapibus a. Proin sagittis velit in lectus vehicula, id eleifend urna hendrerit. Integer rhoncus dui sed enim sollicitudin, a finibus magna fermentum.",
"Fusce at urna vitae magna semper scelerisque id volutpat tellus. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Sed ut elit nisl. Duis sit amet ante accumsan nibh ultricies pharetra at vitae purus. Donec a felis eget ipsum euismod tempus. Donec elementum vel tortor vel efficitur. Nunc tristique, magna hendrerit sagittis placerat, odio sem commodo ligula, eu aliquam arcu elit sit amet diam. Etiam ultrices vehicula auctor."
],
loremShort: [
"Morbi nec sollicitudin augue.",
"Suspendisse sagittis fringilla aliquam.",
"Curabitur malesuada dolor.",
"Praesent quis lacus neque. Duis vitae vehicula felis"
]
};


        function getRandomInt(min, max) {
return Math.floor(Math.random() * (max - min)) + min;
}

var name = data.names[getRandomInt(0, data.names.length)];
var hadEmail = false;

var t = document.querySelectorAll('input[type=text], textarea');
for (var i = 0, l = t.length; i < l; i++) {
var e = t[i];
var ro = e.getAttribute('readonly');

if (e.disabled || ro === '' || ro === 'true' || ro == '1')
continue;

var loremTxt = data.lorem[getRandomInt(0, data.lorem.length)];
var loremShort = data.loremShort[getRandomInt(0, data.loremShort.length)];

var na = ('' + e.name).toLowerCase();
var ia = ('' + e.id).toLowerCase();

if (na == 'firstname' || ia == 'firstname' || na == 'fname' || ia == 'fname')
e.value = name.firstName;
else if (na == 'lastname' || ia == 'lastname' || na == 'lname' || ia == 'lname')
e.value = name.lastName;
else if (!hadEmail && (na.indexOf('email') >= 0 || ia.indexOf('email') >= 0)) {
e.value = name.email;
hadEmail = true;
} else {
e.value = (e.tagName == 'TEXTAREA' ? loremTxt : loremShort);
}
}


Шаг 18.



Следующий пример для сайта habrahabr.ru



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



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



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



На предложение заменить создание статьи приемом правильных таблеток, ответил отказом. В конце концов согласился на таблетки, но с условием написании статьи. Сижу. Пишу.



Оказалось, что статью написать легче, чем код. Может чукча не читатель, а писатель?



{
"showCompanies": [
"yandex",
"mosigra"
],
"hideCompanies": [
"hashflare"
],
"hideHubs": [
"lib"
]
}


        function hideParent(el) {
if (el.classList && el.classList.contains('post_teaser'))
el.style.display = 'none';
else if (el.parentElement)
hideParent(el.parentElement);
}

function sanitizeParent(el) {
if (el.classList && el.classList.contains('post_teaser')) {
el.querySelectorAll('img').forEach(function (img) { img.style.display = 'none'; });
el.querySelectorAll('.post__body_crop').forEach(function (chld) {
chld.style.maxHeight = '4em';
chld.style.overflow = 'hidden';

el.addEventListener('mouseover', function () {
chld.style.maxHeight = "inherit"; chl
d.querySelectorAll('img').forEach(function (img) {
img.style.display = 'block';
});
}, false);

el.addEventListener('mouseout', function () {
chld.style.maxHeight = "4em";
chld.querySelectorAll('img').forEach(function (img) {
img.style.display = 'none';
});
}, false);

});

el.querySelectorAll('.post__title a').forEach(function (titl) { titl.style.color = '#707040'; });

} else if (el.parentElement)
sanitizeParent(el.parentElement);
}

document.querySelectorAll('a[href*="https://geektimes.ru/hub/"]').forEach(function (el) {
var hub = el.getAttribute('href').replace(/^.*\.ru\/hub\//, '').replace(/\/.*$/, '');
if (data && data.hideHubs && data.hideHubs.indexOf(hub) >= 0)
hideParent(el);
});

document.querySelectorAll('a[href*="https://geektimes.ru/company/"], a[href*="https://habrahabr.ru/company/"]').forEach(function (el) {
var company = el.getAttribute('href').replace(/^.*\.ru\/company\//, '').replace(/\/.*$/, '');
if (data) {
if (data.hideCompanies && data.hideCompanies.indexOf(company) >= 0) {
hideParent(el);
return;
} else if (data.showCompanies && data.showCompanies.indexOf(company) >= 0)
return;
}

sanitizeParent(el);
});


Шаг 19.



Бродя по просторам интернета, увидела интересную идею и решила реализовать её в качестве примера для google search.



Может завлаб оценит инициативу и перестанет придираться по пустякам.



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



После примера для Харба, это пара пустяков.



    var googleDemoData = [
{ "keywords": "python", "title": "python" },
{ "keywords": "javascript", "title": "javascript" },
{ "keywords": "php", "title": "php" },
{ "keywords": "mysql", "title": "mysql" },
{ "keywords": "site:stackoverflow.com", "title": "at stackoverflow.com" },
{ "keywords": "site:developer.mozilla.org", "title": "at developer.mozilla.org" },
{ "keywords": "site:developer.chrome.com", "title": "at developer.chrome.com" },
{ "keywords": "site:habrahabr.ru", "title": "at habrahabr.ru" }
];


        function ggSetTimeRange() {
var elemId = this.getAttribute('data-range');
var timeLimit = document.querySelector('#' + elemId + ' a');
if (timeLimit)
timeLimit.click();
}

function ggReplaceAndSearch() {
var kw = this.getAttribute('data-search');

if (document.location.href.indexOf('chrome-search://') == 0 || document.location.href.indexOf('https://www.google.com/_/chrome/newtab?') == 0) {
document.location.href = "https://www.google.com/search?q=" + encodeURIComponent(kw);
return;
}

var inputText = document.querySelector('input[name="q"]');
if (inputText) {
setTimeout(function () {

var keyword = '' + inputText.value;
if (kw.indexOf('site:') >= 0 && keyword.indexOf('site:') >= 0) {
keyword = keyword.replace(/ *site:[^ ]+/, '');
}
else if (keyword.indexOf(kw) >= 0)
return;

kw = ' ' + kw;

if (kw.indexOf('site:') >= 0) {
inputText.value = keyword + ' ' + kw;

setTimeout(function () {
var btn = document.querySelector('form[action="/search"]');
if (btn) {
btn.submit();
} else {
btn = document.querySelector('button[name="btnK"]');
if (btn) {
btn.click();
}
}
}, 100);
}
else {
inputText.value = kw + ' ' + keyword;

var strLength = ('' + inputText.value).length;
inputText.setSelectionRange(strLength, strLength);
}
}, 200);

setTimeout(function () {
inputText.focus();
}, 100);

};
};

var ggHelper = document.getElementById('ggHelper');
if (!ggHelper) {
var helperHtml = '
' +
'
';

var bodyTag = document.querySelector('body');
if (bodyTag) {
var e = document.createElement('div');
e.innerHTML = helperHtml;
bodyTag.appendChild(e.firstChild);

document.querySelectorAll('#ggHelper .gg-keyword').forEach(function (el) {
el.addEventListener('click', ggReplaceAndSearch);
});

document.querySelectorAll('#ggHelper .gg-range').forEach(function (el) {
el.addEventListener('click', ggSetTimeRange);
});
}
}


Шаг 20.



По заветам хабра, отправила код на ревью группе экспертов. Вердикт – всё переписать. Плачу, уже навзрыд.



После переписки, нашла еще не менее 6-ти багов. Ревью – это сила! Надо запомнить и это слово.

Стало приятно смотреть на код, начала даже понимать что и зачем там написано.



Шаг 21.



Все готово.



Иду за пятеркой, рассчитываю на четверку, но согласна на тройку. Больше сил нету.

Три недели жизни выброшены на борьбу с современными технологиями.



Пожелайте удачи!



P.S.:. В конце хотелось бы выразить сердечную благодарность создателям и пользователям сайта stackoverflow.com



Не представляю как выглядела работа до его создания. А до появления веба (слава ТНБ, я родилась уже после его создания веба), профессия программиста наверное была одной из самых депрессивных и с самым высоким уровнем суицидов на единицу площади.



Даже сейчас, иногда всё еще хочется вырвать всю растительность на голове, а иногда и того похуже.



P.P.S.:. Критика приветствуется. Любая.



Update 1. Выставили оценки, мне 4++.



Один бал завлаб вычел с формулировкой: «слишком много плагиата с StackOverflow», но плюс добавил за статью на Хабре. На вопросы по поводу второго плюса, загадочно ухмыляется в усы.



Update 2. Две радостные новости.



Первая. Преподаватель по сетевым технологиям обещал поставить экзамен автоматом если добавлю функцию «поделиться с другом». Группа экспретов говорила незнакомые слова.



Сижу, курю node.js, походу придется начать не только курить, но и пить. Без бутылки не разобраться.



Голова в облаках. На Хероку оно мне надо? Может лучше сдать как обычно — шпаргалки и зубрило. А то здоровье дороже.



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



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



Озвучьте ваши самые смелые фантазии.



Третья. Если так пойдет, может и диплом на чём-нибудь прокатит?



Update 3. Ура! Первая зарплата в долларах. По программе work & travel изучаю английский на кухне местного макдональдса.



Первая выученная идиома: «маньяна на траваху». Чувствую, что к концу лета буду флюент.



Умножаю доллары на 60, количество нулей конкурирует с лучшими предложениями для программистов в нашем областном центре. А у нас в райцентре, надо вводить коэффициент N.



Нет N мало, надо брать M.



Группа экспертов, молча завидует издалека, но намекает что по приезду будем гудеть. Требуют привезти дудку. Но тут тем кому нету 21 года, музыкальные инструменты не продают, не знаю что и делать.



Много думаю.



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



До скорой встречи!
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/333776/

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
ОльгаВлади

Установка плагина Unlimited 2.0.3 в фотошоп SC5

Суббота, 16 Июля 2017 г. 01:33 (ссылка)

Это цитата сообщения Анточка Оригинальное сообщение

Установка плагина Unlimited 2.0.3 в фотошоп SC5




Всем привет!

Как и обещала, урок по установке плагина Unlimited 2.0.3 в фотошоп SC5











P.S. Улучшить звук пока не получается. Не могу понять причину. просматриваю видео сразу после записи на компе - нет проблем. После загрузки на ютуб - звук уменьшается. Закрадывается такая мысль, что ютуб режет качество звука. Может я и не права, но создалось именно такое впечатление. Видео записывала уже другой программой, а в итоге лучше не стало.

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
Spellbinder_Odesser

Помогите, пожалуйста, решить проблему с флеш-плеером

Понедельник, 19 Июня 2017 г. 11:51 (ссылка)


Я никак не могу обновить у бабушки Flash Player (делаю удаленно из другого города). При установке выдает ошибку (примерно после 50% установки). Я уже полностью удалил имеющийся, но все равно то же самое. И теперь у нее вообще никакого Флеш-плеера. Что происходит, как его установить? Windows XP.


Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество
rss_rss_hh_new

[recovery mode] Новый плагин для гарнитур Sennheiser и бесплатное обновление до 3CX v15.5

Суббота, 18 Июня 2017 г. 01:36 (ссылка)

Плагин гарнитур Sennheiser для клиента 3CX



Представляем новый плагин для работы программного клиента 3CX для Windows с гарнитурами и спикерфонами известной немецкой компании Sennheiser. Над разработкой плагина 3CX и Sennheiser работали совместно, поэтому он будет официально поддерживаться для всех версий клиента 3CX, начиная с  v15. При очередном обновлении модельного ряда гарнитур или клиента, плагин будет совместно тестироваться и обновляться.



Возможности плагина Sennheiser




  • Автоматическое поднятие трубки (технология EHS — remote electronic hook switching) с клиента 3CX

  • Полное управление сфтфоном с гарнитуры – ответ / завершение вызова, регулировка громкости и отключение микрофона

  • Одновременная поддержка Skype for Business / Microsoft Lync и клиента 3CX



Требования к системе




  • Windows 7 — 10 (32 и 64 bit)

  • Установленный .Net framework 4.5.1 и выше

  • Установленный клиент 3CX v15 и выше

  • Любая редакция 3CX, включая бесплатную, не ниже v15.



image



Поддерживаемые гарнитуры и спикерфоны Sennheiser:




  • DW Series

  • SD Series

  • D 10 Series

  • Culture Series

  • Culture Plus Series

  • Circle Series

  • Century Series

  • MB Pro Series

  • MB 660 UC Series

  • PRESENCE Series

  • Speakerphone Series

  • BTD 800 USB



Загрузки и документация





Программа бесплатного обновления устаревших версий 3CX Phone System



После выпуска 3CX v15.5 мы стремимся, чтобы как можно большее число пользователей получило преимущества новой версии. Мы понимаем, что во многих компаниях ИТ бюджеты ограничены. Иногда руководству трудно объяснить необходимость обновления, ведь многие преимущества новой версии находятся на стороне сервера и не так очевидны рядовым пользователям – зато принципиально упрощают жизнь системному администратору или партнеру-интегратору.



Поэтому мы разработали программу бесплатного обновления всех бессрочных лицензий 3CX предыдущих версий до текущей версии 15.5!



Суть предложения:




  • Бессрочная лицензия 3CX любой устаревшей версии бесплатно меняется на годовую лицензию 3CX v15.5 той же редакции и емкости. Например, если у вас есть лицензия 3CX 64 Pro v12, мы бесплатно обменяем ее вам на 64 Pro v15.5 Annual (на 1 год)

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

  • Срок действия программы – до 30 сентября 2017 г.



Интересный сценарий использования: если у вас несколько устаревших лицензий, и одна из них не используется или используется на некритичном участке, можно обновить эту неиспользуемую лицензию. Так вы сможете увидеть возможности и преимущества новой версии и, заодно, протестировать стабильность системы. Затем можно переходить на новую версию и на ответственных участках.



Также, пользуясь случаем, сообщаем, что с 1 сентября 2017 г. прекращается поддержка 3CX Phone System v14, веб- и видеоконференций Webmeeting v14, и поддержка совместимости новых клиентов 3CX (для всех платформ) с сервером 3CX v14.



Рекомендуем воспользоваться нашим предложением!
Original source: habrahabr.ru (comments, light).

https://habrahabr.ru/post/331116/

Комментарии (0)КомментироватьВ цитатник или сообщество
Арина_Вел

Создание посадочных страниц на WordPress | Женская логика и internet

Пятница, 28 Апреля 2017 г. 11:38 (ссылка)
iozarabotke.ru/2017/04/sozd...press.html


5039223_pos_str (493x421, 192Kb)Здравствуйте!



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



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



Мы уже рассматривали разные варианта создания посадочных страниц: на Джастклике, в программе Adobe Muse, сервисе 100kursov, с видео или изображениями вместо фона и даже, музыкальные вирусные открытки с явными и скрытыми формами подписки.



Сегодня еще один вариант пока только страницы подписки на блоге/сайте WordPress с помощью плагина InstaBuilder 2. Но сначала кратко о плагине:



Плагин очень простой и удобный. По сути это drag&drop конструктор страниц, который работает через интерфейс Wordpress и позволяет создавать красивые шаблоны и посадочные страницы без необходимости писать какой-либо код.



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



Вот так выглядит интерфейс плагина после загрузки и активации.

Метки:   Комментарии (0)КомментироватьВ цитатник или сообщество

Следующие 30  »

<плагин - Самое интересное в блогах

Страницы: [1] 2 3 ..
.. 10

LiveInternet.Ru Ссылки: на главную|почта|знакомства|одноклассники|фото|открытки|тесты|чат
О проекте: помощь|контакты|разместить рекламу|версия для pda