Search
Write a publication
Pull to refresh
0
@lazy007read⁠-⁠only

User

Send message

Ловушки языка С++

Reading time3 min
Views49K
Было бы неплохо сделать серию статей, в которых описывались различные не очевидные «особенности» языков программирования. Во-первых, «предупреждён — значит, вооружён», во-вторых, знание их позволяет глубже понимать язык и объяснить, в случае чего, чем они опасны. Даже если в своём собственном коде такие конструкции не используются, с этими ловушками можно встретиться при разборе чужого кода или работая в команде.
Читать дальше →

Курс по Ruby на Codecademy

Reading time1 min
Views18K
По многочисленным пожеланиям трудящихся учебный портал Codecademy представил курс по языку программирования Ruby.

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

Наиболее интересен курс будет, по-моему, тем, кто начинает изучение Ruby не как очередного языка, а как первого, тем, кто начинает изучать программирования вообще. В частности для тех, кто знаком только с HTML+CSS, но хочет начать разработку приложений на базе фреймворка Ruby on Rails. Понятия «переменная», «объект» и т. п. вводятся по ходу изложения.

Курс на английском, но на простом и понятном даже для меня с моим Soviet English.

Ну и собственно ссылка на курс: www.codecademy.com/ru/tracks/ruby

P.S. НЛО, верни топики-ссылки!

Примеры и рекомендации удобных инструкций

Reading time2 min
Views70K
Снова здравствуй, уважаемый хабралюд!

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

Всем, кому интересно, прошу под хабракат.
Читать дальше →

Фишинг паролей в GMail

Reading time1 min
Views92K
Сегодня с утра обнаружил у себя в почте вот такое письмо:



На самом деле никаких файлов к письму не прилагается, а все шесть ссылок (View, Download...) ведут по одному и тому же адресу:
http://95.211.83.65/~ru1/account.googlemail.com/viewer/13083e7f5f2c0890&mt/0AgIDhQrUEZCMdGc0ejVXZGZpb1FrbWo5cmc2ZVZOalE/?email=tutjaubralsvojmeil@gmail.com

И что там?

SugarJS — Синтаксический сахар для JavaScript

Reading time4 min
Views22K


Что такое SugarJS?


SugarJS — это open source (лицензия — MIT) библиотека Javascript, который расширяет нативные объекты полезными методами. Она разработана, чтобы быть интуитивным, ненавязчивым инструментом, повышающим выразительность кода, который позволял бы делать больше с меньшим количеством кода и меньше задумываясь над рутиной.

На самом деле у них очень информативный и простой сайт — где все уже хорошо написано.
Я просто постараюсь обозначить основные моменты.

Кратко...

  • Расширяет нативные элементы Javascript полезными, интуитивными методами.
  • Прост для понимания и в использовании.
  • Метод SugarJS не используется при наличии метода в родной реализации браузера.
  • Имеет систему тестирования, имеющую огромный набор тестов.
  • Расширяет возможности работы с датой и временем, обеспечивает их форматирование на нескольких языках (русский есть).
  • Отлично ладит с другими фреймворками и сторонним кодом.
  • Модульность, вы можете включать только нужные пакеты.
  • Полностью совместимый ECMAScript.
  • Заявлена поддержка всех основных браузеров, включая мобильные.
  • Поддерживает Node.js.
  • Имеет хорошую и удобную документацию.


Заинтересовало? Добро пожаловать под кат.
Читать дальше →

Восстановление расфокусированных и смазанных изображений. Повышаем качество

Reading time5 min
Views211K
Представляю вашему вниманию заключительную статью из трилогии «Восстановление расфокусированных и смазанных изображений». Первые две вызвали заметный интерес — область, действительно, интересная. В этой части я рассмотрю семейство методов, которые дают лучшее качество, по сравнении со стандартным Винеровским фильтром — это методы, основанные на Total Variaton prior.
Также по традиции я выложил новую версию SmartDeblur (вместе с исходниками в open-source) в которой реализовал этот метод. Итоговое качество получилось на уровне коммерческих аналогов типа Topaz InFocus. Вот пример обработки реального изображения с очень большим размытием:


Читать дальше →

MongoDB для разработчиков

Reading time3 min
Views38K
Всемирно известная компания 10gen, разрабатывающая опенсорсную базу данных MongoDB, представляет уникальный курс по MongoDB для разработчиков. Вы научитесь всему необходимому для создания вашего приложения на основе MongoDB. Курс позволит вам овладеть навыками установки, работы с JSON, созданием схем, запросов, сохранения данных, индексации и работы с языковыми драйверами. В процессе курса вы будете строить платформу для блога, основанного на MongoDB.
Shut up, and take my money!

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

Reading time25 min
Views234K


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

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


UPD. Если туториал вам понравился, черкните пару строк автору оригинальной статьи. Человеку будет приятно ;)
Классные картинки, много текста и вынос мозга

Проектирование с помощью сторибордов

Reading time5 min
Views31K
Наверное, многие из вас слышали про раскадровки. Их рисуют на первых этапах создания фильма или мультика. При производстве программного обеспечения дорого пропускать стадию проектирования, а при съемке фильма это не просто дорого, а очень, очень дорого. Джонни Депп не будет грызть черствые бутерброды на съемочной площадке, пока режиссер решает, что нужно добавить еще три сцены с русалками и вставить в сюжет приемного ребенка и поменять возлюбленную. Поэтому в фильмах все сцены заранее прорисовываются и утверждаются, иногда даже на них накладывают музыку и прокручивают, чтобы ещё на первых стадиях оценить зрелищность и сюжет фильма.
В проектировании такую роль выполняют вайрфреймы и прочие быстрые прототипы. Сториборды, сохраняя название и форму, как в киноиндустрии, при проектировании интерфейсов выполняют немного другие задачи.

Про сториборды я в первый раз услышала на курсе Human Computer Interaction


Преподаватель курса Скотт Клеммер рисует сториборд

Я не встречала ничего похожего в отчетах наших проектировщиков, а Клеммер говорил об этом, как о широко распространенной, всем известной практике.
Как оказалось, на западе этот инструмент довольно популярен, если интересно кем, как и зачем его используют, добро пожаловать под кат.
Читать дальше →

Node.js + Chromium = node-webkit: ещё более перспективный вариант второго шага эволюции веборазработчика

Reading time3 min
Views48K
Предисловие от переводчика.  В постскриптуме к моей вчерашней блогозаписи я указал, что AppJS — это не единственное такое средство, которое позволяет создавать приложения с GUI (графическим интерфейсом пользователя) при помощи вебоподобных методов разработки на языках HTML, CSS и JavaScript с использованием движка Node.js. Естественной иллюстрацией к этому постскриптуму является нижеследующий перевод гитхабовской страницы проекта node-webkit. И сразу скажу: я предвижу заранее, что непредвзятый взгляд ваш сочтёт node-webkit ещё более удобным и развитым средством, чем AppJS.



Введение


node-webkit — среда для запуска приложений, основанная на Chromium и Node.js. При помощи node-webkit можно создавать традиционные графические приложения посредством HTML и JavaScript. Также node-webkit позволяет вызывать модули Node.js прямо из DOM и тем обеспечивает новый способ создания таких приложений и употребления веботехнологий в них.

node-webkit создан и разрабатывается в Интеловском Центре технологий с открытым исходным кодом (Intel Open Source Technology Center).

Введение в node-webkit (слайды).

Достоинства


  • Приложения создаются при помощи современных HTML5, CSS3, JS и WebGL.
     
  • Полная поддержка API Node.js и созданных другими разработчиками модулей.
     
  • Вызов API Node.js без потерь в производительности.
     
  • Лёгкость упаковки и распространения приложений.

Читать дальше →

Что такое Ivideon?

Reading time5 min
Views92K


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

Но самое важное, мы оставили сервис бесплатным почти для 100 000 аккаунтов, которые были зарегистрированы до ввода тарифов, независимо от количества подключенных камер. Мы не хотели терять наших клиентов из-за желания заработать больше.

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

Но речь не об этом. С момента появления нашего блога и нашей первой статьи на Хабре о том как создавался Ivideon, мы ни разу не рассказали о том, а что же мы сделали и зачем? То, что обычно компании первым делом публикуют на Хабре в виде собственной рекламы, мы пропустили. Позвольте нам сделать это сейчас и не получить уж слишком много минусов. Тем более мы просто хотим рассказать о нашем продукте, который позволяет не только в реальном времени наблюдать за яйцами.
Если просто, то Ivideon дает удобную возможность объединить в одном интерфейсе личного кабинета неограниченное количество камер, разбросанных географически. Они могут находиться как в одном офисе, так и на разных континентах.
Читать дальше →

Как два программиста хлеб пекли

Reading time5 min
Views263K


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

Итак, представим себе, что есть два программиста. Один из них умный, прочёл кучу статей на Хабре, знает каталог GoF наизусть, а Фаулера — в лицо. Другой же делает всё просто. Первого будут звать, например, Борис Н., а второго — Маркус П. Само собой, имена вымышленные, и все совпадения с реальными людьми и программистами случайны.

Итак, к ним обоим приходит проектный менеджер (если в вашей вселенной PM не ходит сам к программистам, назовите его как-то иначе, например BA или lead, сути это не изменит) и говорит:
— Ребята, нам нужно, чтобы делался хлеб.

Именно так, «делался», без уточнения способа производства.

Как же поступят наши программисты?
Читать дальше →

Делаем учебник или документацию за час на Сфинксе

Reading time4 min
Views57K
Я веду курс веб-программирования. Когда учишь людей, поговорка «сапожник без сапог» к тебе относиться не должна: ты должен делать всё без видимых усилий и быстро. Учебник должен делаться легко и просто, и выглядеть хорошо.

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

Пустая страница новой документации
Хочу себе такую же!

Что такое Selenium WebDriver?

Reading time10 min
Views370K
Эта статья является продолжением более общей статьи «Что такое Selenium?», в которой объясняется, какое положение занимает Selenium WebDriver среди других инструментов автоматизации веб-приложений.

Здесь я постараюсь рассказать более подробно о том, что такое Selenium WebDriver, и почему его бессмысленно сравнивать с TestComplete, QuickTest Pro и другими инструментами автоматизации тестирования. И дело не только в том, что Selenium WebDriver бесплатный и открытый – его столь же бессмысленно сравнивать с другими бесплатными инструментами, такими как Sahi или Robot Framework.

Почему?

Потому что Selenium WebDriver – это не инструмент для автоматизации тестирования.

А что же это такое?

На этот вопрос можно дать несколько разных ответов, сначала я дам короткие ответы, а потом – более подробные.

Кроме того, я объясню, почему Selenium WebDriver имеет такой убогий и неудобный в использовании интерфейс (набор команд), почему он не генерирует красивые отчёты и почему несмотря на всё это он настолько популярен :)

На всякий случай оговорюсь, что хотя в этой статье речь идёт про WebDriver, многие аргументы справедливы и в отношении Selenium RC, но я не буду ничего говорить специально про эту устаревшую версию, потому что её место – на свалке истории.
Читать дальше →

В пень free-lance.ru!

Reading time4 min
Views639K
В связи с прочтением соседнего поста предлагаю перечислить список бирж, на которых можно найти альтернативу тому унылому говну, в которое превратился free-lance.ru, ибо терпеть планомерный геноцид я больше не намерен.
Читать дальше →

Простой wifi бот для мониторинга помещений или «кухонное» роботостроение

Reading time7 min
Views264K

Вступление.


Сегодня у каждого из нас дома присутствует выделенная линия с весьма «толстым» каналом. Так же у большинства есть wifi роутер, и опять таки большинство из нас не заботится о его отключении когда уходим из дома. И действительно зачем? Протоколы защиты wifi весьма надежны, потребление роутера ничтожно. Следовательно ваш дом часто или всегда on-line. Но что это нам дает? Торентокачалки, личные разнообразные сервера и т.д.

Особо продвинутые из нас имеют умный дом с разнообразными «плюшками» и дистанционным мониторингом посредством интернета. Это правильное, но дорогое решение. Но все это есть смысл устанавливать только в своем жилье. В случае со съемным это абсурд.

Тем не менее обострения паранойи, гиперответственность или схожие факторы (вспомним классическую ситуацию – «А выключил ли я утюг?») создают нам определенный дискомфорт когда мы оставляем свое жилище. Особенно на длительный срок. Возникает вопрос – как так получается что квартира все время on-line, а я ничего не вижу и не контролирую. Странно.

Читать дальше →

Использование более 4Гб оперативной памяти в 32 битных гостевых операционных системах

Reading time3 min
Views80K

Не секрет, что 32 битные операционные системы не позволяют адресовать более 4Гб оперативной памяти. Сейчас я вам хочу рассказать как это ограничение можно косвенно обойти в виртуальной среде, где есть полноценный доступ к хостовой операционной системе.

Собственно, цель достаточно ясна – это позволить гостевой x32 операционной системе использовать помимо «честных» 4Гб оперативной памяти еще какое-то количество, которое можно безболезненно выделить из доступной.

Для начала опишу краткий план достижения цели, а потом рассмотрим детали и реализацию. Но сразу оговорюсь, что данный способ, конечно же, не позволит операционной системе «увидеть» больше памяти, чем она может это себе позволить, но вот использовать ее незаметно для себя она будет.
Читать дальше →

Еще один jQuery плагин для верстки «пиксель в пиксель»

Reading time2 min
Views19K
Я начал писать этот плагин в феврале этого года просто для себя, потому что на тот момент я не нашел ничего похожего. Сейчас уже хабраюзеру известно про такие инструменты, как PixelPerfect и X-Precise, однако у каждого из них есть свои плюсы и минусы, как и у моего.

Итак, что же особенного в pixLayout?
Читать дальше →

Версионная миграция структуры базы данных: основные подходы

Reading time15 min
Views139K
Проблемы контроля версий баз данных и миграций между версиями уже не раз поднимались как на Хабре (1, 2, 3 и др.), так и в Интернете (преимущественно, англоязычном).

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

Тревожные звоночки: когда ваш диск лучше нести в ремонт

Reading time5 min
Views171K


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

Information

Rating
Does not participate
Registered
Activity