• У маинкрафта доход только от подпикски?

    TyLeRRR
    @TyLeRRR
    Student
    конкретно)
    Ответ написан
    Комментировать
  • Текст задом на перед?

    Stalker_RED
    @Stalker_RED
    Как исправить: стереть этот кусок и набрать заново (лучше всю строку, для надежности).

    Что это было: скорее всего вы копировали откуда-то текст и там были управляющие символы, типа такого. Или случайно(?) нажали какой-то хоткей в вашем редакторе, который вставляет подобные спецсимволы.

    В юникоде есть много загадочного, но не стоит вскрывать эту тему. Вы молодые, шутливые, которым все легко. Вот сто раз наверное это уже говорили, но не раскачивайте лодку. Потому что если раскачаете, то будет плохо, и плохо будет всем. Сюда лучше не лезть. Это не то. Это не Чикатило и даже не архивы спецслужб. Есть система, которая реально работает, не нужно ломать эту систему. По̶̩̱̞т̪̰͍̹͠о̶̻͎̞̙м̠̺у͏̣̪̹͍̱̦ ͇̜͡чт͖͈̱̲͉͡о̗͖̙͍̱ ̧̰ͅпоследствия бу̣̗̯̕д̷͚̙̫̝у̵͍̪т̦̤̼̮ ̳̤̫̖̱с̷̹̳̹̭̜̯̳а̹͝м̢ы̠̮̖м̻̫̝͝и͓̲ ͈͈печальными.̜͍̜̭̖ ͚̜Я͘ ҉в̧̰п̥͈̱̼͖о͔̰͘л̬̦н̵̱̮͙̗͔̹е̪͎̖̰͇ ̡͇̻̖̪̙̣п̯̝̗̗̮̳͠о̼̦н͓̝͕̬̜ͅи̭͚̣̪͔͞ͅͅм͓̘͙͚͖а̺ю͔̲̝͚ ̦̳͜ч͖͖ͅͅт̦̻̯̮̘о͉̖͓͍̫ ̢̲̺͓д͔́а͇̦̻нны̲͕̺̞̙м ͔̭с̩̥̳̖̹о̧̩̘̲о̣̭͓͇̤б̮̺̗̻̣̭͖щ̮̠̲͉̱͔ͅе͕̼͠н̰̘̗̜и̧е̰̦͚̪͔м̮̼̺̺̦̗͜ ̡̙͔͕в̮̗̫ы̴͖̱͙зо̗̬̖͇̼̠в̤̩̰̺͞у̕ ̤̫͙доп̢̭̙͉̝ͅо̳̯͇̙л̻͍͍͇̫̮̗н̶͎̹и̵̯̙т̥̣̠͈е҉̦̭̲л̧̭̱̦̫ь̶̞̭͈н͚̩̱ы͇̠̞̳͖̱й͎͔̠͢ ̛и̛̲̬͔̠̤н͙͙͉͈͉̩͚͟т̛͙͔̩̤͉е̪̝͟р͢е̭̥̲͚͘с̮͔̩̤̦̝,̩ н̹̬͉͖о ͇̺̘̪̫̮̭́х̪̤̼̬о҉̝̟͕̘ч̹̩̫̞͎̜̼у̵͎̻ ̣̗͖͠с͚р̨̝̙а̪̹̹͙ͅз͍͔̠͘у̨̰͙̯͇̗̳͇ ̴пр͕̠̟͘е͏д҉͈̯̭о̼̝̺̙̣с͡т̬͖̹̳̣̩̹͞е̫р̢̮͚͕̲̳͎̯е̡͇͕ч̮̯͍͙̹͢ь͍̩̫͎̞̺́ ̳̲̘̕п̴̼̬ͅы͍̗̲̰̠ͅт̵̩͙̤̺͔л̼͜ѝ̼̱̱в̟͕͖͕ы̵͈͚̲̲̜̟ͅх͓͈̼̮̟́ ̫–͍͓̙͍̞͖͘ ̩̜͎̯̤̦͢с̜͙̰̖то̻͕̤̩̯̗п̪̯͖̻͓̙̣.̬ ͉̱͢О͉̣̮̩̙с͖т̨а̯̖̣̝̗̹̙͝ль̙͉͙͘н̱ы̨̯̠̰̯е̷ ͚̖̳̻пр̪̱̺͍͘ос̺̳т̶͎̟̲о̧̦͇̪̳ ̗͚̤н̰͎͠е̶͇̬̜͎̬͚ ̼̣̗̰̠н͇а̰͚̼̀й̙̠̦д̟̭͕͉̣̜у͍͎̹͓͞ͅт̷̠ ̥͇ḥ̥̥̺̰̖̯́i͎̯̱̙͕̩v̤͔͈͈ͅe͕̤̩̦͉-̷͈̯͎͈͕̘ṃ̠̠͈̟̣͢i̥nd̤͍͍̳̟̝̟ ̶̟͇̘͎͔̼ͅo͕͠f͍͍̺̞͇ ̼̥̬͍̯c̴̠̤̜̞h͞a̤̤̣͙̭͓͜ơ̻s͢.̫̘ ̝͖͙͙ͅZ̫a̹̫̳̖̞̻͚l̩̞g͔̱͎̫̪͘o̵̪̜̗̩̺̜.̝̫͇͙͓̥̀ͅ
    ̹͍̭͓H̥̥͙̝e̯͙͢ ̬̰̗̯̬̟͜w͍͎̘͇͠ͅh͍͎̹̘͕͉o̳̥̞ ̢̭W͟a̰i͉ṱ͕̟̹͔̭ͅs̘̹ ̮̪̩͉̩̥B̭̼̗̖̙͉e̬h̟͙͓̜i̮̩̺̼̥n̲͢d̘̭͍̱̲ ͚̟̩̹̹͓̬̀T͈̥͠h͈͡e͏̣̪̣̯̳̥̰ ͠W̖̪̘͎͚͉a̶̦͖̰̙l̡̩̫l̗͘.̩̮
    ̜̞̠̼̼ͅZ̬͙̠̳͈̮A̫͖LͅG̘̣͇̰̗̪̬O̖͔̦̮̗!̲
    Ответ написан
    Комментировать
  • Когда изучать npm, grunt, bower, git и т.д?

    @flor_master
    Могу верстать, могу не верстать.
    На самом деле все очень просто.
    NPM - это пакетный менеджер который идет вместе с node.js, С помошью него можно устанавливать все что вы перечислили выше и другие модули, программы.

    Gulp, Grunt - это консольные утилиты. Они взаимозаменяемы. Они делают рутинную работу за тебя: компилируют Less Sass, склеивают скрипты, минифицируют скрипты, стили, делают спрайты, оптимизируют картинки и даже поднимают свой простенький вебсервер и LiveReload.

    Gulp или Grunt - Дело вкуса. Мне понравился больше Gulp. Он быстрее.

    Git - Система контроля версий твоего кода. Она позволяет организовать совместную работу нескольких разработчиков над ним проектом.

    Bower - просто утилита, которая быстро тебе скачивает необходимые библиотеки и из хависимости. Что бы ты не лазил по сайтам разработчиков. Например тебе надо установить jquery - ты просто в консоли пишешь Bower install jquery и тебе скачивается Jquery.

    Я считаю что Git в современной работе просто необходим как воздух.
    Gulp или Grunt и Bower сильно облегчили мне жизнь.

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

    Gulp или Grunt и Bower - очень легкие программы для первичного использования. Их Можно попробовать и решить нужны ли они тебе или нет - за очень короткий промежуток времени.
    Ответ написан
    1 комментарий
  • Browser-sync на gulp перезагружает браузер два раза, но изменения не видны?

    Zoxon
    @Zoxon
    Веб-разработчик
    Не знаю какая версия у в вас используется, но в общем починить можно так.
    Пришлось обновить конфиг browserSync по текущей версии, он отличается.
    Затем заменить gulp.watch на пакет gulp-watch, и использовать run-sequence для запуска тасков, и добавить инкрементал билд для jade, по тому как сборка длилась очень долго.
    Получился такой gulpfile.js

    'use strict';
    
    // Инициализируем плагины
    var gulp = require('gulp'),
    	jade = require('gulp-jade'),
    	stylus = require('gulp-stylus'),
    	autoprefixer = require('autoprefixer-stylus'),
    	imagemin = require('gulp-imagemin'),
    	browserSync = require('browser-sync').create(),
    	cssbeautify = require('gulp-cssbeautify'),
    	gutil = require('gulp-util'),
    	newer = require('gulp-newer'),
    	include = require('gulp-include'),
    	rename = require("gulp-rename"),
    	uglify = require('gulp-uglify'),
    	imageminPngquant = require('imagemin-pngquant'),
    	csscomb = require('gulp-csscomb'),
    	csso = require('gulp-csso'),
    	gulpFilter = require('gulp-filter'),
    	plumber = require('gulp-plumber'),
    	del = require('del'),
    	runSequence = require('run-sequence'),
    	watch = require('gulp-watch'),
    	gulpZip = require('gulp-zip'),
    	nodePath = require('path'),
    	jadeInheritance = require('gulp-jade-inheritance'),
    	gulpif = require('gulp-if'),
    	cached = require('gulp-cached'),
    	changed = require('gulp-changed'),
    	filter = require('gulp-filter');
    
    // Функция обработки ошибок
    var errorHandler = function(err) {
    	gutil.log([(err.name + ' in ' + err.plugin).bold.red, '', err.message, ''].join('\n'));
    
    	if (gutil.env.beep) {
    		gutil.beep();
    	}
    
    	this.emit('end');
    };
    
    var correctNumber = function correctNumber(number) {
    	return number < 10 ? '0' + number : number;
    };
    
    // Return timestamp
    var getDateTime = function getDateTime() {
    	var now = new Date();
    	var year = now.getFullYear();
    	var month = correctNumber(now.getMonth() + 1);
    	var day = correctNumber(now.getDate());
    	var hours = correctNumber(now.getHours());
    	var minutes = correctNumber(now.getMinutes());
    	return year + '-' + month + '-' + day + '-' + hours + minutes;
    };
    
    // Имена папок
    var config = {
    	path: {
    		source: 'source',
    		dist: 'public',
    		assets: 'assets',
    		partials: 'blocks',
    		js: 'js',
    		css: 'css',
    		images: 'img'
    	}
    };
    
    // Настройки плагинов
    var plugins = {
    	browserSync: {
    		options: {
    			server: {
    				baseDir: './public'
    			}
    		}
    	},
    
    	autoprefixer: {
    		options: {
    			browsers: [
    					'last 2 version',
    					'Chrome >= 20',
    					'Firefox >= 20',
    					'Opera >= 12',
    					'Android 2.3',
    					'Android >= 4',
    					'iOS >= 6',
    					'Safari >= 6',
    					'Explorer >= 8'
    				],
    			cascade: false
    		}
    	},
    
    	stylus: {
    		options: {}
    	},
    
    	cssbeautify: {
    		options: {
    			indent: '	',
    			autosemicolon: true
    		}
    	},
    
    	jade: {
    		options: {
    			pretty: '\t',
    			basedir: config.path.source
    		}
    	},
    
    	jadeInheritance: {
    		options: {basedir: config.path.source}
    	},
    
    	imagemin: {
    		options: {
    			optimizationLevel: 3,
    			progressive: true,
    			interlaced: true,
    			svgoPlugins: [{removeViewBox: false}],
    			use: [imageminPngquant()]
    		}
    	},
    
    	rename: {
    		options: {
    			suffix: ".min"
    		}
    	}
    }
    
    // Пути к файлам
    var path = {
    	source: {
    		html: [
    			config.path.source + '/**/*.jade',
    			'!' + config.path.source + '/' + config.path.partials + '/**/*.jade'
    		],
    		css: [
    			config.path.source + '/**/*.styl',
    			'!' + config.path.source + '/**/_*.styl',
    			'!' + config.path.source + '/' + config.path.css + '/lib/**/*.styl'
    		],
    		img: config.path.source + '/' + config.path.images + '/**/*.{jpg,jpeg,png,gif,svg}',
    		js: config.path.source + '/' + config.path.js + '/*.js',
    		copy: config.path.assets + '/**/*'
    	},
    
    	dest: {
    		html: config.path.dist,
    		css: config.path.dist,
    		img: config.path.dist + '/' + config.path.images,
    		js: config.path.dist + '/' + config.path.js,
    		copy: config.path.dist
    	},
    
    	watch: {
    		html: config.path.source + '/**/*.jade',
    		css: config.path.source + '/**/*.styl',
    		img: config.path.source + '/' + config.path.images + '/**/*.{jpg,jpeg,png,gif,svg}',
    		js: config.path.source + '/**/*.js',
    		copy: config.path.assets + '/**/*'
    	}
    };
    
    // Локальный сервер
    gulp.task('browser-sync', function() {
    	return browserSync.init(plugins.browserSync.options);
    });
    
    gulp.task('bs-reload', function (cb) {
    	browserSync.reload();
    });
    
    // Собираем Stylus
    gulp.task('stylus', function() {
    	return gulp.src(path.source.css)
    		.pipe(plumber({
    			errorHandler: errorHandler
    		}))
    		.pipe(stylus({
    			use: [
    				autoprefixer(plugins.autoprefixer.options)
    			]
    		}))
    		.pipe(cssbeautify(plugins.cssbeautify.options))
    		.pipe(csscomb())
    		.pipe(gulp.dest(path.dest.css))
    		.pipe(browserSync.stream())
    		.pipe(csso())
    		.pipe(rename({suffix: '.min'}))
    		.pipe(gulp.dest(path.dest.css));
    });
    
    // Собираем html из Jade
    gulp.task('jade', function() {
    	return gulp.src('source/**/*.jade')
    		.pipe(plumber({
    			errorHandler: errorHandler
    		}))
    		.pipe(cached('jade'))
    		.pipe(gulpif(global.isWatching, jadeInheritance({basedir: 'source'})))
    		.pipe(filter(function (file) {
    			return !/source[\\\/]blocks/.test(file.path);
    		}))
    		.pipe(jade(plugins.jade.options))
    		.pipe(gulp.dest(path.dest.html));
    });
    
    // Копируем и минимизируем изображения
    gulp.task('images', function() {
    	return gulp.src(path.source.img)
    		.pipe(plumber({
    			errorHandler: errorHandler
    		}))
    		.pipe(newer(path.dest.img))
    		.pipe(imagemin(plugins.imagemin.options))
    		.pipe(gulp.dest(path.dest.img));
    });
    
    // Копируем файлы
    gulp.task('copy', function() {
    	return gulp.src(path.source.copy)
    		.pipe(plumber({
    			errorHandler: errorHandler
    		}))
    		.pipe(newer(path.dest.copy))
    		.pipe(gulp.dest(path.dest.copy))
    		.pipe(gulpFilter(['**/*.js', '!**/*.min.js']))
    		.pipe(uglify())
    		.pipe(rename({suffix: '.min'}))
    		.pipe(gulp.dest(path.dest.css));
    });
    
    // Собираем JS
    gulp.task('plugins', function() {
    	return gulp.src(path.source.js)
    		.pipe(plumber({
    			errorHandler: errorHandler
    		}))
    		.pipe(include())
    		.pipe(gulp.dest(path.dest.js))
    		.pipe(uglify().on('error', gutil.log))
    		.pipe(rename(plugins.rename.options))
    		.pipe(gulp.dest(path.dest.js));
    });
    
    // Отчистка папки public
    gulp.task('cleanup', function(cb) {
    	return del(config.path.dist + '/*', cb);
    });
    
    gulp.task('build-zip', function() {
    	var prjName = 'dist';
    	var rootFolderName = nodePath.basename(__dirname);
    
    	if (!rootFolderName || typeof rootFolderName === 'string') {
    		prjName = rootFolderName;
    	}
    
    	var datetime = '-' + getDateTime();
    	var zipName = prjName + datetime + '.zip';
    
    	return gulp.src('public/**/*')
    		.pipe(gulpZip(zipName))
    		.pipe(gulp.dest('zip'));
    });
    
    gulp.task('build', function (cb) {
    	return runSequence(
    		[
    			'stylus',
    			'jade',
    			'images',
    			'plugins',
    			'copy'
    		],
    		cb
    	);
    });
    
    gulp.task('zip', function (cb) {
    	return runSequence(
    		'cleanup',
    		'build',
    		'build-zip',
    		cb
    	);
    });
    
    gulp.task('watch', function () {
    	global.isWatching = true;
    
    	watch(path.watch.css, function() {
    		return runSequence('stylus');
    	});
    
    	watch('source/**/*.jade', function() {
    		return runSequence('jade', browserSync.reload);
    	});
    
    	watch(path.watch.img, function() {
    		return runSequence('images', browserSync.reload);
    	});
    
    	watch(path.watch.js, function() {
    		return runSequence('plugins', browserSync.reload);
    	});
    
    	watch(path.watch.copy, function() {
    		return runSequence('copy', browserSync.reload);
    	});
    
    });
    
    gulp.task('default', function (cb) {
    	return runSequence(
    		'build',
    		'browser-sync',
    		'watch',
    		cb
    	);
    });


    package.json
    {
      "name": "gulp-front",
      "version": "3.0.0",
      "homepage": "https://github.com/Zoxon/gulp-front",
      "license": "MIT",
      "description": "Простой путь разработки с Jade и Stylus",
      "repository": {
        "type": "git",
        "url": "http://github.com/Zoxon/gulp-front.git"
      },
      "author": "Velicko Konstantin <zoxon.box@gmail.com> (http://github.com/Zoxon)",
      "licenses": {
        "type": "MIT",
        "url": "http://github.com/Zoxon/gulp-front/blob/master/license.txt"
      },
      "bugs": {
        "url": "http://github.com/Zoxon/gulp-front/issues"
      },
      "dependencies": {
        "autoprefixer-stylus": "^0.9.1",
        "browser-sync": "^2.10.0",
        "del": "^2.1.0",
        "gulp": "^3.9.1",
        "gulp-cached": "^1.1.0",
        "gulp-changed": "^1.3.0",
        "gulp-cssbeautify": "^0.1.3",
        "gulp-csscomb": "^3.0.6",
        "gulp-csso": "^1.0.1",
        "gulp-filter": "^3.0.1",
        "gulp-if": "^2.0.0",
        "gulp-imagemin": "^2.3.0",
        "gulp-include": "^2.0.2",
        "gulp-jade": "^1.1.0",
        "gulp-jade-inheritance": "^0.5.4",
        "gulp-newer": "^1.1.0",
        "gulp-plumber": "^1.0.1",
        "gulp-rename": "^1.2.2",
        "gulp-stylus": "^2.0.7",
        "gulp-uglify": "^1.5.1",
        "gulp-util": "^3.0.6",
        "gulp-watch": "^4.3.5",
        "gulp-zip": "^3.2.0",
        "imagemin-pngquant": "^4.2.0",
        "run-sequence": "^1.1.5"
      }
    }


    Если у вас старая структура папок (в корне папка assets, public, source), то попробуйте просто заменить эти файлы
    Ответ написан
    Комментировать
  • Сложно ли реализовать на AJAX??

    evgeniy2194
    @evgeniy2194
    PHP, js developer
    Сложно ли реализовать на AJAX??
    нет
    Ответ написан
    Комментировать
  • Файл css в 1081 cтроку весит 20мб?

    @BLVST
    Frontend. Открыт к предложениям.
    Скорее всего картинки и/или шрифты в base64
    Ответ написан
    Комментировать
  • Как убрать отступы в ячейках без js (табличная вёрстка)?

    Henryh
    @Henryh
    Веб-программист
    Думаю, дело в доктайпе, html5 не предназначен для такой вёрстки. Попробуйте использовать доктайп того времени:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


    и валидатор ругаться перестанет
    Ответ написан
    3 комментария
  • Как сделать фиксированное меню при скроле страницы?

    Неужели так сложно правильно задать вопрос в заголовке?
    Каким должен быть IQ, чтобы не суметь сформировать вопросительное предложение? Двузначным?

    Хотя о чем я говорю: сплошной текст без знаков препинания. Даже примера нет, который упоминается в тексте.
    Диагноз надо ставить.

    UPD: спасибо за понимание
    Ответ написан
    2 комментария
  • Какой редактор+плагины лучше использовать?

    @cssman
    50к рублей на бушные циски не жалко, а лицензию зажопил покупать? :)
    сказочный персонаж на тостере
    Ответ написан
    Комментировать
  • Какой редактор+плагины лучше использовать?

    BBmike
    @BBmike
    То есть ты пользуешься вот этим всем функционалом и не в состоянии купить лицензию на то, что принесет тебе хлеб с маслом?
    мне кажется, тут дело в танцоре и малом размере ботинок
    Ответ написан
    2 комментария
  • Что должен знать Junior Front-end developer?

    Astrohas
    @Astrohas
    Python/Django Developer
    Присмотритесь к этому Это
    Ответ написан
    1 комментарий
  • Какой из вентиляторов начинает гудеть?

    Jump
    @Jump
    Системный администратор со стажем.
    У меня в офисе сильно гудит компьютер, чей точно не знаю, по звуку непонятно, подойти посмотреть лень.
    Не подскажешь чей - юриста и ли бухгалтера?
    Ответ написан
    Комментировать
  • Какой из вентиляторов начинает гудеть?

    @zerocool31337
    что то вопросы из 1 класса, возьми рукой останови кулер от проца и сравни шум
    Ответ написан
    Комментировать
  • В чем проблема с методом lenght?

    a13xsus
    @a13xsus
    Lazy developer
    length
    Ответ написан
    Комментировать
  • Как сделать такой "прогерссбар" при скроллинге?

    Это делается при помощи stroke-dasharray, stroke-dashoffset на svg path
    Ответ написан
    Комментировать
  • C чего начать самообразование в области программирования игровых индустрий?

    nki
    @nki
    bezkart.ru готовая система лояльности
    На протяжении последних двух лет меня сильно мучил вопрос:"Кем я хочу стать?".

    Это не тот вопрос на который надо искать ответ в первую очередь. Лучше ответе для себя на вопрос - "как я хочу жить?".
    Ответ написан
    Комментировать
  • Смена цвета текста при наведении с одного блока на другой?

    RadCor
    @RadCor
    Если мой ответ вам помог, отмечайте его решением.
    В стили текста добавьте mix-blend-mode: difference;
    Демо: https://jsfiddle.net/RadCor/eutg0wqy/1/
    Ответ написан
    2 комментария