• Как закреплять основы javascript на практике?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    1. Еще несколько раз пройтись по теории, а потом думать, что делать дальше.

    Если есть желание стать Доктором JavaScriptовских наук, или писать статьи по этой теме :)

    3. Выполнять практические задачи.

    Да, и только так. Без практики смысла от теоретических знаний не будет никакого. Существует множество тонкостей, которые в теории не учитываются. Тем более мир меняется не по дням, а по секундам!

    Лично я предпочитаю 3 вариант, но не знаю, где именно брать эти задачи.

    Самостоятельно ставить и решать. Например, сделать свой framework, или свой framework для другого framework :) Без шуток, будет хорошая практика, даже если ничего не выйдет.

    Игры можно попробовать делать, тоже неплохая будет практика. Начать с какой-нибудь игры типа: угадай пару, ну или мелодию, в крайнем случае слово :) Если что-то получится, можно разместить в каком-нибудь ВКонтакте, а там и более тесно интегрироваться, тоже полезное дело.

    При разработке сайтов можно поиграть с созданием всякого рода менюшек, деревьев. Поработать с асинхронными запросами.

    Главное чтобы это было самому интересно и приятно делать. Если пытаться через не хочу, то результатов придется ждать долго и не факт, что они будут.
    Ответ написан
    4 комментария
  • Как оптимизировать изменение DOM (отложенное изменение)?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    var toRemove = '';
    
    $.each(data, function (k, v) {    
       if(toRemove!='')toRemove+=',';
       toRemove += '#block_' + v;
    });
    
    $(toRemove).remove();

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

    Можно удалять не по id, а по class или каким-нибудь атрибутам. Будет красивее.

    $('.removeme').remove();

    или

    // удалить все div-ы из родителя
    $('div', '#родитель').remove();

    --------------------------------------------------
    Ответ написан
    2 комментария
  • Как нужно чтоб выглядел текст?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Как я понимаю, проблема в шрифтах?

    Если так, то просто нужно указать необходимый шрифт(ы) в font-family:
    .detail{
        width: 100%;
        background-color: #dcd6c6;
        font-family: Calibri,Candara,Segoe,Segoe UI,Optima,Arial,sans-serif; 
    }

    Какой именно нужен, не скажу, поставил что первое попалось :)

    font-size можно еще поиграть.
    и color до кучи.
    В общем, проблема обширная, можно диссертацию писать :)
    Ответ написан
    2 комментария
  • Обучение по видео урокам. В чем фишка?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Вот помню, в наше время даже книжек порой не было и как-то умудрялись учиться :-)
    С интернетом тоже были проблемы. Удивительные были времена.

    Некоторые вещи лучше один раз увидеть (показать), чем сто раз услышать (рассказать).

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

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

    Так что учиться эффективно только на одних видео-уроках не получится.

    В видео можно показать основы. Причем чем меньше информации, тем меньше будет допущено ошибок и проще будет урок (технически реализуем и для восприятия пользователями). А все тонкости темы урока зритель должен изучать самостоятельно, читая статьи и книги.
    Ответ написан
    Комментировать
  • Использование switch вместе с RadioButton(и некорректная работа switch)?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Если переменная n имеет тип int, то вероятно следует проверять числа:
    switch (n)
    {
      case 1: 
        F = f(x);
        I = Integr(a, b, n);
        break;
      case 2:
        I=155;
        break;
    }
    Ответ написан
  • Что такое динамический сайт?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Написано, что вы должны дать исполнителю тексты и картинки в формате JPEG, а исполнитель поместит их на сайт.

    Динамический сайт, это примерно как здесь. Вы добавили вопрос, он вывелся на сайте - это оно и есть.
    Бывают статичные сайты, их содержимое, грубо говоря, через браузер менять нельзя.
    Ответ написан
    Комментировать
  • Как импортировать sql таблицу в SQL Server в Visual Studio 2013?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Создать множество файлов маленького размера и импортировать bat-ником:
    @echo off
    for /r C:\путь к папке с файлами .sql %%g in (*) do SQLCMD.EXE -d [в какой базе выполнить запросы] -i "%%~nxg" -o "%%~nxg.log"


    Или, если база создана в Visual Studio, то проще всего будет просто подключить ее к SQL Server Management Studio.

    20b6d487800e44eba3a4bd22de67c34d.png
    Ответ написан
    Комментировать
  • Как фильтровать дерево?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Как ее можно фильтровать по Name чтобы если у найденной строки были родители по ParentID и он их всех вытаскивал?

    Если ищу name like '%444%' то так же должны вытянуться строчки с id 1 и 2 т. к. они его родители(по parentID).

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

    Первый вариант, который приходит в голову, это объединение результатов:
    SELECT * FROM @tree AS a WHERE a.Name LIKE '%444%'
    UNION
    SELECT b.* FROM @tree AS a
    INNER JOIN @tree AS b ON b.id = a.ParentID
    WHERE a.Name LIKE '%444%'


    Обновлено:
    Хотя нет, более одного родителя может быть. Неправильно понял вопрос. Тогда вот так:
    ;WITH hierarchy
    (
    	[level], id, ParentID, Name
    )
    AS
    (
    	SELECT 
    	0, id, ParentID, Name
    	FROM @tree AS a
    	WHERE a.name LIKE '%444%'
    	UNION ALL
    	SELECT
    	h.[level] + 1, b.id, b.ParentID, b.Name
    	FROM @tree AS b
    	INNER JOIN hierarchy AS h ON h.ParentID = b.id
    )
    
    SELECT * FROM hierarchy;
    Ответ написан
    1 комментарий
  • Как оплатить 25$ в google play для разработчика, если нет кредитки?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Виртуальной картой. Многие электронные платежные системы (QIWI, WebMoney и т.п.) позволяют создавать и использовать для платежей в интернете. Единственное, подтверждение личности может потребоваться.

    Для WebMoney вот: https://wm-card.com
    Ответ написан
    Комментировать
  • Верстка html шаблона для экспорта в пдф?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Таблицы для реализации "подчеркивания" и моноширинный шрифт (фиксированной ширины) для подставляемого текста.

    За счет фиксированного размера текста можно будет без проблем рассчитать максимальное число символов в строке и разбить по строкам.
    Ответ написан
    Комментировать
  • Кто полностью изучил книги Дональда Кнута "Искусство программирования"?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Есть как минимум один человек, сам Дональд Кнут :-)
    Ответ написан
    Комментировать
  • Как создать кнопку которая будет копировать текст с строки ввода и вставлять в много других строк?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    С использование jQuery можно вот так: jsfiddle.net/alekseynemiro/a4e522w4

    $('#btn').click(function(){
      $('[name="product_description[3][meta_keyword]"],[name="product_tag[3]"]').val($('[name="product_description[3][name]"]').val());
    });

    [name="имя элемента управления"] в данном случае указано два элемента, через запятую, у которых будет изменено значение:
    [name="product_description[3][meta_keyword]"],[name="product_tag[3]"]

    $('[name="product_description[3][name]"]').val() - из какого элемента взять значение.
    Ответ написан
  • Что за страности в Stream в.NET?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    ReadByte возвращает тип int, т.к. при достижении конца будет возвращено значение минус один. А тип byte может иметь значение в диапазоне от нуля до 255. То есть, считывая байты, сообщить о достижении конца потока при помощи типа byte невозможно (байт, имеющий значение ноль может быть полезным байтом), поэтому используется тип int.

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

    Метод Read возвращает число помещенных в буфер байт. Ноль - достигнут конец потока.

    FileInfo f = new FileInfo(@"C:\example.dat");
    using (FileStream fs = f.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
    {
     using (BinaryReader br = new BinaryReader(fs))
     {
       int bytesRead = 0;
       byte[] buffer = new byte[256]; // размер буфера 256 единиц байт
       StringBuilder result = new StringBuilder();
       while ((bytesRead = br.Read(buffer, 0, buffer.Length)) != 0) // читаем не более 256 единиц байт в buffer
       {
         // из buffer следует извлекать не более bytesRead (в конце это число может быть меньше 255)
       }
     }
    }

    Массивы являются ссылочными типами и нет необходимости использовать out.
    Ответ написан
    3 комментария
  • Как сделать ссылку шаринга страницы на facebook c кастомной картинкой для шаринга не используя meta теги?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Примерно так:
    http://www.facebook.com/sharer.php?s=100&p[url]=адрес ссылки&p[title]=заголовок&p[summary]=описание&p[images][0]=ссылка на картинку

    где p[images] - коллекция ссылок на изображения.

    Но не всегда может цеплять.

    --------------------------------------------------------------------------------

    Обновлено: К сожалению, теперь уже такое невозможно сделать. Только через мета-теги.
    4ee4a2cc7011466d885181797a78a46d.png
    Ответ написан
    1 комментарий
  • Как обрезать значения в многомерном массиве?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Подозреваю, что нужна рекурсия.

    Примерный алгоритм может быть таким:
    function Circumcision($arr, $size) // :-)
    {
      $arr = array_slice($arr, 0, $size);
      foreach($arr as $item)
      {
         if(is_array($item))
         {
            $item = Circumcision($item, 1); // привык к ооп, если что я не виноват :)
         }
      }
      return $arr;
    }
    
    $input = array("a", "b", "c");
    $result = Circumcision($input, 1);

    Давно не программирую на PHP, мог забыть нюансы и не уверен, что код заработает. Но идея, думаю, должна быть понятна.
    Ответ написан
    Комментировать
  • Как составить регулярку выкусывающую только первое вхождение?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Технология какая? Различия могут быть, в синтаксисе.
    Имя можно дергать либо из value, либо из содержания option.

    Из value так:
    "([^\x22]+)"
    Ответ написан
    4 комментария
  • Смена языка на странице?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    А что, хорошая идея, локализовать сайты одними только HTML и CSS!

    Зачем нужны все эти JavaScript, PHP, ASP .NET, Perl, Python, Ruby и прочая непонятная белиберда. Это все прошлый век, будущее за HTML и CSS!

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

    Бред конечно, но это все возможно, вот пример (кликать по толстому тексту):
    jsfiddle.net/alekseynemiro/fzxLz35p

    Хотя почему бред? (не про нефть, конечно) Думаю, для мелких статичных проектов, вкупе с LESS или SCSS (для удобства) вполне можно использовать такой странный способ. Можно еще проще - скрывать блоки, но объем данных на странице будет больше. Псевдоклассу :target может быть найдется применение для решения проблемы передачи языка через адресную строку. Нужно подумать, но идея безумная :-) Применение, как минимум, JavaScript существенно упростит решение.
    Ответ написан
    Комментировать
  • Зачем гитхаб так плохо сделал свой OAuth?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Никак, пока это у себя не поменяет сам GitHub :)

    Для тестовых приложений я делал веб-прокси:
    oauthproxy.nemiro.net

    Код JavaScript, можно посмотреть на странице.
    Там делается перенаправление на адрес, указанный в returnUrl.

    Это не для всех поставщиков работает, бывает больше ограничений, но GitHub вполне позволяет использовать такую хитрость.

    Для некоторых поставщиков приходится создавать пачку приложений, для каждого адреса обратного вызова :)

    Делал сводную таблицу (пока не публиковал) для одной статейки. Снимок таблицы представлен ниже, может пригодится:
    bf63c4c77d3644b2b977f52d18a0a73b.png
    Информация актуальна на декабрь 2014.
    Ответ написан
    5 комментариев
  • Как закрывается код известных cms?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Силой слова - лицензионным соглашением :)

    Обфускация немного ограничит возможности по незаконному использованию.
    Ответ написан
    7 комментариев
  • Антивирус MSE при ежедневном обновлении надолго нагружает svchost на 400-800Mb. Это нормально?

    AlekseyNemiro
    @AlekseyNemiro
    full-stack developer
    Его иногда переглючивает. Помогает переустановка. Или можно просто отключить его. Потом, когда понадобится, включить.

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

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