• О восьмерке

    На работе посадили за машину с восьмой виндой. Имхо - полная шляпа.

    Планшетный интерфейс на десктопе - это какой-то адовый пизцец. Скроллить мышкой шашечки с иконками, когда бы их можно сделать окном со списком - занятие не для слабонервных. Все самое нужно засунуто в закрома дебильного интерфейса. Убрана кнопка Пуск, к которой привык за много лет. Музыкальный проигрыватель распахивается в полноэкранном режиме.

    Винда должна определять, в какой среде она запущена: если на планшете, то со всеми фишками и модными интерфейсами, а если на десктопе - то как обычная винда с рабочим столом и пуском. У Микрософтов, похоже, нет понимания действительности. Сегодня десктопы предназначаются только для работы, а вся развлекуха - игры, музыка, фильмы, серфинг - перекочевала на айпады- андроиды. Поэтому главная задача Винды - обеспечить комфортную работу в других программах, а не выкручивать мозг.

    Никому не советую и при первой же возможности откачусь.

  • Доставка Бутстрапа

    Не все знают, что есть замечательный хостинг Бутстрапа: http://www.bootstrapcdn.com/

    Теперь этот фреймворк можно подключить со стороннего ресурса двумя строчками:

    <link href="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet">
    <script src="//netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script>
    

    Странно, что пока что Бутстрап не доставляет никто из крупных хостеров вроде Гугла, например.

  • Хорошая замена Гуглоридера

    – это не Фидли, как вы, наверное, подумали, а Иноридер, случайно найденный мной на Хабре. Иноридер в точности повторяет Гугловский интерфейс, в радостью импортирует все подписки из ридера, лишен дурацких наворотов Фидли. Он повторяет главную фишку Гугловского интерфейса - новость автоматически становится прочитанной при прокрутке. Взгляните, имхо, пока что лучший вариант.

    screenshot

  • О Ноде.js

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

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

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

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

  • Это больше чем ежедневная привычка

    Что бы Гугл не возомнил, закрытие ридера - большая ошибка. Потому что нельзя безнаказанно отфутболить полмиллиона юзеров, объявив, что сервис убыточный и бла-бла-бла. За этим последует потеря лояльности аудитории. Уж кому другому, но не Гуглу жаловаться на финансовые издержки сервиса, который отполирован и работает без обновлений уже несколько лет.

    Как объяснить суть трагедии непосвященному человеку? Лучше за меня это сделает Гитлер. Вождь германского народа узнал о закрытии любимого сервиса:

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

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

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

    Социальщина, мать ее.

  • Переезд

    Как же давно я ничего не писал! Виной тому переезд и трудоустройство. Теперь я проживаю в Воронеже и работаю в Датаарте. Процесс устройства туда – целая история, которую я надеюсь рано или поздно завершить и выложить. А пока что хочу сказать, что в Датаарте клево, впереди много работы, Воронеж нравится, и все хорошо.

  • Вы

    В интернете болезнь - все пишут “вы” с большой буквы. Идиотизм авторов меня поражает. Не понимая контекста обращения, лепят “Вас”, “Вам”, “Ваш”. Особо упоротые тупо лепят капсом - “ВАМ”, “ВАШ”. При этом игнорируют орфографию, пунктуацию, но “вы” с большой - это для них святое. В ответ на замечание каждый идиот с пафосом отвечает, что всего лишь соблюдает правила русского языка. Лучше бы голову включили!

    “Вы”, “ваш” и т.д. следует всегда писать с маленькой буквы. Этому есть простое объяснение: “вы” - это уже уважительное обращение, в отличии от “ты”. “Вы” (с маленькой) подчеркивает уважительное отношение к собеседнику или выражает неравенство статусов - обращение подчиненного начальнику, например. Этого уже достаточно. Вы же не тыкаете директору, как своему коллеге? Вы не равны - “вы” в обращении это подтверждает. Поэтому приемы вроде “Вы” и “ВЫ” означают лживое подобострастие и подхалимство.

    Я всю жизнь писал все обращения, заявления и деловые письма с обращением на “вы”, “ваш”. И ничего особенного не случалось. А людей, присылавших мне корреспонденцию с “Вы”, сторонился - часто оказывалось, не зря.

  • Почему я ушел с Друпал.ру

    В последнее время я почти не захожу на Друпал.ру. Просматриваю новости с главной в Гуглоридере, чтобы быть в курсе ключевых событий — выходе новой версии Друпала, крупных сборищах, тенденций разработки. Но на жаркие форумные дискуссии или подробные ответы в личку, как в былые времена, меня уже не хватает. Этому есть основания посерьезней нехватки времени.

    Я вижу несколько причин отказа от ресурса. Первая — это потеря интереса к Друпалу и системам управления в целом. С переходом на высокоуровневые фреймворки типа Джанги и Фласка я перестал нуждаться в нагромождении модулей и хуков. Теперь, когда мне нужна та или иная функциональность, я просто пишу код в нужном месте, и все работает. В Друпале и других движках недостаточно простого кода — он обязательно должен быть обернут в какой-то хук/класс/костыль, который система вызовет сама хрен знает когда. В итоге исчезает ясность проекта, потому что теперь мы опираемся на чужую архитектуру, выполненную не так, как бы мне хотелось.

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

    Некоторое время назад сеть наводнили слухи о кризисе Друпала, большей частью высосанные из пальца. Кривая развития Друпала лишь уменьшила уклон, но недоброжелатели уже открыли рты, что бы кричать о кризисе Друпала. Это не значит, конечно, что у Друпала нет проблем.

    У него одна большая проблема — неверная ориентация в первую очередь на программистов. Друпал бесконечно удален от простого пользователя. Это не КМС, а безумный конструктор, который нужно пилить и пилить, пилить и пилить, чтобы получить на выходе что-то годное. Бесконечная лапша о том, что есть бездна готовых модулей на все случаи жизни, заставляет все новых и новых пользователей ставить Друпал на Денвер и спрашивать на форуме в тысячный раз, как сделать галерею. Друзья, это ложь — либо ты сам пишешь код, либо платишь наемному программисту. В Друпале так было и будет — активно разрабатываются лишь сотня-другая модулей, остальные брошены, так как писались кем-то давно под особые требования.

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

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

    Другая, более важная причина, по которой я стараюсь не заходить на Д.ру заключается в том, что за эти 6 лет ресурс практически не изменился. Как 6 лет назад были одни проблемы, так они и остались. С момента зарождения русского сообщества на сайте не было хоть какой-то организованности. Понятно, что на ранних стадиях сайт был местом встречи нескольких завсегдатаев, где от владельца ресурса ничего не требовалось. Но с ростом аудитории и распространением Друпала в России сайту тоже необходимо измениться, повзрослеть. Эти вопросы витали в воздухе и неоднократно поднимались в форумах. Вот краткий перечень проблем, присущих Друпал.ру:

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

    2. Абсолютно полный провал с попытками структурировать обрывки полезной информации о Друпале. На Друпал.ру есть книга, которую никто не читает, потому что это не структура, а кладбище костылей. Основная боль форума — это очередной вопрос «пропал блок входа». Не удается пока что донести до пользователей, что делать в подобных случаях. Форум не есть средство для аккумулирования знаний, разве что если сделать хороший поиск. Кстати, на Д.ру поиск просто никакой.

    3. Спам. Как и все движки, Друпал может предлоджить только самые топорные способы отсечения спама — капча и анализ сторонним сервисом. Оба способа — неуважение к посетителю. Писать свою систему проверки (с подменой полей, например) некому. Поэтому в 2013 году спам вычищается руками.

    4. Неадекватность модераторов. Если кому рассказать, могут и не поверить, но на Д.ру модерские права дали дебилу, который обиделся на кого-то и снес сайт. Дебильность этого человека была очевидна с первой его реплики на форуме, за какие заслуги он получил права — остается только догадываться. Другому модератору иногда становится интересно, как работает тот или иной модуль, так что смена настроек на боевом сервере и жуткие тормоза — обычное дело.

    5. Но довольно злословить. Достаточно зайти на форум и почувствовать, что все по-прежнему — форум активно спамят, а новички забивают трекер глупыми вопросами. Периодически всплывают вбросы вида «Давайте введем карму!» Может, кто-то уже привык к этому, но не я.

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

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

    Все же, у меня остались еще несколько сайтов на Друпале (никак не могу их сплавить), поэтому мне не безынтересны новости с Друпал-фронта. Дерзайте, разработчики! Дрис, развивай свое детище!

    Комментарии из старого блога

    03/26/13 Niklan: По сути вы тоже высосали из пальца недостатки друпала. Ну нету в нем портала, блога и т.д. и .т.п. при установки, это не делает друпал хуже. У него есть мощный модуль OG, а также сборки Open Atrium и еще куча других. Если пользователю надо магазин, дак на хрена он качает заведомо пустую сборку а не Drupal Commerce (Commerce Kickstart). По такой логике надо вообще весь drupal.org запихнуть в базовую поставку, и весить он будет гб 10+++. Кому такое надо. В этом плане друпал как раз очень грамотно сделан. Надо готовое - бери сборку, не надо - качай чистый и пили сам. Это как с дистрибутивами линукса. Там ведь никто не ноет что ядро линукса идет чистое. Если тебе не надо разрабатывать свое и с нуля, дак возьми дистрибутив и пользуйся. Не знаю как вы, но я заметил что даже новички уже знают о сборках друпала.

    Что касается друпал.ру. Тут все так и есть. За сайтом почти не следят. На форуме полный писец. Когда я впервые зашел на него, там было гораздо больше опытных пользователей. Сейчас они тоже есть, но они больше как вы, пассивны и уже не участвуют, что тоже отразилось на сообществе. Друпал.ру 2 года назад и сейчас - небо и земля.

    03/26/13 Иван Гришаев: Может, и не делает хуже, но все чаще я стал замечать, что специализированные движки справляются с задачами лучше Друпала. А уж в плане установки/настройки уделывают только так. Пилить свою сборку для блога, которая через год безнадежно устареет, я не собираюсь.Желающим открыть интернет-магазин я рекомендую купить коробочное решение, сейчас масса достойных вариантов по цене до 10 тыс. руб.

    03/26/13 Niklan: Как по мне, вы сильно заблуждаетесь.

    Берем OpenAtrium, он справляется со своими аналогами не на друпале точно также, если не лучше. И установка\настройка у него не как в друпале.

    Попробуйте, например, Commerce Kickstart поставить. Увидите какая там установка и настройка. Все сведено к минимуму, только введи где и что надо и дождись конца - магазин готов.

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

    Не хотите пилить сборку - не надо, кто же вас заставляет, есть уже готовые. А вообще, попробовали бы вы Features. Делаете прототип, попутно ему обновляете ядро, что-то правите и сливаете feature и ставите уже свежак. Это проще чем вы думаете.

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

    Мне больше интересно, а почему выбрана была джанга, а не RoR например?

    03/26/13 Иван Гришаев: Я не буду спорить с первой частью комментария. Что использовать - это вопрос предпочтений. Мне кажется удобным использовать специализированные решения, а не пилить универсальный Друпал. Заметьте, что я не предлагаю все писать на Джанге: на работе у нас бок о бок крутятся и ПХП, и Питон и, прости господи, 1С.

    Джанго не мой любимый фреймворк, я больше предпочитаю Фласк - микрофреймворк, аналог Синатры для Руби. Я полагаю, вас больше интересует выбор языка? Питоном я заинтересовался, когда потребовалась автоматизация процессов на производстве - работа с файлами, почтой, парсингом документов, запросы к базам, работа COM-объектам в Винде. Питон как язык общего назначения отлично справляется с такими задачами, в отличии от Руби, который больше преуспел в вебе. И по причине того, что уже много было написано на Питоне, веб-проекты я делал на Джанго и Фласке. Руби и Питон в целом равнозначны, огромное число холиваров тому подтверждение.

    03/26/13 Niklan: Просто я недавно никак не мог решиться, что начать учить. И я за неделю столько информации о Ruby и Python для веб разрабов перерыл, что так и не нашел явного лидера среди них. Выбрал руби, так как RoR показался более перспективным для веба. Да и все поголовно утверждают что для рор огромное количество плагинов, а для джанги в разы меньше.

    03/26/13 Иван Гришаев: Согласен, в области веб-разработки Руби имеет больше возможностей, нежели Питон, а Рельсы богаче Джанги. Но мериться количеством плагинов я бы не стал, т.к. за время работы с Джангой в силу специфики проектов мне крайне редко приходилось прибегать к стороннему коду. И нужно учитывать не столько моду, сколько спрос на ту или иную технологию в вашем городе.

    06/07/14 Елена Турлина: Здравствуйте!

    Интересно было прочесть и статью, особенно несколько мест повеселили :) (я как раз такой “пользователь”, хоть и ни разу ничего на друпал.ру не спрашивала), и вашу дискуссию с Niklan.

    Для меня всё это заоблачная даль, ибо программистом я ни разу не являюсь, но с моим содействием и мной лично уже создано несколько сайтов. Где-то были мои идеи и контент, а несколько последних делаю сама со старта. Пришлось осваивать друпал. Он для меня оказался более привычным, так как была админом нескольких проектов по моим идеям, поэтому и выбор пал именно на него.

    Сейчас в процессе создание нескольких интернет-магазинов, и я действительно сталкиваюсь с большими трудностями, так как часто вылазит что-то не понятное, и приходится разбираться каждый раз как впервые разбиралась с такими действиями, которые сейчас уже на автомате (например, установка ядра, правильный бэкап или тот же потерянный вход в админку). Мне кажется, эти трудности никогда не кончатся. Особенно удручают моменты, когда понимаешь, что конкретная проблема решается только в режиме написания кодов или скриптов в каких-то файлах — тут меня всегда пугает и отталкивает что-то большее, чем по жёсткой инструкции заменить фалс на тру в определённой строке определённого файла.

    И вроде я хорошо обучаема, но, с другой стороны, понимаешь, что изучить всё не хватит времени просто.

    В ближайших планах ещё один проект, который подразумевает много всяких сложных накруток, которых я в друпале ещё не делала и не представляю ещё, как реализовывать. К примеру, разные классы ролей пользователей и другие связанные с этим функции (иерархия, разная степень открытости дискуссий и т. п.). Так вот у меня в связи с этим вопрос. Если проект будет воплощён в друпале, а потом потребует чего-нибудь более рационально-удобного для него, возможно ли будет перенести сайт (базу данных + файлы) на другой движок? Или это принципиально невозможно, и в чём рожали, в том и растите?

    06/07/14 Иван Гришаев: Добрый день! Я полагаю, перенести данные из одного движка в другой – задача не особо сложная, но муторная. Нужно будет изучить структуру данных обоих движков и написать скрипт переноса данных. Потребуется искать специалиста, знающего сразу оба движка.

  • Петиция в поддержку Гуглоридера

    Гуглоридер закрывают.

    Не допустим этого — подписываем петицию.

  • Накручивание голосований на Друпал.ру

    Простой скрипт на Питоне, накручивающий голосовалки на Друпал.ру:

    import threading
    import urllib
    import re
    import sys
    import time
    import random
    
    try:
        _, nid, variant = sys.argv[:3]
    except:
        print "Usage: python poll.py nid variant"
        exit(1)
    
    
    PROXY_PATTERN = r"\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}:\d{2,5}"
    POLL_URL = "http://www.drupal.ru/inner_poll/vote_js"
    
    PROXY_URLS = (
        "http://feeds.feedburner.com/best-proxy/oKhv",
    )
    
    proxies = []
    for url in PROXY_URLS:
        try:
            proxies.extend(re.findall(PROXY_PATTERN, urllib.urlopen(url).read()))
        except:
            continue
    
    params = {
        "n": nid,    # node id
        "v": variant # variant id ("0,1,n" if multiple)
    }
    data = urllib.urlencode(params)
    
    threads = []
    
    print len(proxies), "proxies =)"
    time.sleep(3)
    
    def job(p):
        time.sleep(random.randint(0, 60))
        urllib.urlopen(POLL_URL, data=data, proxies={'http': 'http://' + p})
    
    for p in proxies:
        t = threading.Thread(target=job, args=(p, ))
        try:
            t.start()
        except:
            pass
    

    Запускать так:

    python poll.py nid variant
    

    , где nid — номер ноды, variant — номер варианта ответа (нумерация с нуля) либо варианты через запятую.

    Комментарии к коду.

    1. На Друпал.ру голосование разрешено всем, даже анонимам.
    2. Единственное ограничение на голосование — IP должен быть уникальным в пределах номера ноды.
    3. Запрос осуществляется методом POST с передачей двух переменных: номера ноды и варианта. Про CSRF-токены не, не слышали.
    4. Каждый запрос делаем через свой прокси. Список прокси берем из RSS-ленты сайта http://best-proxy.ru/ Лента, как вы заметили, пропущена через Фидбернер, т.к. создатели сайта огораживаются от граббинга.
    5. Каждый запрос выделяем в свой тред.
    6. КПД проксей где-то 10%, что тоже неплохо.

    Область применения скрипта — накрутка и троллинг.

    Комментарии из старого блога

    03/10/13 RxB: Ну зачем… Теперь все будут знать

    03/10/13 Иван Гришаев: Да и хрен с ним. Во-первых, на Д.ру одни пхп-шники, во-вторых, best-proxy.ru больше не обновляется, прокси из РСС-ленты не работают.

    03/25/13 Александр Мальков: Но, все равно - спасибо. Интересный подход.

Страница 46 из 49