Pull to refresh
86
0
inlanger @inlanger

User

Send message

Node.js и новый фронтенд в вебе

Reading time5 min
Views46K
(Дата оригинала — 7.10.2013. У оригинала — очень оживлённая дискуссия в комментариях)

Фронтенд-разработчики имеют довольно долгую и сложную историю в программировании. Долгое время отправляемое в браузер было так легко отобразить, что не было настоящей потребности в этой специализации. Многие считали, что они были просто графическими дизайнерами с немного другими выразительными средствами. Мысль о том, что они могли в один прекрасный день специализироваться в веб-технологиях, HTML, CSS, Javascript — была смехотворной; в лучшем случае — пользовательский интерфейс их удел или, в конце концов, кто-то мог специализироваться на том и другом и иметь эту работу.
Читать дальше →
Total votes 75: ↑59 and ↓16+43
Comments40

(M)VC Framework Locomotive

Reading time4 min
Views4.8K
Уже несколько дней я занимаюсь подбором Node.js фреймворка, для решения нескольких демо задач. Прошел я 4 фреймворка (Locomotive, Express, Geddy, Sails) и цикл своих статей я решил начать с Locomotive.

Locomotive в поле моего зрения попал по рекомендации моего товарища, который мне сказал: “Слушай есть интересный новый фреймворк реализующий MVC поверх Express.” — и меня это заинтересовало что в последствии привело к добавлению Locomotive в список “подопытных”.
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments4

Хабрахабр попал в реестр запрещенных сайтов

Reading time1 min
Views126K
9 октября Роспотребнадзор внес Хабрахабр в реестр запрещенных сайтов, сообщает «Роскомсвобода».



Решение было принято из-за комментария к статье «Роскомнадзор и ЛБИ разработали критерии оценки запрещенной информации в интернете о самоубийствах», в котором хабравчанин shara цитировал ироничную запись о способе самоубийства. Там же приводились ссылки на ЖЖ, «ВКонтакте», «Ответы@ Mail.Ru» и другие ресурсы, где был доступен текст этой записи. Сам комментарий уже удален, его автор находится в «read-only».
Читать дальше →
Total votes 374: ↑351 and ↓23+328
Comments693

Тонкости в процессе дизайна для стартапов

Reading time7 min
Views28K
Эта статья вышла из моего пути “проб и ошибок”, и почти каждый тезис так или иначе связан с неудачей или успехом на этапе проектирования и дизайна для какого-либо стартапа.



Надеюсь, что она поможет дизайнерам избежать тех же ошибок, на которые натолкнулась в свое время я. Людям, которые решили сделать свой стартап, эта статья поможет учесть тонкости, связанные с процессом разработки и сделать более качественный продукт.
Читать дальше →
Total votes 51: ↑48 and ↓3+45
Comments13

Некоторые возможности Python о которых вы возможно не знали

Reading time8 min
Views113K

Предисловие


Я очень полюбил Python после того, как прочитал книгу Марка Лутца «Изучаем Python». Язык очень красив, на нем приятно писать и выражать собственные идеи. Большое количество интерпретаторов и компиляторов, расширений, модулей и фреймворков говорит о том, что сообщество очень активно и язык развивается. В процессе изучения языка у меня появилось много вопросов, которые я тщательно гуглил и старался понять каждую непонятую мной конструкцию. Об этом мы и поговорим с вами в этой статье, статья ориентирована на начинающего Python разработчика.

Подробности
Total votes 92: ↑75 and ↓17+58
Comments31

История запуска приложения Hideninja VPN под Android (Часть 1): Первый прототип, первый взлом In-App Purchase

Reading time5 min
Views25K
Нас взломали! Нас взломали!
— не отличалась оригинальностью моя реакция на взлом In-App Purchase моего приложения “Hideninja VPN” под Android. Но об этом я написал только в предпоследнем абзаце. А до него есть еще несколько строк о том, что за проект такой этот «Hideninja VPN». Также я расскажу о том, как был пройден путь от первого прототипа, как проект вышел в top-5 по запросу “vpn” англоязычного Google Play, как редизайн повлиял на восприятие приложения пользователями, сбор граблей и, наконец, про взлом In-App Purchase. Конечно, я разделил этот материал на несколько частей, иначе читать его было бы абсолютно утомительно. Итак, Часть 1.

image

Вот она, взломанная “Версия 3.3 PRO”.

Читать дальше →
Total votes 54: ↑46 and ↓8+38
Comments37

Материалы по Derby.js

Reading time1 min
Views13K


Так получилось, что в последнее время материалов накопилось достаточно и здесь они просто собраны вместе.

Материалы разбиты по группам:
— для сомневающихся
— для начинающих
— для продолжающих


Тишина должна быть в библиотеке
Total votes 22: ↑10 and ↓12-2
Comments5

Почему не растет частота?

Reading time7 min
Views166K
Clocking PCМногие, наверное, помнят, какими темпами увеличивалась тактовая частота микропроцессора в 90-х и начале 2000-х годов. Десятки мегагерц стремительно переросли в сотни, сотни мегагерц почти мгновенно сменились цельным гигагерцем, затем гигагерцем с долями, двумя гигагерцами и т.д.
Но последние несколько лет частота уже не растет так быстро. От десятка гигагерц мы сейчас почти так же далеки, как и 5 лет назад. Так куда же исчез прежний темп? Что препятствует, как и раньше, «задирать» частоту вверх?

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

Читать дальше →
Total votes 178: ↑162 and ↓16+146
Comments204

Django работает не так, как вы думаете

Reading time4 min
Views35K

Когда я читаю список плюшек, которые мне предоставляет какой-либо фреймворк, я представляю, что примерно под ними подразумевается. Когда я читаю документацию по плюшкам — я убеждаюсь, что всё в целом действительно так, как я и думал. Когда я пишу код, я постигаю дао. Потому что всё на самом деле совсем не так.

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

Ну а чтобы не быть голословным — перейдём к примерам. Нас ждут:
  1. Неудаляемые модели, которые мы удалим
  2. Валидируемые поля, которые не валидируются
  3. Два админа, которые портят данные

Примеры
Total votes 69: ↑56 and ↓13+43
Comments54

Impress: многоцелевой сервер приложений для Node.js

Reading time7 min
Views17K
Несмотря на заметные успехи, Node.js все еще остается специализированной технологией, которой преимущественно закрывают узкие места в системах, написанных в другом стеке технологий. Причина такого положения кроется в том, что сама по себе нода не имеет многих библиотек, к которым мы привыкли на других языках и которые обеспечивают быструю разработку именно прикладного ПО. Например, для того, чтобы разделить в коде обработчики разных URL, отдавать статические файлы, организовывать сессии, запускать нескольких потоков, иметь доступа к БД, кешировать данные в памяти, разграничивать права пользователей, иметь логи и ротировать их, создавать сетевое API, рендерить шаблоны, настраивать URL-реврайтинг, обеспечивать быструю доставку событий с сервера на клиенты, для всего этого, и многих других задач, используются отдельные библиотеки (модули). Разные модули написаны разными разработчиками, сложно стыкуются, конфликтуют. В общем, мы решили, весь этот набор обязательного функционала, необходимого практически в каждом веб-приложении, объединить в один сервер приложений и повысить, таким образом, связанность кода, сделать ядро сервера приложений монолитным и более согласованным, чем решения, собранные из отдельных библиотек. Проект Impress уже анонсировался как прототип, а сейчас предоставляет весь необходимый арсенал для быстрой разработки приложений, что протестировано на десятке живых проектов. Impress значительно отличается от другой широко распространенной платформы так же, как импрессионизм отличается от экспрессионизма, то есть, производит целостное, хорошо продуманное эстетическое впечатление, в противоположность внезапному выбросу эмоций. Но мы, не вовлекаясь в критику чужого кода, перейдем к демонстрации конструктивных особенностей Impress.
Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments15

Linux Malware Detect — антивирус для веб-серверов

Reading time4 min
Views65K


Интернет уже не тот, что прежде — кругом враги. Тема обнаружения непосредственного заражения сайта и поиска вредоносных/зараженных скриптов на взломанном сайте рассмотрена слабо, попробуем это исправить.
Итак, представляем вашему вниманию Linux Malware Detect.

Linux Malware Detect (LMD) — это сканер для Linux, предназначенный для поиска веб-шеллов, спам-ботов, троянов, злонамеренных скриптов и прочих типичных угроз характерных для веб-пространств и особенно актуален для виртуальных шаред-хостинг платформ. Главное отличие от прочих Linux-антивирусов — его веб направленность, сканирование файлов веб-сайтов, ведь обычные антивирусы ориентируются на более глобальные угрозы уровня системы.
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments48

TCL Idol X — лёгкий FullHD смартфон с тонкими рамками

Reading time8 min
Views46K
Компания Alcatel на выставке Mobile World Congress 2013, которая проходила в феврале этого года в Барселоне (Испания) представила свой новый 5" смартфон One Touch Idol X. Девайс получился симпатичным и имеет неплохие технические характеристики, речь о которых пойдет дальше, а также Android версии 4.2.2 Jelly Bean в качестве операционной системы.



Мало кто знает, но компания TCL Communication является владельцем бренда Alcatel (такое название более известно потребителям). Именно поэтому на выставке смартфон представлен как Alcatel One Touch Idol X. А вот под брендом TCL аппарат выпускается на внутреннем рынке. Именно об этой модели и пойдет речь в обзоре.
Читать дальше →
Total votes 19: ↑11 and ↓8+3
Comments22

Animate.css — набор кроссбраузерных CSS3 анимаций

Reading time1 min
Views94K

Animate.css




На днях наткнулся на эту замечательную вещь и решил поделиться с Хабрахабром.
Animate.css — сборка отличных кроссбраузерных CSS3 анимаций в одном файле.
Читать дальше →
Total votes 71: ↑65 and ↓6+59
Comments23

5 полезных батареек для Django

Reading time3 min
Views33K
Разрабатывая постоянно сталкиваешься с разнообразными задачами, которые часто решить в лоб не удаётся. Но многие задачи уже были решены кем-то — нужно только найти это решение.

Так, день за днём я насобирал небольшую коллекцию батареек, которые сильно облегчили мне жизнь. Чем и спешу поделиться:
Читать дальше →
Total votes 38: ↑33 and ↓5+28
Comments11

Эволюция проектирования с приходом адаптивного дизайна

Reading time10 min
Views31K
Хабр, привет!

Прошло около двух лет с момента запуска первого адаптивного сайта нашей компанией, примерно столько же этому вопросу в России вообще. С этого момента мне, как проектировщику, уже удалось пройтись по многим граблям, поэтому в первом своем посте хотел бы поделиться мыслями, что поменялось у нас в процессах проектирования сайтов вместе с приходом адаптива.
Читать дальше →
Total votes 51: ↑47 and ↓4+43
Comments13

Руководство по магическим методам в Питоне

Reading time28 min
Views573K
Это перевод 1.17 версии руководства от Rafe Kettler.


Содержание


  1. Вступление
  2. Конструирование и инициализация
  3. Переопределение операторов на произвольных классах
  4. Представление своих классов
  5. Контроль доступа к атрибутам
  6. Создание произвольных последовательностей
  7. Отражение
  8. Вызываемые объекты
  9. Менеджеры контекста
  10. Абстрактные базовые классы
  11. Построение дескрипторов
  12. Копирование
  13. Использование модуля pickle на своих объектах
  14. Заключение
  15. Приложение 1: Как вызывать магические методы
  16. Приложение 2: Изменения в Питоне 3


Вступление


Что такое магические методы? Они всё в объектно-ориентированном Питоне. Это специальные методы, с помощью которых вы можете добавить в ваши классы «магию». Они всегда обрамлены двумя нижними подчеркиваниями (например, __init__ или __lt__). Ещё, они не так хорошо документированны, как хотелось бы. Все магические методы описаны в документации, но весьма беспорядочно и почти безо всякой организации. Поэтому, чтобы исправить то, что я воспринимаю как недостаток документации Питона, я собираюсь предоставить больше информации о магических методах, написанной на понятном языке и обильно снабжённой примерами. Надеюсь, это руководство вам понравится. Используйте его как обучающий материал, памятку или полное описание. Я просто постарался как можно понятнее описать магические методы.
Читать дальше
Total votes 143: ↑139 and ↓4+135
Comments59

Организационные принципы при проектировании сайтов

Reading time4 min
Views15K
Это статья является логическим продолжением недавней статьи: Серьезное проектирование серьезных сайтов. Мы опять делимся опытом о проектировании больших сайтов. На этот раз я хочу рассказать о принципах построения самого процесса проектирования, ведь от самого процесса тоже очень многое зависит.

Есть ряд принципов, которые нужно обязательно использовать при проектировании сайтов.

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

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



Читать дальше →
Total votes 18: ↑8 and ↓10-2
Comments7

Chrome Logger — серверсайд логи в консоли хрома

Reading time1 min
Views34K


Chrome Logger это Google Chrome расширение для отладки серверсайд приложений в консоли хрома.

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

Инструкции по применению инсайд.
Читать дальше →
Total votes 75: ↑71 and ↓4+67
Comments27

Вышел Emmet v1.0

Reading time3 min
Views52K
Рад сообщить, что после более полугода разработки в свет вышел Emmet (бывший Zen Coding) v1.0.

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

section>h2+ul.nav>li.nav-item$*5>a

простым нажатием клавиши превращается в:

<section>
    <h2></h2>
    <ul class="nav">
        <li class="nav-item1"><a href=""></a></li>
        <li class="nav-item2"><a href=""></a></li>
        <li class="nav-item3"><a href=""></a></li>
        <li class="nav-item4"><a href=""></a></li>
        <li class="nav-item5"><a href=""></a></li>
    </ul>
</section>

Подробности
Total votes 100: ↑98 and ↓2+96
Comments36

Вскрытие Meizu MX2

Reading time6 min
Views81K
Приветствуем вас, Хабралюди! У нас появилась возможность вскрыть Meizu MX2 и разобраться, что и как у него внутри. В этом материале вас ждет поэтапный процесс разборки, от снятия крышки и металлического кожуха до удаления защитных панелей с основной платы, а также описание комплектующих, чтобы можно было получить общее представление о «внутренностях» Meizu MX2.


Читать дальше →
Total votes 68: ↑53 and ↓15+38
Comments69

Information

Rating
Does not participate
Location
Днепр, Днепропетровская обл., Украина
Date of birth
Registered
Activity