• Как преобразовать nodejs в статичный сайт?

    rumkin
    @rumkin
    Есть генераторы статичных сайтов для ноды:
    wintersmith.io
    assemble.io
    ну и т.п. по теме "static site generation".

    Выбор зависит от ваших задач и предпочтений.
    Ответ написан
    Комментировать
  • Ускоряет ли requirejs время загрузки скриптов?

    rumkin
    @rumkin
    requirejs работает так же параллельно, но зависимые скрипты он загружает после того как выполнит очередной скрипт и узнает что необходимо загружать в следующую очередь. Для того чтобы избежать этого используют различные техники, например прекомпиляцию. Подробнее тут habrahabr.ru/post/181536/.
    Ответ написан
    Комментировать
  • Как правильно разрабатывать приложение через тестирование?

    rumkin
    @rumkin
    Попробуйте программирование через проектирование. Все остальное — частные случаи. Разрисовываете на бумаге схему работы приложения, модуля или метода. Если какой-то участок не удается спроектировать с первого раза, значит, вы плохо знаете предметную область, отлично, надо доизучить, изучаете и снова возвращаетесь к участку. Затем пишите тесты по каждому узлу, потом сам код или наоборот, это как вам удобнее/быстрее.
    Ответ написан
    2 комментария
  • Что нужно обязательно знать для сферы облачных технологий?

    rumkin
    @rumkin
    Суть облака — это переносимая и масштабируемая инфраструктура, с возможностью быстрого развертывания. Основной способ — изоляция элементов (с помощью различных контейнеров, например виртуальных) и взаимодействие элементов по сети (иногда через unix-сокеты или dbus). Так что копайте в сторону lxc, openvz, docker.io, vagrant, bsd jails.
    Ответ написан
    3 комментария
  • Из чего должно состоять ядро для многопользовательских браузерных приложений?

    rumkin
    @rumkin
    Ядро многопользовательской системы должно содержать механизмы для взаимодействия пользователей. Вот минимальный набор:
    — Механизм конфигурации
    — Модуль управления пользователями с возможностью добавления активных и удаления неактивных с настраиваемым таймаутом (в зависимости от требований).
    — Очередь событий с моделью синхронизации времени, возможно с компенсацией задержки, если игра предполагает realtime-динамику.
    — Механизм обмена информацией сервер-пользователь например на websocket.
    — Механизм расширения: подключаемые контроллеры для выполнения задач, например генерации мира на лету, просчет взаимодействия, взаимодействие с контактом и т.д и т.п.

    UPD. Так же советую посмотреть на сторонние проекты, например express.io.
    Ответ написан
    1 комментарий
  • Почему запрос sql с Like выводит пустую строку?

    rumkin
    @rumkin
    Что выдает var_dump($result) ?

    Используйте mysql_fetch_assoc, если используете только ассоциативные массивы. Или переходите на pdo.
    Уберите лишние кавычки в конце примера.
    Проведите запрос без подстановки значения переменной.
    Убедитесь что $b не пустое.
    Ответ написан
    Комментировать
  • Что случилось с angular.ru?

    rumkin
    @rumkin
    Идите на angularjs.org. А через эту страницу вы сможете отправить письмо администратору домена, видимо, не заметили еще.
    Ответ написан
    Комментировать
  • Что можно сделать с детьми на уроках информатики?

    rumkin
    @rumkin
    Дайте реальную и полезную задачу — этого так не хватает современному образованию!
    Разбейте их на группы-фирмы, где они должны будут сами распределить роли — научатся саморганизации и заинтересуете всех учеников, а не только вьедливых ботаников.
    Пусть они запустят, допустим, приложение в Google WebStore с каким-нибудь полезным функционалом — научатся анализу рынка.
    Распределив роли на менеджеров, аналитиков и маркетологов, вы сохраните интерес у всех участников на протяжении всего обучения. Важно давать простые индивидуальные задания.
    Фирмы должны соревноваться за какой-то приз, звание или титул.
    Сделайте из знания ценность, пусть каждую неделю они борятся за вашу помощь в их проекте или за высокие отметки.

    Процесс реализации приложения делится на следующие части:
    — Выбор решаемой задачи.
    — Формирование сильных отличительных сторон приложения.
    — Описание функционала (проектная документация).
    — Этапы и сроки реализации.
    — Программирование и проверка (тестирвоание) каждого этапа.
    — Проверка работоспособности всего приложения.
    — Публикация и запуск проекта.

    Заданием может быть реализовать будильник или калькулятор на html+js — браузеры есть у всех. Если все фирмы будут реализовывать один вид проекта, то это научит их еще и конкуренции, промышленному шпионажу и прочему. Пусть под конец проголосуют чтобы определить победителей.
    Ответ написан
    5 комментариев
  • Стоит ли давать Haskell школьнику в качестве первого языка?

    rumkin
    @rumkin
    Я бы не стал давать какой-то конкретный язык, а порекомендовал бы дать каждого по чуть-чуть, это даст ему представление о разнообразии языков и о языке как инструменте, а не самоцели. Пускай попробует реализовать одну и ту же задачу средствами разных языков, постепенно увеличивая сложность. Так вы избежите ситуации, когда ваше желание изучить Хаскел, повлияет на его выбор и дадите ему мощную платформу для дальнейшего самообразования.
    Мне в свое время пришлось очень долго переучиваться с PHP на другие "нормальные" языки, да и по началу было страшно менять уже знакому среду. Так что пусть в омут с головой, если это его — ни чем не остановите.
    Вообще первым языком высокого уровня я бы рекомендовал ruby — он прост и пластичен, с ненавязчивым ООП, имеет обширное сообщество и развитую инфраструктуру, с малых лет научится переиспользовать код, писать тесты и доки. Хотя синтаксис его после семейства C, D, Obj-C, PHP, JS, Dart мне кажется почему-то "детским".
    Что не рекомендовал бы так это PHP и JS — слишком своеобразная судьба у языков и слишком много неучей в сообществе.
    Ответ написан
    Комментировать
  • Как запустить Dart на сервере?

    rumkin
    @rumkin
    А в чем проблема? Запускайте! Google, объявил его production-ready.
    Библиотеки для LevelDB есть.
    Ответ написан
    Комментировать
  • Как лучше реализовать последовательную обработку ошибок?

    rumkin
    @rumkin
    Лишний try-catch это всегда увеличение нагрузки. Поэтому, там, где обертки ради оберток, то лучше убрать. Некторые проекты обходятся несколькими общими классами для ошибок, не по происхождению (это вы в трейсе увидите), а по назначению: ClientException, AppExcetion и CoreException.

    Если вы обратили внимание, то широкого распространения наследование исключений не получило.

    Сейчас я думаю над моделью схожей с моделью событий в js. В первую очередь классифицирую события по типу, а не по классу-источнику, вместо числового ID (который опять же почти никто не использует), я использую текстовый id, например `user_login_failed` и массив $data c данными. Таким образом, я всегда вижу, что за ошибка пришла, получаю данные в удобном виде: массив $data итерируется и доступен программно, легко перевожу ошибку в сообщение на нужном языке (RU, EN) с подстановкой данных из объекта data, передаю в другие источники, например по сети. Такие данные можно хоть в БД класть :)
    Ответ написан
  • Как упорядочить (систематизировать) знания в голове?

    rumkin
    @rumkin
    Нашел самый действенный способ. Попробуйте записывать мысли (хоть в тот же gitwiki или простой блокнот). Это заставит вас пережевывать знания, а не глотать пачками, освободит место в голове (действительно освободит оперативную память, вы это почувствуете) и сформирует костяк ваших интересов, развивать которые планомерно станет проще. Вы сможете откладывать мысли, не боясь забыть их, свободное место в голове позволит распихать самое горячее по разделам мозга.
    Ответ написан
    1 комментарий
  • Есть ли смысл при вёрстке всем элементам прописывать box-sizing: border-box?

    rumkin
    @rumkin
    Много где используется этот подход для сетки и форм. Но на все элементы навешивать не стоит, это лишь повлечет трудности в дальнейшем. Ну и важно понимать айдиторию проекта.
    Я занимался разработкой front-end для достаточно крупного проекта, аудиторией которого были гики или продвинутые пользователи, нифронтенд бекенд в IE даже не видел (вообще ни разу, за чуть более чем год работы). Доработать под IE пришлось небольшую часть, но не html, а — js. Жалоб не было, а проект растет быстрее, чем разрабатывается, не стали париться.
    Ответ написан
  • Как упростить разработку верстальщику/фронтэндщику в веб-студии?

    rumkin
    @rumkin
    БЭМ-это css-реализация теневого дерева (Shadow DOM), если присмотреться внимателей. Так, что лучше использовать его сейчас, до того, как появятся полноценные веб-компоненты. БЭМ в чистом виде мне не очень нравится, поэтому я использую собственную модификацию, плюс, лучше использовать для этого SASS/LESS так как селекторы получаются достаточно пухлыми.
    С версткой смотрите в сторону jade(js) или slim(ruby), они позволяют переиспользовать код и накопить n-вариантов решения каждой задачи, потом будете просто подставлять и допиливать, а писать только новое и скрипт.
    Изучите более серьезные проекты (angular, amber), там сможете почерпнуть для себя свежие веяния в UI-разработке. Тот этап, на котором вы сейчас находитесь подразумевает изучение максимального количества вариантов, скорее всего нужный родится сам в каше знаний.
    Когда зарабатываешься, то раздражать начинает, каждая запятая в коде и худжший способ разобраться с этим — попытаться навести порядок в работе — больше отдыхайте, давайте мозгу соскучиться по любимому делу, тогда он будет работать более эффективно. Мне смена языка программирования очень помогает найти новые способы решения, казалось бы неразрешимых проблем (буквально сегодня закрыл целых 3 задачи, которые не мог решить по отдельности очень долго), лишь благодаря тому, что переключился с js на ruby.
    Обратите внимание на шаблоны проектирования вообще. Начинайте писать код на бумаге, проектирование помогает избежать художественных поисков в процессе, а значит делает ваш код подчинённым логике, а не эстетике, как следствие удовлетворенность результатом увеливается в среднем на 100—150 %, по личным ощущениям, так что у вас цифры могут отличаться.

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

    rumkin
    @rumkin
    Жесткая логика. Ха-ха-ха. Я — программист. Мои друзья — нет. Это не текст, а жесткая логика! Думаю, понятно, к чему веду.
    Короче, учитесь, молодой человек, если хочется. А что бы легче училось, прочтите "гении и аутсайдеры" (книга о том как стать профи в любом, выбраном вами, деле) и забудете весь этот бред, про "гуманитарный склад ума".
    Ответ написан
    Комментировать
  • Какие существуют контейнеры для генерации коробочных решений для server-side приложений?

    rumkin
    @rumkin
    Смотрите в сторону docker.io — это почти то что вам нужно. Продукт подробно не изучал, в двух словах — виртуальная ОС, как приложение.
    Vagrant отлично поможет, но с шифрованием тут облом выйдет, где вы ключ хранить собираетесь? В памяти виртуальной машины? Вытянут, если так понадобится (впорос цены). Уж лучше перейдите с php на что-то компилируемое или обратите внимание на hiphop-php.
    Поднимать и конфигурировать vm удобнее всего через менеджер конфигураций, например, chef: выбираете нужные рецепты (nginx, sql, nosql), пишите конфиг и запускаете. Chef-сам залезет на удаленную машину по ssh, установит нужное ПО. Пароли останутся у вас, а машина будет стоять за 7 замками.
    Ответ написан
  • Что делать, есл клиент требует возврат денег за программу?

    rumkin
    @rumkin
    Программные продукты обмену и возврату не подлежат. Так что договаривайтесь на своих условиях. Все что вы вернете — жест доброй воли. Остальное — в договоре, по суду или за столом переговоров.
    Ответ написан
    Комментировать
  • Как получить опыт для устройства на работу Python Developer?

    rumkin
    @rumkin
    Договориться можно обо всем. Мне, в подобной ситуации помог простой договор: на испытательный срок — детская з/п (по сути оплачиваемая стажировка), но, если я остаюсь, то мне платят на достойном уровне. Так я получил бесценный опыт, которого у меня не было, деньги на поддержание штанов, и достойную зарплату через 2 месяца.
    Принципиально важно не выклянчивать хоть сколько-нибудь, а обозначить, что это минимум, который вы можете себе позволить. Ну, и реальное рвение нужно иметь.
    Ответ написан
    Комментировать
  • CentOS 6.2 Dell PER310 (решено)

    rumkin
    @rumkin Автор вопроса
    Всем спасибо, хоть до конца и не понял, что именно я все-таки сделал. Но вставив сервисный CD Dell я переинициализировал жесткие диски и указал им работать рэйдом. После этого установка прошла в штатном режиме.

    Всем спасибо за участие!
    Ответ написан
    Комментировать