Как стать автором
Обновить
0
0
[Евгений] @rei07

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

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

Управляем компьютером с айфона

Время на прочтение3 мин
Количество просмотров79K
Являясь счастливым обладателем Iphone 3gs, как-то вечером решил я проверить AppStore на предмет новых интересных приложений. Посмотрел сначала платные, скачал какую-то игрушку, решил заглянуть и в бесплатные, скорее для самоуспокоения, потому что я там давно ничего особо интересного не встречал. И что же я там вижу на второй строчке?



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

Подробности под катом.
подробности
Всего голосов 171: ↑131 и ↓40+91
Комментарии98

Эти занимательные SIM-карты

Время на прочтение1 мин
Количество просмотров1.2K
Недавно в новостях появилась информация о выпуске SIMFi — SIM-карты с Wi-Fi с помощью которой обычную мобилу можно превратить в роутер. А на днях корейцы из SK Telecom порадовали прототипом SIM-карты с 1 ГБ памяти, процессором и вшитой платформой Android.



Производитель утверждает, что такая «симка» пригодится для переноса всех пользовательских данных с одного телефона на другой. SIM-карта поддерживает интерфейс USB 2.0 и, что интересно, вполне может использоваться в связке с клавиатурой, мышкой и другой периферией (интересно, как?).

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

via engadget

P.S. По ссылке на engadget'е красноречивое видео.
Всего голосов 42: ↑37 и ↓5+32
Комментарии19

Паттерны проектирования

Время на прочтение2 мин
Количество просмотров48K
Здравствуй хаброчеловек!

Так уж случилось, что с этого семестра в своем вузе я записался на спецкурс по паттернам проектирования. Курс проходит в виде семинаров, на которых ты (студент) должен рассказать чему научился за неделю (имеется ввиду, какие паттерны изучил и применил на практике).
Читать дальше →
Всего голосов 47: ↑37 и ↓10+27
Комментарии29

Коворкинг: 18 месяцев спустя

Время на прочтение6 мин
Количество просмотров3.9K
С момента открытия коворкинг-клуба “Башня” прошло полтора года.

Ранее я публиковал на Хабре свой опыт и ощущения “6 месяцев спустя”. Потом в России начался кризис, в “Башне” — бурления вида “Давайте начинать бизнес, самое время!”, и памятная дата «Первый год» как-то прошла мимо. Но вот сейчас, в конце сентября, российскому коворкингу исполняется 1,5 года. Интересно, что изменилось за это время.

Дисклаймер: не желая искажать информацию, я ограничусь только нашим опытом — “Башни”, “ИНКа” и “Полигона”. Другие коворкинг-клубы, скорее всего, имеют другую историю.

Читать дальше →
Всего голосов 81: ↑77 и ↓4+73
Комментарии101

Революция сейчас. jetBRAINS выпустила Meta Programming System

Время на прочтение2 мин
Количество просмотров861
MPS вышел, господа! И странно, что по этому поводу в интернетах как-то все еще тихо. Ведь мы имеем дело с самой настоящей революцией в мире программостроения. Видимо, как в случае с переходом к OOP, переход к LOP будет медленным и болезненным.

Что за революция и что за LOP, спросите вы? Про Language Oriented Programming очень хорошо написано на английском здесь, про сам MPS здесь. А если коротко, то идея сама по себе проста — все давно знакомы с концепцией DSL (Domain-Specific Languages), ставим ее на новый уровень и получаем инструмент для создания новых, расширения существующих и с удобным кастомным IDE для разработки на этих языках.

Работая сразу с Абстрактным Синтаксическим Деревом (в которые любой текст программы все равно перегоняется при компиляции), а не с текстом, MPS позволяет создавать нетекстовые редакторы или использовать разного рода интересные контролы при редактировании текстовых программ. А главное, как часто вам хотелось бы расширить ваш любимый язык новыми конструкциями для ускорения разработки? Пришлось бы расширять грамматику языка, а что если бы кто-то другой придумал еще одно расширения и оба они бы ломали грамматику? MPS позволяет делать это изящно, но конечно сложновато, и нужно какое-то время чтобы научиться и понять что же ты толком делаешь. А взять, например, множество фреймворков и библиотек, которые по сути и являются этими DSL в узких областях. Почему бы их не переделать в расширение языка?

В общем, всем читать и качать MPS.

Каким боком тут я и почему я рад этому событию? Потому что замечательный человек, который показал мне какое-то время назад MPS, это Евгений Потапенко. И он уже долгое время пишет интересный редактор ActionScript 3 на этой системе, и раз за разом удивляет интересными скринкастами (описания спер у Ивана Дембицкого, надеюсь он не очень зол на меня за это):

Шаблоны для геттеров/сеттеров и филдов
www.potapenko.com/tmp/screencasts/templates.flv

Как делаются override method с автоматическим добавлением ключевого слова override и навигация
www.potapenko.com/tmp/screencasts/override.flv

Помощник по именованию методов/переменны/полей
www.potapenko.com/tmp/screencasts/naming.flv

Основная фича редактора — расширение языка — тут добавил ENUMS в AS
www.potapenko.com/tmp/screencasts/enums.flv

Ну редактор и что? А то, что детально изучив MPS, я прямо сейчас вижу, как в ActionScript легко добавляется AOP, как Spring-like IoC фреймворк с конфигурацией через XML файлы переделывается в простой DSL. Даже мои хелпер классы для создания видеоплееров и простых сайтов-визиток умещаются в DSL.

The future is now, господа!

Update! Из комментариев прилетела ссылка на русский текст (перевод предыдущей ссылки на английском, как я понимаю) про LOP.
http://www.rsdn.ru/article/philosophy/LOP.xml
Всего голосов 30: ↑26 и ↓4+22
Комментарии57

UserAPI — Конструктор Социальных сетей на базе ВКонтакте

Время на прочтение2 мин
Количество просмотров80K
Павел Дуров заявил об открытии нового проекта: User API.

Сервис предназначен для быстрого построения соцсети (заявленное минимальное время — 5 мин.)
Новые сети будут использовать данные сети ВКонтакте (пользователи, фото, etc.).

При монетизации проекта: доходы будут делиться на 60% хозяину, 40% User API. Подробнее в уловиях пользования User API.

Документация проекта.

Для тех кто не зарегестрирован ВКонтакте копипаста из блога Дурова:
Читать дальше →
Всего голосов 83: ↑74 и ↓9+65
Комментарии153

PMP сертификация за 3 месяца

Время на прочтение2 мин
Количество просмотров52K
PMP традиционно входит в десятку самых востребованных IT сертификаций на западе. Эта мода потихоньку перебирается и в страны СНГ, некоторые компании уже начинают робко писать в вакансиях «PMP credential is a plus». Помимо повышения ценности ПМа на рынке труда, подготовка и сдача PMP сами по себе дают полезные знания и опыт.

Под катом — пошаговая инструкция получения PMP на базе PMBOK4.
Читать дальше →
Всего голосов 43: ↑37 и ↓6+31
Комментарии25

Статья-размышление про вход на сайт без пароля

Время на прочтение6 мин
Количество просмотров7.3K
На Хабре уже не раз и не два публиковались статьи о необходимости разрешить пользователю войти через Google/Twitter/Facebook и т.д. Собственно говоря, прогрессивное человечество давно решило, что требовать от пользователя придумывать логины и пароли — вчерашний день. В данной статье я хочу обсудить возникающие проблемы и способы их решения.
Читать дальше →
Всего голосов 61: ↑52 и ↓9+43
Комментарии68

Как создавалась Айчиталка. Часть 1: движок

Время на прочтение10 мин
Количество просмотров28K
Совсем недавно мы выпустили в свет первую бета-версию нашей онлайн-читалки, с которой можно ознакомиться, почитав книгу Михаила Лермонтова «Герой нашего времени». Эта читалка — результат почти семимесячной работы, пять из которых ушло только на разработку движка. Казалось бы, в интернете уже есть бесплатные и открытые JavaScript-движки для чтения электронных книг и такой долгий срок может вызвать сомнения в профпригодности разработчика (то есть меня). Но есть одно большое и жирное «НО». Мы поставили перед собой слишком амбициозную и трудновыполнимую задачу: мы хотели использовать один и тот же движок на разных устройствах, в том числе маломощных, таких как айфон или электронная читалка.

В чём же заключается трудновыполнимость задачи? В первую очередь — в очень низкой скорости работы веб-приложений на айфоне. Например, мобильный Сафари по моим прикидкам работает раз в 100 медленнее своего десктопного собрата. Если на декстопе одна и та же операция выполняется 10 мс и совершенно незаметна для пользователя, то на айфоне она может выполняться больше секунды. Для сравнения: первая версия движка разбивала небольшую главу на страницы примерно за 15 секунд. Сейчас, спустя полгода, он делает то же самое менее, чем за секунду и вполне сносно работает в нашем приложении booq.

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

Читать дальше
Всего голосов 165: ↑151 и ↓14+137
Комментарии98

JetBrains PhpStorm (AKA WebIDE) — публичная сборка 94.335

Время на прочтение2 мин
Количество просмотров3.5K
В этой сборке вас ждут:

Новое имя. Два варианта Web IDE получили свои официальные названия: JetBrains WebStorm и JetBrains PhpStorm. Брендинг еще не закончен так что вы увидите знакомые белые сплэши и иконки WI в самых разных местах. Цель разработки остается прежней — идеальный инструмент для PHP/JS разработчиков и веб-дизайнеров.

Полностью настраиваемый PHP formatter – эта фича получила наибольшее количество голосов в трекере.
Читать дальше →
Всего голосов 41: ↑35 и ↓6+29
Комментарии108

Высокохудожественные картинки на CSS

Время на прочтение1 мин
Количество просмотров4.4K
raindropВдохновленный логотипом Opera, сделанный Дэвидом Дисандро (David Desandro) с помощью CSS, Шон Мартел (Sean Martell) сделал логотип Mozilla Labs Raindrop, о котором писали и на хабре, правда не очень много.
Читать дальше →
Всего голосов 60: ↑50 и ↓10+40
Комментарии58

Использование мощных светодиодов (на примере велофары)

Время на прочтение5 мин
Количество просмотров43K
Все мы давно слышим о полупроводниковых источниках света, то есть светодиодах. Они и экономичнее, и долговечнее и вообще все сплошь и рядом положительные. Но чем это может помочь нам? Светодиодные лампы (обычные потребительские с цоколем Е27 и Е14) пока стоят совсем бешеных денег, причём совершенно неоправданно. Немного лучше в области автосвета, там уже можно заказать не очень дорогие заменители ламп накаливания в своё авто. Только пока особо плюсов от них нет, кроме потребляемой мощности и иногда надёжности (потому что многие из них плохо собраны и не используют стабилизаторы тока). И наверно самая продвинутая область применения мощных светодиодов это фонарики и велосвет. Поэтому я и расскажу о сборке своего велосвета на основе мощных светодиодов. Данный опыт можно применить во многих областях, в том числе, чтобы устроить LED освещение дома, при минимальных навыках работы с паяльником.
Читать дальше →
Всего голосов 179: ↑172 и ↓7+165
Комментарии62

PostgreSQL: аналитика для DBA

Время на прочтение4 мин
Количество просмотров36K
Многие пользователи СУБД PostgreSQL знают, что сервер во время своей работы собирает разнообразную статистику, но не все знают, что ее полезно анализировать и как ее извлекать для этого. В этом небольшом тулките собраны несколько полезных запросов, дающих некоторое представление о том, как использовать это «скрытое знание», которое постоянно копится. Эти запросы можно использовать для мониторинга состояния PostgreSQL (ручного или с помощью плагинов для систем мониторинга вроде Nagios, Cacti или Zabbix), для поиска узких мест в работе сервера и многих других подобных задач. Помните, что это лишь верхушка айсберга; в документации можно найти описания нескольких десятков системных представлений, которые также могут быть полезны администратору PostgreSQL.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии20

Одноврéменно || Одновремéнно

Время на прочтение2 мин
Количество просмотров921
image

Введение


ZendX_Console_Process_Unix позволяет разработчикам создавать объекты под видом процессов, и таким образом параллельно выполнять несколько задач. Из-за особенностей реализации на текущий момент эта возможность доступна только на *nix системах, таких как Linux, Solaris, Mac / OSX и другие в CLI или CGI режиме. Кроме того для работы этого компонента необходимы следующие модули: Shared Memory, Process Control и POSIX. Если одно из требований не выполняется, то будет брошено исключение.

Основы использования ZendX_Console_Process_Unix


ZendX_Console_Process_Unix это абстрактный класс, который должен быть расширен пользователем. В нем находится единственный абстрактный метод _run(), который должен описывать реализуемый алгоритм обработки тех или иных данных. Так же в классе определенны методы для проверки состояния процесса и обмена переменными между основным и дочерними процессами.

Метод _run(), а так же каждый метод вызванный внутри него будет выполняться в отдельном процессе. Любой другой метод, вызванный в вашем приложении будет выполняться в родительском процессе.

Методы setVariable () и getVariable () могут быть использованы для передачи переменных между родительским и дочерними процессами. Для наблюдения за статусом дочернего процесса следует вызывать внутри него метод _setAlive () через короткие промежутки времени, таким образом родительский процесс сможет получить информацию о состоянии дочернего процесса посредством вызова метода getLastAlive (). Чтобы получить PID дочернего процесса, родитель может вызвать getPid().
Читать дальше →
Всего голосов 42: ↑37 и ↓5+32
Комментарии34

Удаленное обучение на основе Open Source — BigBlueButton

Время на прочтение1 мин
Количество просмотров21K
Какое-то время работал с организацией системы обучения на основе ВКС Tandberg. Когда была поставлена задача организации удаленного обучения, Open Source решения были просты и унылы. Конторе пришлось изрядно потратится. Но Open Source не стоит на месте, все больше и больше компаний выходят на рынок с новыми идеями и большинство из них бесплатны для простого обывателя.


Читать дальше →
Всего голосов 85: ↑77 и ↓8+69
Комментарии33

Как FriendFeed использует MySQL для хранения данных без схемы

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

Условия


Мы используем MySQL для хранения любых данных FriendFeed. Наша база данных растёт вместе с числом пользователей. Сейчас у нас более 250 миллионов записей, это записи пользователей (post'ы), комментарии, оценки («likes»)

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

В частности, изменение схемы базы данных или добавление индексов к существующим 10-20 миллионов записей приводили к полной блокировке сервера на несколько часов. Удаление старых индексов требовало времени, а не удаление ударяло по производительности, так как база данных продолжала использовать их на каждом INSERT. Существуют сложные процедуры с помощью которых можно обойти эти проблемы (например создание нового индекса на slave-сервере, и последующий обмен местами master'a и slave), однако эти процедуры настолько тяжелые и опасные, что они окончательно лишили нас желания добавлять что-то новое, требующее изменение схемы или индекса. А так как наши базы сильно распределены, реляционные вещи MySQL как например JOIN никогда не работали для нас. Тогда мы решили поискать решение проблем, лежащее вне реляционных баз данных.

Существует множество проектов, призванных решить проблему хранения данных с гибкой схемой и построением индексов на лету (например CouchDB). Однако, по-видимому ни один из них не используется крупными сайтами. В тестах о которых мы читали и прогоняли сами, ни один из проектов не показал себя стабильным, достаточно зрелым для наших целей (см. this somewhat outdated article on CouchDB, например). А все это время MySQL работал. Он не портил данные. Репликация работала. Мы уже в достаточной мере понимали все его узкие места. Нам нравился MySQL именно как хранилище, вне реляционных шаблонов.

Все взвесив, мы решили создать систему хранения данных без схемы поверх MySQL, вместо использования полностью нового решения. В этой статье я попытаюсь описать основные детали системы. Так же нам любопытно как другие сайты решили эти проблемы. Ну и мы думаем, что наша работа будет полезна другим разработчикам.
Читать дальше →
Всего голосов 116: ↑110 и ↓6+104
Комментарии60

Если бы я проектировал телефон

Время на прочтение2 мин
Количество просмотров638
Современным интерфейсам в телефоне, при всех наворотах, не хватает цельности. Если бы я делал телефон, я бы взял листок бумаги и нарисовал табличку. По горизонтали и по вертикали вся функциональность, пункт за пунктом. На пересечении – то, как эти два пункта интегрируются. Например:
  1. Календарь + Контакт в адресной книге = Напоминалка о Дне Рождения
  2. Фото + Контакт в адресной книге = Отметить человека на фотографии
  3. Календарь + Фото = Разместить фотографии, сгруппировав по дате
  4. Фото + GPS = Место, где была сделана фотография
  5. GPS + Контакт в адресной книге = поставить адрес контакта, адрес его работы и тп
  6. SMS + Контакт = Расположить СМС в виде чата
  7. GPS + Журнал вызовов = Показать откуда делался вызов, (сомнительно, но для алиби может пригодиться)
  8. Заметки + Контакт = мобильная CRM, оставлять любые заметки о человеке, от пожелания на ДР заканчивая тем, что должен 100 баксов (в любом количестве и сохраняя прошлые)
  9. Контакт + Напоминалки = напоминание позвонить, позвонить и назначить встречу, приехать к контакту домой, отправить смс. Или же показывать напоминание при входящем, при входящей смс от контакта
  10. Напоминалки + GPS = напоминать что надо сделать, когда телефон будет в заданном месте
  11. Интернет + Контакт = агрегация типа friendfeed, rss с домашней странички
  12. Интернет + Музыка = last.fm
  13. Bluetooth + Контакт = Ассоциировать контакт и bluetooth адрес, хранить историю передач, ( а ещё лучше единым чатом с смс, логированием звонков, передач, rss, др.)
  14. SMS + GPS = Отправить смс по прибытии в заданный район. «Сына, отправь смс как доберешься»

И так далее. Это на столько очевидно, что кем-нить реализовано или к тому идёт. Осталось найти (дождаться) этот телефон и купить.

Для наглядности — таблица этих исходных пунктов на docs.google.com

А так же другая таблица, открытая для совместного редактирования. И ссылка на результат совместного творчества хабрасообщества. Только прошу — не устраивайте детсад с чатиком и выманиванием инвайтов.
Всего голосов 136: ↑112 и ↓24+88
Комментарии133

Делаем reflection быстрой как прямые вызовы

Время на прочтение12 мин
Количество просмотров50K
Большинство программистов знают о reflection, которая (она — рефлексия) упрощает добавление динамических возможностей в статические языки, такие как Java/C#. Однако reflection упрекают в том, что вызовы работают очень медленно — до 500 раз медленнее. Все же это можно c легкостью исправить — покажем в этой статье как сделать reflection-вызов таким же быстрым, как и прямой (direct) вызов.
Читать дальше →
Всего голосов 58: ↑54 и ↓4+50
Комментарии15

Информация

В рейтинге
Не участвует
Откуда
Россия
Зарегистрирован
Активность