Сообщество - Web-технологии

Web-технологии

534 поста 5 789 подписчиков

Популярные теги в сообществе:

18

Фокус-покус и новая стартовая страница хрома

Давным-давно я как-то задумался переписать стартовую страницу хрома, то ли потому что стандартная страница не "ахти", то ли потому что делать было нечего. Целью было сделать подобие "рабочего стола" с возможностью всяких расширений (при желании). Соответственно, получите и распишитесь JSOS.

Фокус-покус и новая стартовая страница хрома

Из полезных фич:

1. Подобие оконного менеджера - перетаскивание, закрытие модулей (приложений)

2. Установка внешних скриптов (js) => внешних модулей (приложений)

3. Установка внешних стилей (css) => внешних тем

4. Всевозможная настройка (модулей, системы)

5. Набор стандартных модулей:

- Панель (содержит все модули и ссылки на стандарные страницы хрома: history, downloads, bookmarks)

- Лог системы JSOS (просто отображает, что происходит)

- Установщик (ui обертка для установки скриптов и стилей)

- About JSOS (по стандарту)

Установка:

Есть 3 возможных пути, получить это чудо-юдо:

1. Качаем отсюда <zipfile> > Распаковываем > открываем chrome://extension > Включаем Developer Mode > Load unpacked extension

2. Устанавливаем урезанную версию с webstore.

Да-да урезанная, потому что установка внешних скриптов и тем, нарушает Developer Program Policies.

3. Собираем то, что нужно с исходников > npm & gulp вам в помощь

Примечания:

1. Расширение рассчитано скорее на "опытных" пользователей, чем на "простого". Ибо никакой защиты от "глупостей" не стоит и можно неплохо накосячить. Например, развернуть окно на 200%, а потом не знать как его закрыть.

2. Через консоль браузера можно установить почти все, но для этого нужно разбираться немного в html & css, js.

Ближайшие цели на будущее:

1. Фикс критических багов, если найдете :)

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

Полезные ссылки:

1. Видеообзор возможностей.

2. Собственно исходники.

3. JSOS Module - окружение для разработки собственного модуля (если кто надумает).

4. Пример разработки модуля [youtube], если кто-то все-таки надумает :D

5. JSOS Theme Generator - окружение для генерации "своей" темы.

6. Дополнительная тема - JSOS Theme Dark.

7. Дополнительные модули: Store, Webopener, Sticker,  Timer, Clock, Calendar.

P.S. Если будет интересно, то напишу что под капотом, как это работает и как можно более гибко настроить JSOS через консоль.

Показать полностью 1
32

Головоломка ко дню программиста от mail.ru

Прошел головоломку от mail.ru. Ушло на это 2,5 часа (долговато). Думаю может быть интересна еще кому-нибудь в сообществе.


Ссылка головоломку:

https://puzzle.mail.ru/


Описание:

Для прохождения игры вам понадобятся знания web-технологий, информатики, любой текстовый и графический редактор.


Головоломка состоит из 25 уровней. На каждом уровне необходимо выяснить секретное слово и ввести его в поле ввода. Кодовое слово может быть ответом на загадку или спрятано где-то на странице (очень часто — в исходном коде страницы).


Количество попыток неограничено. Для выхода из игры наберите quit в поле ответа. Вы можете продолжить законченную игру позже.


И пусть удача всегда будет с вами!

Показать полностью
23

Пример верстки на флексах с использованием gulp и less.

Разработку любого сайта следует начинать с настройки инструментов.

Рассмотрим инструменты и подготовим их к работе.


Все материалы я буду добавлять сюда: https://github.com/pikaweb


Для работы с репозиториями нам пригодится GitBash. Скачать его можно отсюда:


https://git-for-windows.github.io/


В качестве локального сервера я использую OpenServer:


http://open-server.ru/


Кроме того понадобится установить node.js


https://nodejs.org/en/


Перейдем к подготовке. Создаем каталог в \Ваш путь\OpenServer\domains\


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


Теперь сайт будет доступен при вводе в браузере http://domain-name/


Настраиваем git (если еще не настроен). Я предпочитаю bitbucket т.к. он предоставляет бесплатные приватные репозитории. Ниже ссылки на github и bitbucked и на материал по настройке подключения сразу к обоим:


github.com


bitbucket.org


https://gist.github.com/rosswd/e1afd2b0b0d515517eac


Переходим к созданию git репозитория.


https://help.github.com/articles/creating-a-new-repository/


Добавление проекта в репозиторий:


https://help.github.com/articles/adding-an-existing-project-...


Подробный tutorial по bitbucket:


https://www.atlassian.com/git/tutorials/learn-git-with-bitbu...


Настроив репозитории, перейдем к настройке gulp для проекта. Для начала его нужно установить (необходим установленный node.js). Перейдя в терминале (можно и gibush, можно любой удобный для вас) в каталог с сайтом, выполняем следующую команду:


npm init


Вводим имя проекта, его версию, описание, ключевые слова и.т.д. Это создаст файл package.json, который будет хранить информацию о подключаемых нами пакетах. Теперь установим gulp и нужные для него расширения.


npm install gulp --save-dev


--save-dev обозначает, что мы сохраним информацию об установке пакета в package.json. Это нужно, чтобы не хранить в репозитории подгружаемые npm файлы для установленных модулей. Все они содержатся в node_modules. Чтобы node_modules не отправлялись на git, создадим файл .gitignore со следующим содержимым:


.gitignore


node_modules


А теперь продолжим устанавливать модули для gulp:


Модуль gulp-concat для конкатенации файлов:


npm install gulp-concat --save-dev


Модуль gulp-less для построения css файлов на основе less. Про это чуть подробней при верстке проекта.


npm install gulp-less --save-dev


Для less еще пригодятся less-plugin-clean-css (пост обработка и сжатие less файла) и less-plugin-autoprefix (автоматическое добавление вендорных префиксов, согласно базе данных caniuse.com)


npm install less-plugin-clean-css --save-dev


npm install less-plugin-autoprefix --save-dev


Для сжатия css файлов добавим gulp-minify-css


npm install gulp-minify-css --save-dev


Часть css я встраиваю в html, поэтому добавим gulp-inline-source


npm install gulp-inline-source --save-dev


Для удаления комментариев из html файла понадобится.


npm install --save-dev gulp-remove-html-comments


Для очистки файла от лишних пробелов и удаления комментариев из html файла понадобится:


npm install gulp-htmlclean --save-dev


Для слайдера я воспользуюсь http://kenwheeler.github.io/slick/


Для него требуется jquery


npm install slick-carousel –save-dev


npm install jquery --save-dev


Для верстки еще полезно подключить normalize.css или reset.css. Я обычно использую normalize.


npm install normalize.css --save-dev


Почитать про него можно тут:


https://htmlacademy.ru/blog/64-about-normalize-css


Продумаем общую структуру проекта


index.html


assets/


--less/


--fonts/


--img/


--js/


public/


--index.html


--css/


----build.css


--fonts/


--js/


----build.js


--img/


Где в public будет собираться проект.


Для настройки gulp следует создать файл gulpfile.js и подключить в нем все установленные плагины:


var gulp = require('gulp')


//load plugins


var less = require('gulp-less');


var minifyCSS = require('gulp-minify-css');


var inlinesource = require('gulp-inline-source');


var LessPluginCleanCSS = require('less-plugin-clean-css'),


LessPluginAutoPrefix = require('less-plugin-autoprefix'),


cleancss = new LessPluginCleanCSS({ advanced: true }),


autoprefix= new LessPluginAutoPrefix({ browsers: ["last 2 versions"] });


var htmlclean = require('gulp-htmlclean');


var concat = require('gulp-concat');


var uglify = require('gulp-uglify');


//generate css from less ( + slick less files + slick files).


gulp.task('less-to-css', function() {


gulp.src(['node_modules/slick-carousel/slick/ajax-loader.gif'])


.pipe(gulp.dest('./public/css/'));


gulp.src(['node_modules/slick-carousel/slick/fonts/*'])


.pipe(gulp.dest('./public/css/fonts/'));


return gulp.src(['./assets/less/*.less', 'node_modules/slick-carousel/slick/slick.less', 'node_modules/slick-carousel/slick/slick-theme.less'])


.pipe(less({


plugins: [autoprefix, cleancss]


}))


.pipe(concat('build.css'))


.pipe(minifyCSS())


.pipe(gulp.dest('./public/css'));


});


//minify fonts


gulp.src('./assets/fonts/*.css')


.pipe(minifyCSS())


.pipe(gulp.dest('./public/fonts/'));


//move images to public


gulp.src(['./assets/img/*']).pipe(gulp.dest('./public/img/'));


gulp.src(['./assets/img/**/*']).pipe(gulp.dest('./public/img/'));


//inline link, script and img in index.html . Clean html.


gulp.task('index', function () {


var options = {


compress: true


};


return gulp.src('./index.html')


.pipe(htmlclean())


.pipe(inlinesource(options))


.pipe(gulp.dest('./public/'));


});


/* making build.js */


gulp.task('slickJs', function(){


return gulp.src(['node_modules/jquery/dist/jquery.min.js','node_modules/slick-carousel/slick/slick.min.js', 'assets/js/*.js'])


.pipe(concat('build.js'))


.pipe(uglify())


.pipe(gulp.dest('./public/js/'));


});


gulp.watch('./assets/less/*.less', ['less-to-css']);


gulp.watch('./index.html', ['index']);


gulp.task('default', ['less-to-css','index', 'slickJs']);


Запуск gulp осуществляется из консоли. Открыв консоль в каталоге с проектом и введя gulp, мы запустим выполнения задачи default, которая в свою очередь выполнит задачи 'less-to-css','index', 'slickJs'. За счет gulp.watch, после любого изменения less файлов или index.html файла будет выполняться соответствующая задача.


Верстка


Для примера верстки макета я выбрал .psd макет, распространяемый свободно как для некоммерческого, так и для коммерческого использования.


Ссылка на макет:


http://www.bestpsdfreebies.com/freebie/fudi-landing-page-psd...


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


Обычно первым делом я формирую общую схему разметки. Получается нечто подобное:



<title>Fudi</title>



В дальнейшем в разметке я буду придерживаться BEM методологии. Почитать про неё можно здесь:


https://ru.bem.info/methodology/key-concepts/


Далее согласно этой методологии размечаю всю страницу.


Оптимизация загрузки шрифтов.


К данному макету шрифты шли в каталоге /fonts.


Для оптимизации работы со шрифтами воспользуемся fontsquirrel и возможностью хранить до 5мб места в localstorage. Подробней можно прочитать в переводах статей Adam Beres-Deak:


http://css-live.ru/articles-css/bystraya-zagruzka-veb-shrift...


https://htmlacademy.ru/blog/61-better-webfont-loading-with-l...


Верстал преимущественно флексами, про них можно почитать по ссылкам:


http://css-live.ru/articles/vizualnoe-rukovodstvo-po-svojstv...


https://css-tricks.com/snippets/css/a-guide-to-flexbox/


https://www.w3.org/TR/css-flexbox-1/


Ссылка на кросс-браузерный вариант реализации filter.


http://codepen.io/AmeliaBR/pen/xGuBr


Полностью выкладывать в пост файлы проекта я не буду. Они выложены в гит аккаунте сообщества:


https://github.com/pikaweb/pikaweb-first-demo


Посмотреть на результат в git pages:


https://pikaweb.github.io/pikaweb-first-demo/


Чтобы отправить каталог public В новую ветвь для git pages следует выполнить следующую команду:


git subtree push --prefix public origin gh-pages


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

Показать полностью
5

Юзерскрипт для переключения последних 5 диалогов с помощью Ctrl+<цифра> в новом дизайне VK

Новый дизайн ВК у многих вызвал отторжение. Лично для меня он не принес практически никакого негатива - считаю его стильным и все так же достаточно понятным (в отличие от Facebook, где до сих пор не ориентируюсь). Единственной потерей для меня стала потеря горячих клавиш в диалогах - было очень удобно переключать используемые диалоги с помощью Ctrl+цифра. "Классический" вид сообщений в новом дизайне выглядит кривовато, поэтому я помучился пару месяцев и вспомнил, что я программист :)
Результатом стало достаточно примитивный юзерскрипт для Tampermonkey/Greasemonkey, добавляющий вышеупомянутую возможность. Для использования - достаточно установить соответствующее расширение, после чего подключить юзерскрипт по ссылке, которую приведу ниже.

P.S. Писалось для себя, а не для рейтинга, но если кому-то окажется полезным - буду очень рад :)

P.P.S. С фронтендом работаю мало, так что код может попахивать :( В самом скрипте есть ссылка на Github, если у кого-то есть идеи по усовершенствованию - добро пожаловать :)

P.P.P.S. Надеюсь, что мой первый пост на Пикабу будет полезным :)


P.P.P.P.S. Чуть не забыл про ссылку - https://greasyfork.org/ru/scripts/22410-vk-chat-shortcuts

Показать полностью
1

Подскажите универсальный моноширинный шрифт для Windows

Для html-редактора нужен моноширинный шрифт со всеми символами.

Как минимум, должны быть символы с 1329 по 4347:

русского, грузинского, армянского языков, иврита, арабского и т.д..

Очень желательно, чтобы ноль отличался от буквы "О".

Шрифт Code2000 есть, но в нем нет всех символов и ноль как буква "О".

Есть шрифт Arial Unicode MS, но он не моноширинный, и тоже не все символы есть...

В общем, ищу уже несколько лет, и не могу найти.

Подскажите универсальный моноширинный шрифт для Windows

Про отходы

Давно хотел написать про раздельный сбор бытовых отходов (ТКО), но как-то руки не доходили. Сейчас только очень ленивый не пишет об этом. Панацея, блин… Не спорю, в последнее время (3-4 года) сделана большая подвижка в этой теме и это здорово. Но давайте сделаем маленький анализ. Кто скажет, в каком регионе этот вид деятельности принес какую-либо ПОЛОЖИТЕЛЬНУЮ маржу? И, самое главное, как долго продолжался этот эксперимент?

Разделим этот вид деятельности на два типа


1. Раздельный сбор, как установка отдельных баков на различных территориях домовладений, офисов, маркетов отдельно для бумаги, стекла, жестяных банок, баклажек из-под пепси-колы (ПЭТФ) и т.п., различного вида пластика и пр..


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


Затраты. В первом случае – это сами баки, расширение земельных участков под баки, дополнительный транспорт, реклама, изменение структуры логистики (программное обеспечение), обучение персонала и еще много всяких разных мелочей. Кто-то может сказать, что зачем еще мусоровозы - вывозили же ранее тот же объем ну и сейчас будут вывозить. Но здесь есть маленькие хитрости на предмет периодичности вывоза. Очень сложно, практически невозможно рассчитать маршрут загрузки так, что бы машина собрала объем, соответствующий ее ТТХ. Или, другими словами, чтобы машина не пошла порожняком.


Во втором случае - где-то, кто-то собрал 10 тонн макулатуры, 2 тонны ПЭТФ, 30 ящиков пустых бутылок и других прелестей вторсырья. Согласен, это много. Если учесть его высокую стоимость сегодня. По информации из разных регионов, средняя стоимость 1 тонны сборного вторсырья колеблется в рамках 8-12 тыс. руб. А где-то и более. И, не согласен, так как сбор этого количества продолжался более 3-4 месяцев в городах, численностью более 300 тыс. чел. Что это? Капля в море или менее 0,1% от объема всего вторсырья, если предположить, что его (вторсырье) собирают и используют около 10%.


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


Кстати. Во многих регионах, попробовав эту затею (имеется ввиду раздельный сбор ТБО), официально, на уровне руководства профильных министерств, отказались дальше проводить этот эксперимент (в частности, Санкт-Петербург, об этом было написано в «Журнале ТБО» пару лет назад).


Пожелания, высказанные высшим руководством различных профильных министерств, в цифрах, зачастую разнятся на порядки, а в и своих прогнозах – диаметрально противоположны. Стоит почитать новости. Создается такое впечатление, что все, наперебой, очки зарабатывают, не имея представления о чем, собственно, разговор идет. Цель есть, а как ее достичь?... Ну и давай придумывать различные небылицы. То мы достигнем уровня переработки в 90%, затем 80%, затем, …..


На мой взгляд, правильное направление избрали по поводу идеи регионального оператора, эта идея еще витала в воздухе и ее обсуждали в далеких 2007-2008 годах. Более действенный результат, опять же, на мой взгляд, было бы не уподобляться той гигантомании, которая присуща великим деятелям-теоретикам – мол, назначим главного оператора и всем будет счастье. А сделать, в каждом регионе, несколько т.н. кустовых операторов. Принцип – один полигон, один оператор. И, самое главное, чтобы эти региональные операторы не были бы чем-то наподобие ЕРКЦ. А то ничего нет – ни полигона, ни техники, ни персонала,… А КАК сделать (сбор – вывоз – сортировку - переработку – утилизацию – захоронение) - уффффф, терминологии все больше и больше всякой разной – этто мы вам скажем. Главное, что бы деньги к нам поступили бесперебойно. А дальше, ну, как обычно.


В полном своем понимании, раздельный сбор – идея правильная, здравомыслящая. Но понимают ее, на разных уровнях, как-то по-разному. И чем выше, тем бредовее. Может нужно прислушаться больше к тем, кто «на земле» работает?


И еще. Прошу извинения, но опять же, взгляд мой на эту проблему – более 50% затрат на то, чтобы начать исправлять сложившуюся ситуацию с созданием отрасли переработки ТКО – это, в первую очередь, организационные затраты. Принятие пакета профильных законов, постановлений и правил на уровне регионов. Во вторую – новое программное обеспечение, строительство мусоросортировочных и перерабатывающих производств. Конечно, озвучить инвестиции в десятки миллиардов рублей - это здорово. И 2-3% (а то и больше) отпилить - это тоже здорово. Но либо основная задача - создать новую отрасль в России, либо пила "Дружба" (или Bosh). И не надо ждать, когда Москва скажет, как жить дальше…

Показать полностью

Нужна помощь, ошибка с mysql

Проблема вот в чём, хочу поставить браузерную онлайн игру 2moons на лицензии GNU GPL v3.
Но вылетает ошибка :

Не удалось создать следующие таблицы в базе данных:
Undefined property: Database::$queryCount
Нужна помощь, ошибка с mysql

Ребята кто может помочь?

Отличная работа, все прочитано!