Как стать автором
Обновить
57
0
Павел Носов @kaluzhanin

Пользователь

Отправить сообщение

Учёные выдвинули гипотезу о том, что измерения времени не существует

Время на прочтение5 мин
Количество просмотров9.9K
image

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

В двух недавних работах (одна уже опубликована и вторая вот-вот подоспеет) в журнале «Physics Essays», Амрит Сорли, Давид Фискарлетти, и Душан Клинар из научно-исследовательского центра Бистра в городе Птуй (Словения), более подробно описали, что всё это значит.

Узнать подробнее...
Всего голосов 201: ↑182 и ↓19+163
Комментарии388

Некоторые (полезные) советы по Windows 7

Время на прочтение4 мин
Количество просмотров38K
Содержание:
1. Быстрый запуск приложений с правами администратора
2. Отчет об использовании электроэнергии
3. Поиск в интернете из меню «пуск»
4. Навигация по панели задач
5. Скрытие значка Windows Live Messenger
6. Сворачивание окон
7. Быстрое открытие и закрытие копии приложения
8. Копирование файлов из командной строки в несколько потоков
9. Быстрое управление окном

Читать дальше →
Всего голосов 282: ↑218 и ↓64+154
Комментарии113

Учимся логично делать прототипы

Время на прочтение9 мин
Количество просмотров65K
Зачем вам это?

  • Если вы знаете как делать сайт, этот метод поможет вам убедить заказчика, почему вы предлагаете ему именно этот вариант.
  • Если вы заказываете сайт, то сэкономите от 2 до 10 часов объяснений что вам нужно и зачем.
  • Если вы стартапер, то вся ваша команда сможет участвовать в создании нового сайта или лэндинга. Тот самый случай, когда одна голова хорошо, а команда лучше.
  • Если вы учите стартаперов, то сможете помочь им выглянуть из позиции «я знаю как надо» и без сопротивления подвести их к началам CusDev-a.

Читать дальше →
Всего голосов 58: ↑53 и ↓5+48
Комментарии9

Онлайн курсы, взгляд преподавателя + зов разработчикам

Время на прочтение6 мин
Количество просмотров70K
imageВ данной статье я изложу свой взгляд на проведение онлайн курсов: какие есть игроки в Интернете, и чего, на мой взгляд, категорически не хватает в Рунете (Ау-у, разработчики!). В конце опрос.

Речь пойдёт об Learning Management Systems (LMS) для частных лиц. Модельные ситуации такие:
  • Преподаватель кружка для школьников средних классов по математике во Дворце Пионеров имеет несколько групп. Хочет организовать свой материал и как-то мотивировать детей что-то делать дома за компьютером.
  • Преподаватель ВУЗа вместе со своими студентами хочет сделать человеческий электронный конспект своих лекций. С нумерацией рисунков, оглавлением, формулами и подобными LaTex'овскими прибаутками.

Читать дальше →
Всего голосов 47: ↑44 и ↓3+41
Комментарии46

RESTful API на Node.js + MongoDB

Время на прочтение16 мин
Количество просмотров257K
Я, будучи разработчиком мобильных приложений, часто нуждаюсь в backend-сервисах для хранения пользовательских данных, авторизации и прочего. Конечно, для подобных задач можно использовать BaaS (Parse, Backendless, etc…). Но свое решение — это всегда более удобно и практично.

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

В данной статье будет рассмотрено построение REST API для мобильного приложения на Node.js с использованием фреймворка Express.js и модуля Mongoose.js для работы с MongoDB. Для контроля доступа прибегнем к технологии OAuth 2.0 с помощью модулей OAuth2orize и Passport.js.

Пишу с позиции абсолютного новичка. Рад любым отзывам и поправкам по коду и логике!

Содержание

  1. Node.js + Express.js, простой web-сервер
  2. Error handling
  3. RESTful API endpoints, CRUD
  4. MongoDB & Mongoose.js
  5. Access control — OAuth 2.0, Passport.js

Читать дальше →
Всего голосов 44: ↑41 и ↓3+38
Комментарии63

Коктейли ко дню программиста

Время на прочтение5 мин
Количество просмотров188K
Здравствуй, Хабр!

Осталось несколько дней до дня программиста и, конечно, в эту 13-ю пятницу, многие из пользователей хабра буду отмечать этот праздник. Буду отмечать и я.

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

Все началось вот с чего: моя супруга увлекается кулинарией и ведет небольшой кулинарный блог. В прошлом году на мой день рождения она пригласила к нам в гости на кухню настоящего бармена из барного startup-проекта БАРаДОМа.нет. С момента знакомства с Артёмом (барменом который превратил мой день рождения в домашнюю барную вечеринку), у меня появилась идея: найти рецепты (или придумать самим) коктейлей, которые бы вписались в IT-тематику.

Итогом нескольких дней активной переписки с Артёмом стала вот такая небольшая коктейльная карта:

  • Ruby
  • Python
  • Суровый Perl
  • JMP (aka Assembler)
  • Profit!
  • Epic fail
  • Memory leak


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

Чин-чин!
Всего голосов 240: ↑217 и ↓23+194
Комментарии109

7 рефакторингов для больших ActiveRecord — моделей

Время на прочтение9 мин
Количество просмотров13K
От переводчика: предлагаю вашему вниманию вольный перевод статьи из блога Code Climate под названием 7 Patterns to Refactor Fat ActiveRecord Models.
Code Climate — мощное средство анализа качества кода и безопасности Ruby on Rails — приложений.

Введение


Когда разработчики начинают использовать Code Climate для улучшения качества их Rails-кода, им приходится избегать «распухания» кода их моделей, так как модели с большим количеством кода создают проблемы при сопровождении больших приложений. Инкапсуляция логики предметной области в моделях лучше, чем помещение этой логики в контроллеры, однако такие модели обычно нарушают Принцип единственной обязанности (Single Responsibility Principle). К примеру, если поместить в класс User все что относится к пользователю — это далеко не единственная обязанность.
Читать дальше →
Всего голосов 23: ↑20 и ↓3+17
Комментарии12

Путь JavaScript модуля

Время на прочтение28 мин
Количество просмотров121K


На момент написания этой статьи в JavaScript еще не существовало официальной модульной системы и все эмулировали модули как могли.

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

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

Дело в том, что раньше не думали, что на JavaScript можно делать огромные проекты, а не просто «пропатчить DOM», поэтому о модулях не думали. Да и вообще не думали о будущем. И тут Внезапно будущее нагрянуло! Все вроде-бы уже есть, а модули в JavaScript, мягко говоря, запаздывают. Поэтому разработчикам приходится крутиться и выдумывать какие-то эмуляторы модульности.

Думаю многие из вас читали прекрасную статью Addy Osmani Writing Modular JavaScript With AMD, CommonJS & ES Harmony, которая стала одной из глав его книги Learning JavaScript Design Patterns в этой статье рассказывается про «современные» JavaScript модули или же читали достаточно старую статью JavaScript Module Pattern: In-Depth 2010 года про «старые» модули.

Я не буду переводить эти статьи и не буду делать из них солянку. В своей статья я хочу рассказать о моем модульном пути. О том как я проделал путь от «старых» модулей к «новым» и что использую сейчас и почему.
Читать дальше →
Всего голосов 188: ↑185 и ↓3+182
Комментарии71

Прокрастинация. Символическая система вознаграждения. Часть 1

Время на прочтение7 мин
Количество просмотров154K
Что такое прокрастинация? Это термин в психологии, который подразумевает склонность к постоянному откладыванию дел или мыслей. Прокрастинация не является ленью, лень это отсутствие или недостаток трудолюбия. В чём проявляется прокрастинация? В том, что человек осознаёт выполнение важных дел, но откладывает их на потом или заменяет дела развлечениями. Когда сроки подходят, он либо бросает всё, либо пытается выполнить работу за короткий промежуток времени, с предсказуемым результатом.

Для тех кто хочет преодолеть прокрастинацию быстро, просто прочитав эту статью
Подробности под катом
Всего голосов 60: ↑55 и ↓5+50
Комментарии54

Директивы в AngularJS

Время на прочтение7 мин
Количество просмотров83K
Директивы — это ключевая особенность AngularJS. С помощью директив можно добавлять новое поведение существующим HTML элементам, можно создавать новые компоненты. Примерами директив, добавляющих новое поведения для существующих HTML элементов, могут служить input, select, textarea в связке с ngModel, required и т.п. Перечисленные директивы в основном связаны с валидацией форм в AngularJS. Но тема валидации заслуживает отдельной статьи.

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

Если вы разрабатываете приложение на AngularJS и не создаете директивы, то это уже само по себе немного настораживает. Либо ваше приложение достаточно простое и уложилось в стандартные возможности AngularJS, либо, скорее всего, что-то не так с архитектурой вашего приложения. А если у вас при этом есть работа с DOM-ом в контроллерах или сервисах, то вам однозначно надо разбираться с темой создания директив, т.к. манипуляций с DOM-ом не должно быть нигде, кроме директив.

В данной статье я постараюсь рассмотреть процесс создания собственных директив на нескольких примерах.

Читать дальше →
Всего голосов 22: ↑20 и ↓2+18
Комментарии18

Что нужно знать каждому разработчику о кодировках и наборах символов для работы с текстом

Время на прочтение8 мин
Количество просмотров116K
Это первая часть перевода статьи What Every Programmer Absolutely, Positively Needs To Know About Encodings And Character Sets To Work With Text

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

Эта статья о кодировках и наборах символов.
Читать дальше →
Всего голосов 98: ↑89 и ↓9+80
Комментарии37

7 паттернов рефакторинга толстых моделей в Rails

Время на прочтение6 мин
Количество просмотров29K
Толстые модели сложны в поддержке. Они, конечно, лучше, чем контроллеры, захламленные логикой предметной области, но, как правило, нарушают Single Responsibility Principle(SRP). “Всё, что делает пользователь” не является single responsibility.
В начале проекта SRP соблюдается легко. Но со временем модели становятся де-факто местом для бизнес-логики. И спустя два года у модели User больше 500 строчек кода и 50 методов в public.
Цель проектирования — раскладывать растущее приложение по маленьким инкапсулированным объектам и модулям. Fat models, skinny controllers — первый шаг в рефакторинге, так давайте сделаем и второй.
Второй шаг
Всего голосов 38: ↑35 и ↓3+32
Комментарии27

Понимание ООП в JavaScript [Часть 1]

Время на прочтение16 мин
Количество просмотров337K
— Прототипное наследование — это прекрасно
JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

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

К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
Читать дальше →
Всего голосов 129: ↑119 и ↓10+109
Комментарии71

Через тернии к Haskell. 1/2

Время на прочтение25 мин
Количество просмотров223K


Первая часть короткого и жесткого введения в Haskell. Вторую часть можно найти здесь

tl;dr: Очень краткое и сжатое введение в Haskell.


UPD. Если туториал вам понравился, черкните пару строк автору оригинальной статьи. Человеку будет приятно ;)
Классные картинки, много текста и вынос мозга
Всего голосов 137: ↑133 и ↓4+129
Комментарии52

vkontakte_api: ruby-адаптер для ВКонтакте API

Время на прочтение7 мин
Количество просмотров28K
В начале этого года мне понадобилось работать с API ВКонтакте из rails-приложения. Увы, я не нашел сколько-нибудь устраивающего меня гема: где-то меня принуждали писать названия методов в camelCase (что в ruby-коде выглядит неестественно), где-то — обязательно проходить авторизацию через библиотеку (при том, что я использовал omniauth) и вообще везде для обращений к API использовался захардкоденный Net::HTTP, блокирующий реактор эвентмашины, на которую я тогда прицеливался. Также в плане документации почему-то все было очень грустно, и приходилось постоянно читать исходники.

Так появился на свет vkontakte_api. Рельсовый проект, послуживший поводом для написания данной библиотеки, уже успел почить — но гем живет и продолжает развиваться, в июле достигнув версии 1.0 (которая послужила поводом для значительных изменений). Используя faraday, библиотека поддерживает вызов любых методов API, загрузку файлов на сервера ВКонтакте и опциональную авторизацию, не принимая за программиста решения, упомянутые в предыдущем абзаце.

Посмотрим, как работать с API с помощью vkontakte_api. В качестве примера сгодится несложное веб-приложение, отображающее на странице ленту новостей (API-метод newsfeed.get), список друзей (friends.get) и групп (groups.get) пользователя, прошедшего OAuth2-авторизацию. А выглядеть это будет примерно так:


Читать дальше →
Всего голосов 43: ↑40 и ↓3+37
Комментарии27

Релиз Nginx CT++ Module 0.5 — высокопроизводительного модуля-шаблонизатора для веб-сервера

Время на прочтение2 мин
Количество просмотров3.3K
Первоначально хотел оформить как топик-ссылку, но тогда не получилось бы вставить картинку:

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

Позднее, как появится свободное время, напишу более подробную пошаговый HowTo, что вообще можно и что нужно делать с модулем, как можно представить MVC в виде: M — ваши сервисы, V — этот модуль и C — Nginx.
Читать дальше →
Всего голосов 65: ↑61 и ↓4+57
Комментарии72

Обратная сторона луны

Время на прочтение14 мин
Количество просмотров46K
При написании приложений, одной из важнейших вопросов являются потребление памяти и отзывчивость (скорость работы).

Считается, что сборщик мусора – черный ящик, работу которого нельзя предугадать.

А еще говорят, что GC в .NET практически не настраиваемый. А еще, что нельзя посмотреть исходники как классов .NET Framework, так и CLR, GC и т.п.

А я скажу как бы ни так!

В данной статье мы рассмотрим:
  • структура организации размещения объектов в памяти
  • CLR 4.5 Background Server GC
  • правильная настройка сборщика мусора
  • эффективный апгрейд приложений до .NET 4.0+
  • правильное ручное управление памятью

Читать дальше →
Всего голосов 138: ↑132 и ↓6+126
Комментарии28

Хочешь быть iOS разработчиком? Будь им!

Время на прочтение2 мин
Количество просмотров387K
На хабре в прошлом месяце была опубликована статья Конкурс ВК: Мессенджер для Android. Как это было!, в которой автор поделился своими мыслями о конкурсе и опубликовал список ресурсов и статей, которые помогли ему в создании приложения. Так как в последнее время я начал изучать разработку под iOS, то у меня скопилось некоторое количество ссылок, которые могут быть полезны для начинающих. Поэтому я последую его примеру и сделаю то же самое, только для своей платформы. Надеюсь, кому-нибудь они окажутся полезны и сэкономят немного времени.

Читать дальше →
Всего голосов 234: ↑222 и ↓12+210
Комментарии38

CoffeeScript: Классы

Время на прочтение16 мин
Количество просмотров21K
CoffeeScript: Classes

В ECMAScript пока отсутствует понятие «класс», в классическом понимании этого термина, однако, в CoffeeScript такое понятие есть, поэтому сегодня мы рассмотрим этот вопрос очень подробно.


Содержание:

1. Основные понятия
2. Члены класса
   2.1. Метод constructor
   2.2. Открытые члены класса
   2.3. Закрытые члены класса
   2.4. Защищенные члены класса
   2.5. Статические члены класса
   2.6. Оператор => (fat arrow)
3. Наследование
4. Дополнительная литература

Читать дальше →
Всего голосов 44: ↑40 и ↓4+36
Комментарии15

Оптимизация работы веб-студии. Применение теории ограничений в производстве сайтов

Время на прочтение6 мин
Количество просмотров54K


В статье «12 тыс рублей за сайт. Есть ли бизнес за МКАДом?» я писал про наш подход к разработке сайтов на базе разработанной внутри компании технологии. На момент написания той статьи, мы выпускали «под ключ» 24 сайта в месяц. Это больше чем один сайт в день силами команды из 8 человек.

После рассказа на хабре о нашей технологии количество заявок на разработку сайтов выросло в несколько раз. Только за март 2012 было выставлено около 60-ти коммерческих предложений и, большая часть из них превращалась в договора.

И тут наше производство затрещало по швам. Практически сразу заявки стали становиться в очередь, менеджеры начали путаться в проектах, дизайнеры стали проситься в отпуск. Ситуация становилась поистине напряженной…
Читать дальше →
Всего голосов 88: ↑84 и ↓4+80
Комментарии38

Информация

В рейтинге
Не участвует
Откуда
Калуга, Калужская обл., Россия
Дата рождения
Зарегистрирован
Активность