Pull to refresh
10
0
Send message

Кикстартер: за и против

Reading time8 min
Views60K
Сегодня мы поделимся советами по созданию проекта на краудфандинг площадке и опишем процесс на примере кикстартера, так как, к сожалению, он самый популярный и предъявляет наиболее жесткие требования — с остальными площадками проблем при публикации проекта у вас не возникнет.
Читать дальше →
Total votes 17: ↑13 and ↓4+9
Comments8

Кадры решают всё или о биче современных компаний

Reading time18 min
Views132K
image
Хотелось бы немного рассказать о тех ошибках, которые очень опасно совершать особенно сейчас, особенно в странах или городах золотого миллиарда. Думаю каждый работающий или сталкивающийся с деятельностью большой или не очень компании (или гос структуры) как и я удивляется на сколько же всё не эффективно и поражается как при таком раздолбайстве и пофигизме шестерёнок машина всё еще работает.
Читать дальше →
Total votes 139: ↑102 and ↓37+65
Comments67

Траектория развития веб-студии: агентство, производство, конвейер, продукт

Reading time6 min
Views35K
По данным, любезно предоставленным аналитическим порталом CMS Magazine, «на радарах» видно 286 живых русскоязычных веб-студий размером 1—3 человека, 626 — размером 4—7 человек, и 556 — размером 8—15 человек. «Живые» — это те, кто опубликовал на портале хотя бы одну работу в 2012—2013 годах.

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

Последние годы рынок всё чаще говорит о необходимости позиционирования, маркетинга и PR для веб-студий, причём если раньше это относилось к Top-10 компаний, сегодня об этих чуждых интернет-специалистам материях приходится задумываться той самой тысяче с численностью сотрудников 4—15. К счастью, и на Хабре появляются хорошие статьи на эту тему. Мы хотим дать взгляд на проблему позиционирования ещё с одной стороны.
Матрица развития веб-студии? Конечно, интересно!
Total votes 39: ↑35 and ↓4+31
Comments12

Final Term: новый взгляд на терминал

Reading time2 min
Views38K
image

Встречайте концепт нового эмулятора терминала для GNU/Linux — Final Term (http://finalterm.org).

Краткий список нововведений выглядит следующим образом: семантические контекстные (текстовые) меню, «умное» автодополнение, возможность создания собственных сочетаний хоткеев.
Читать дальше →
Total votes 99: ↑88 and ↓11+77
Comments52

Вебинар: Основы использования паттерна Page Object вместе с Selenium WebDriver

Reading time1 min
Views14K
Это пятый вебинар из цикла бесплатных вебинаров по автоматизации тестирования.
Видеозапись (продолжительность 1 час 5 мин.):

Темы и детали видеозаписи под катом
Читать дальше →
Total votes 14: ↑13 and ↓1+12
Comments2

Мой первый клиент мертв

Reading time5 min
Views121K
Примечание редактора: Джеймс Альтухер — инвестор, программист, автор и предприниматель. Он инвестировал в 25 стартапов и написал 10 книг. Последними вышли книги «Я был слеп, но сейчас прозрел» и «40 альтернатив колледжу».


Я был одинок и хотел денег. Я жил в однокомнатном номере в Астории, район Куинс Нью-Йорка в 1995-м и не знал никого в округе. Я писал свой номер телефона на двухдолларовых купюрах, которые оставлял на чай официанткам, но ни одна мне не звонила. В Астории жили одни греки, а те предпочитали свою тусовку. Никто не заговаривал со мной. Я мог наворачивать мили по Астории в надежде найти собеседника.

Выходные были хуже всего. Я скучал по друзьям на работе. Музей кинематографии находился совсем рядом, и я ходил туда посмотреть всякие инди-фильмы. Помню две вещи: ретроспектива Хэла Хартли была великолепна, а коллекция свитеров Билла Косби, которые тот носил на своих шоу 80-х, выставлялась на заметном месте. Женщина-билетер не любила меня, так как я всегда заходил бесплатно по карточке работника HBO.



У меня было 20 баксов на счету в банке. Я жил от зарплаты до зарплаты. Я бродил по всему Манхэттену и думал про себя: кто все эти миллионы людей, что могут позволить себе здесь жить, а я не могу.
Читать дальше →
Total votes 289: ↑237 and ↓52+185
Comments135

Dell выпустил для разработчиков ультрабук с Ubuntu

Reading time1 min
Views32K
image

Dell выпустил в США и Канаде ноутбук XPS 13 Ultrabook с установленной Ubuntu 12.04, кастомизированной для разработчиков приложений и системных администраторов, пишет The H Open. Так, например, команда sputnik позволяет разработчикам легко реплицировать среду разработки на других машинах.

В Dell XPS 13 Developer Edition (кодовое название Sputnik) используется процессор Intel Ivy Bridge i7 с тактовой частотой 3 ГГц, 8 ГБ оперативной памяти, 256 ГБ дискового пространства, 13-дюймовый экран (1366x768) и интегрированная видеокарта Intel HD 4000. Ноутбук доступен пока только для США и Канады и продаётся по цене 1449 долларов.
Читать дальше →
Total votes 58: ↑42 and ↓16+26
Comments116

Прецизионный поворот растрового изображения на произвольный угол

Reading time8 min
Views57K
Поворот растрового изображения на углы, кратные 90°, относительно геометрического центра изображения – задача тривиальная и решается без потери качества простым преобразованием координат каждого пикселя.

Для поворота растрового изображения на произвольный угол разработаны быстрые но не оптимальные алгоритмы, дающие приемлемую для практических целей аппроксимацию с потерей качества (например, этот).
Довольно давно, из чисто спортивного интереса, меня заинтересовала задача максимально точного поворота растрового изображения на произвольный угол. К сожалению, мне нигде не удалось найти готовый алгоритм, поэтому пришлось делать его собственноручно. Даже если в итоге я «изобрёл велосипед», результат, как мне кажется, получился достаточно интересным, чтобы им можно было поделиться.

Ниже мы рассмотрим алгоритм прецизионного поворота растрового изображения на произвольный угол относительно произвольного центра с минимальными потерями.

Выражаю благодарность Харченко Владиславу Владимировичу за оказанную помощь.
Читать дальше →
Total votes 114: ↑104 and ↓10+94
Comments40

Алгоритм аннотирования иллюстраций или почему бы программисту не быть немного дизайнером?

Reading time2 min
Views17K
Хочу представить вашему вниманию одну любопытную задачу и несколько способов ее решения. Изначально задача появилась на stackoverflow, но перед тем как перейти к сути хочу подчеркнуть отсутствие какого бы то ни было желания навязать свою точку зрения.

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

Читать дальше →
Total votes 53: ↑39 and ↓14+25
Comments16

Устранение Хвостовой рекурсии

Reading time6 min
Views12K
Я недавно написал в своем блоге Python History пост «The origins of Python's functional features» (перевод). Упоминание о том, что Python не поддерживает хвостовую рекурсию (TRE) сразу спровоцировало несколько комментариев о том, как жаль, что Python не поддерживает данную оптимизацию. Появились ссылки на недавние записи в других блогах о том, что TRE может быть добавлена в Python легко. Позвольте мне защитить свою позицию — я не хочу добавлять TRE в язык. Если Вы хотите короткий ответ, это просто unpythonic.

Вот длинный ответ.
Читать дальше →
Total votes 55: ↑48 and ↓7+41
Comments39

Сумбурные заметки про python и django

Reading time5 min
Views47K
Накопилось несколько маленьких заметок/советов про python и django, которые на отдельные топики не тянут, поэтому публикую все сразу.

Под катом:
  • как упростить код вьюх ровно в 2 раза
  • легкий способ рисования графиков
  • почему Ian Bicking воскликнул «Cool!»
  • приложения для ВКонтакте на django за 5 минут
  • хорош ли pymorphy?
  • пара фишек насчет выкладки пакетов на pypi
  • что общего между декораторами и with-контекст-менеджерами
  • принимаем оплату на django-сайтах
  • показываем Яндекс.Карту для заданного адреса

Читать дальше →
Total votes 159: ↑153 and ↓6+147
Comments37

HowTo: Как подружить Django с WebSocket (socket.io, sockjs)

Reading time10 min
Views33K
Version: 0.2

Возникла у меня потребность атомарного обновления в реальном времени страницы у некоторого количества пользователей в зависимости от действий других пользователей (не гербалайф чат). Понятное дело, можно всё выкинуть в помойку и, по-молодецки, запилить с нуля на tornado/twisted.web, но явно не самый продуктивный путь (да и я не мо́лодец ни разу) когда всё что надо — уже работает на Django и нужно всего-то чуть-чуть… Естественным образом, по сути своей, сюда просится WebSocket. И всё бы ничего но Django WSGI приложение, а этот стандарт не предполагает таких выкрутасов даже близко (пока). Гугления интернетов навели, в очередной раз, на труд известного python-гуру kmike (это без сарказма, т.к. его работы выручали меня лично уже не однократно, за что нижайший ему поклон!).

Итак если вы хотите скрестить ваш Django проект с websocket посредством js библиотеки socket.io или sockjs — вилькоммен!
Читать дальше →
Total votes 19: ↑16 and ↓3+13
Comments22

Перечень «граблей» внедрения websocket′ов на клиентские веб-ресурсы конструктора сайтов

Reading time3 min
Views12K
Websocket′ы полезны постоянным дуплексным соединением backend-сервера с браузером клиента — это прочный мост между сервисом и посетителями, по которому удобно беспрепятственно транспортировать потоки данных в обе стороны.

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

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

Однако, когда дело дошло до полевых испытаний, обнаружилась масса проблем с ISP, всеми мыслимыми и немыслимыми способами пытающимися сэкономить трафик за счёт своих клиентов. Об этих и других «граблях» полноценного боевого внедрения websocket′ов читайте под катом.
Читать дальше →
Total votes 17: ↑10 and ↓7+3
Comments10

JavaScript SIP библиотека от авторов стандарта

Reading time1 min
Views20K
Я уже писал заметку на эту тему, с того времени стала доступна еще одна JavaScript SIP библиотека. В первой статье я упоминал её, но на тот момент вся информация о библиотеке включала: описание авторов и видео демонстрирующее работу. Сейчас исходный код открыт под MIT лицензией, имеются документация и форум.

Примечательно, что данную библиотеку разрабатывают авторы того самого стандарта, который и описывает особенности SIP протокола при работе поверх WebSocket. Помимо этого разработчики указывают следующие достоинства:
  • легковесна, ~140КB
  • простой и мощный API
  • совместима с популярными SIP серверами
  • аудио-видео вызовы; мгновенные сообщения
  • статус пользователей (эта функция уникальна, пока отсутствует в других библиотеках)

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

Под катом длинное подробное видео с пошаговой инструкцией в первой половине для тех кто захочет попробовать самостоятельно, и демонстрацией работы во второй половине (c 3:10). Кстати, в свежих версиях Chrome, WebRTC — протокол для обмена аудио-видео данными, доступен и включен по умолчанию.
Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments4

Исследование производительности сервера SockJS

Reading time4 min
Views14K
Доброе время суток!

Так уж сложилось, что я занимаюсь всякими разнообразными push технологиями с использованием Tornado. Чуть ранее описывал Tornadio2, серверную реализацию протокола socket.io поверх Tornado.

Теперь хочу представить похожий проект — sockjs-tornado.

Для тех кому не очень интересно, есть другая полезная информация: сравнительное нагрузочное тестирование PyPy 1.7 против CPython 2.6.6, sockjs-node и socket.io (оба на node.js 0.6.5). Все под катом :-)
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments13

Сайт для программиста [на Node.js]. Просто. Стильно. Бесплатно

Reading time5 min
Views93K

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

Меня аккаунт Вконтакте, и даже в Фейсбуке в качестве своего сайта не устраивает. Слишком много лишнего, навязанный формат и прочие неудобства.

Если бы я не был веб-разработчиком, мне пришлось бы плакать и грызть кактус. К счастью, я им являюсь, поэтому решил сделать себе сайт сам. Чтобы выкладывать на нём статьи вроде этой, небольшие хобби-проекты, и чтобы было что указать в поле «сайт» профиля на Хабре.

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

Некоторые знания HTML и JS вам пригодятся. Опыт работы с Node.js не обязателен.

Читать дальше →
Total votes 131: ↑90 and ↓41+49
Comments96

Примеры использования тригонометрических функций для анимации

Reading time1 min
Views22K


Джастин Уиндл, программист и дизайнер из Google Creative Lab, опубликовал на Codepen.io интересное демо, показывающее примеры использования тригонометрических функций для задания динамики анимации (easing), которая выглядит естественно и правдоподобно. Демо написано с использованием легковесного анимационного фреймворка Sketch.js, написанного Уиндлом.

На сайте Джастина Уиндла можно найти ещё несколько интересных и полезных примеров креативной визуализации, например анимированное меню на CSS3 Makisu, демонстрацию работы его библиотеки Coffee Physics и многое другое.

Total votes 70: ↑52 and ↓18+34
Comments22

«Offline first» подход к созданию веб-приложений

Reading time5 min
Views20K
В этом году на конференции Full Frontal, оффлайн-приложения были популярной темой. Пол Кинлан сделал отличный доклад «Строим веб-приложения будущего. Завтра, сегодня и вчера» (вот его слайды), в котором он сравнивал ощущения пользователей от работы с 50 популярными мобильными приложениями для iOS и Android с ощущениями от веб-сайтов и приложений.

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

Обратите внимание! Я не рассматриваю вопросы кэширования ресурсов приложения — вы можете использовать App Cache или гибридное решение (вроде PhoneGap), это не принципиально [От переводчика: на Хабре есть подробная статья про особенности работы с Application Cache API]. Это руководство посвящено скорее тому, как спроектировать архитектуру веб-приложения для работы в оффлайн-режиме, а не тому, какие механизмы использовать для его реализации.
Читать дальше →
Total votes 39: ↑33 and ↓6+27
Comments7

Использование RabbitMQ в django проектах без Celery, и что нового в Celery 3.0

Reading time8 min
Views32K
Думаю что большинство python программистов уже в какой-то степени знакомы с возможностями Celery. В 1-ой части я расскажу, как можно использовать RabbitMQ без celery, а во второй части — краткий обзор новых возможностей celery 3.0.
Об установке связки Django-Celery-RabbitMQ можно почитать тут.
Про использование RabbitMQ хорошо написано тут, и тут, ну и на сайте RabbitMQ.
Читать дальше →
Total votes 22: ↑20 and ↓2+18
Comments4

Redis — высокопроизводительное хранилище данных

Reading time2 min
Views101K
Бодрый день, хаброчеловеки!

Что такое Redis?


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

Чем Redis отличается от существующих решений?


API для работы с Memcached (MemcacheDB) позволяет хранить массивы, но эти массивы будут сериализованы и сохранены как строки, таким образом атомарные операции над такими массивами не возможны.
Redis позволяет хранить как строки, так и массивы, к которым можно применять атомарные операции pop / push, делать выборки из таких массивов, выполнять сортировку элементов, получать объединения и пересечения массивов.

Производительность


110000 запросов SET в секунду, 81000 запросов GET в секунду на Linux-сервере начального уровня (тесты).

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

Sharding


Redis, как и Memcached, может работать как распределённое хранилище на многих физических серверах. Такой функционал реализуется в клиентских библиотеках, и к сожалению, «из коробки» этот функционал реализован пока только в Ruby API, однако это не мешает вам хешировать ключ самостоятельно и получать ID сервера, к которому с этим ключом обращаться.

API


API доступно для следующих языков:
  • Ruby
  • Python
  • PHP
  • Erlang
  • Tcl
  • Perl
  • Lua
  • Java


API для PHP доступно как в виде модуля, написанного на C, так и в виде PHP5 класса, который общается с Redis-сервером через сокеты, таким образом не требуется устанавливать модуль.
Кроме того существует PHP5 класс от отечественного разрабочика (с именем, заслуживающим доверия. Я серьёзно.) — IMemcacheClient. (Спасибо DYPA за наводку)

Перспективы развития


Разработка ведётся очень активно, комиты происходят почти каждый день, сейчас доступна версия Redis 0.900 (1.0 release candidate 1), которая очень скоро станет версией 1.0
В ближайшем будущем авторы обещают внедрить разные интересные фичи, в том числе и сжатие данных.

Лицензия и поддерживаемые платформы


Redis — написан на ANSI C и работает на большинстве POSIX-систем (Linux, MacOS X). Это бесплатное открытое ПО под BSD лицензией =)

Up: Rediska — удобный PHP-клиент для key-value базы Redis. Оф.сайт.
Total votes 79: ↑75 and ↓4+71
Comments126
1

Information

Rating
Does not participate
Registered
Activity