Читать дальше →
Кирилл Пименов @kirushik
User
И ещё про «домашний» Asterisk
4 min
19KПрочитав этот пост, решил поделиться и своим опытом.
В данный момент решены 2 простые задачи:
Как это сделано?
В данный момент решены 2 простые задачи:
- все звонки, поступающие на PSTN номер (обычный городской), переадресовываются на мобильный телефон, который у меня всегда в кармане и, одновременно, на SIP телефон, который стоит дома
- с SIP телефона я могу звонить как по России, так и в некоторые нужные мне страны по минимальным тарифам.
Как это сделано?
+33
Integer и int
4 min
142KВ этом топике я хочу описать некоторые базовые различия между примитивными типами и соответствующими им объектными на примере int и Integer. Различия эти достаточно простые и, если немного задуматься, то вполне логичные, но, как показал опыт, программист не всегда над этим задумывается.
Основное различие, разумеется, в том, что Integer — это полнофункциональный объект, который занимает место в куче, а в коде вы пользуетесь ссылками на него, которые неявно преобразуются в значения:
Основное различие, разумеется, в том, что Integer — это полнофункциональный объект, который занимает место в куче, а в коде вы пользуетесь ссылками на него, которые неявно преобразуются в значения:
int a = 1000; // a - число
Integer b = 1000; // b - ссылка на объект
При присваивании значения переменной типа Integer обычно выделяется память в куче под новый объект, как будто вы написали new Integer(1000)
(так называемый autoboxing). Однако иногда переиспользуются старые объекты. Это иллюстрирует следующий код (JDK 1.6):Integer a1 = 50;
Integer a2 = 50;
Integer b1 = 500;
Integer b2 = 500;
System.out.println(a1==a2);
System.out.println(b1==b2);
Результатом выполнения будет:true
false
+67
Веб-шрифты на распутье
11 min
31KTranslation
Перевод не претендует на 100%-ную точность, но я постарался максимально точно передать мысли и слог автора. Комментарии приветствуются.
Начиная с Интернет Эксплорера 4 в 1998-ом, а затем с марта 2008-ого и до марта 2010-ого, один за другим, вся «большая пятерка» десктопных браузеров — Сафари, Файрфокс, Опера и Хром — выкатили сравнительно похожие реализации правила
Для начала, обзор последних событий:
Теперь пройдемся по пунктам…
Начиная с Интернет Эксплорера 4 в 1998-ом, а затем с марта 2008-ого и до марта 2010-ого, один за другим, вся «большая пятерка» десктопных браузеров — Сафари, Файрфокс, Опера и Хром — выкатили сравнительно похожие реализации правила
@font-face
для привязки шрифтов. Вместе с тем, неотъемлимая часть веб-издательского паззла, часть, которой не хватает с начала Веба, встала на место и теперь настоящая, веб-ориентированая типографика начинает принимать форму.Для начала, обзор последних событий:
- 18-ого марта 2010 года была учреждена группа Web Fonts Working Group в W3C. Её первая задача была утвердить спецификацию WOFF как стандарт доставки sfnt (OTF и TTF) шрифтов в веб в «сжатом» виде.
- Была представлена отрисовка шрифтов в IE9 с помощью Windows’s DirectWrite в IE9 Platform Preview.
- Появились первые инструменты для подготовки веб шрифтов, такие как Font Squirrel’s @Font-Face Generator и EOTFAST.
- Пошла новая волна «шрифтохранилищ» в виде Typekit, Typotheque и бесплатного, опенсорсного Kernest.
- Появились первые “трастовые/кредитные” лицензии на веб-шрифты от дизайнеров коммерческих шрифтов.
- CSS3 Fonts Module включил в себя некоторые продвинутые свойства OpenType.
- Adobe Flash, когда-то надежная, кросс-платформенная среда замены текста (sIFR), сейчас выглядит абсолютно убогой.
- Google запустил бесплатный сервис шрифтов с растущей библиотекой. Все шрифты в библиотеке доступны и для частного хранения/использования.
Теперь пройдемся по пунктам…
+60
Что и как покупать на Taobao
5 min
189KВ нашей прошлой статье мы показали семь смешных товаров c китайского интернет-аукциона TaoBao, лишь вскользь упомянув о том, что же это такое. Пришло время подробнее рассказать о TaoBao, сравнить его с Ebay и поведать как можно удобно и недорого покупать на этом товарном торжестве победившего социализма
+36
Идеальный эксперт или гороскопы на службе ERP
2 min
1.9KА вы пробовали когда-то делать системный анализ гороскопов? Я пробовал и нашел, что все эти советы дает Капитан Очевидность и они носят универсально-рекомендательный характер.
Например: Хабролюдям сегодня стоит приложить усилия для успешного завершения начатого дела, это может принести успех, но остерегайтесь возможных ДТП, особенно после обеда.
Разберем этот пример. В пятницу очень хорошо закончить запланированный этап работы, чтоб отдыхать со спокойной совестью. А вести себя внимательно на дорогах — это актуально всегда.
Так вот, однажды один владелец крупной компании захотел себе ERP. Но не простую, как у всех, а которая реально помогает управлять предприятием. Вводишь в нее цифры — а она говорит тебе, что надо сделать.
Казалось бы, идея не реальная, но… Я вспомнил за программу генерации гороскопов. Только вместо дней недели меня интересовала дисперсия по введенным числам, а точнее говоря — прибыль (или убыток) компании на этап ввода данных.
Например: Хабролюдям сегодня стоит приложить усилия для успешного завершения начатого дела, это может принести успех, но остерегайтесь возможных ДТП, особенно после обеда.
Разберем этот пример. В пятницу очень хорошо закончить запланированный этап работы, чтоб отдыхать со спокойной совестью. А вести себя внимательно на дорогах — это актуально всегда.
Так вот, однажды один владелец крупной компании захотел себе ERP. Но не простую, как у всех, а которая реально помогает управлять предприятием. Вводишь в нее цифры — а она говорит тебе, что надо сделать.
Казалось бы, идея не реальная, но… Я вспомнил за программу генерации гороскопов. Только вместо дней недели меня интересовала дисперсия по введенным числам, а точнее говоря — прибыль (или убыток) компании на этап ввода данных.
+53
Чёрточки: только ли тире, минус и дефис?
4 min
178KОднажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева.
На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.
На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.
+265
Программирование: индустрия обмана
4 min
3.9K Как-то пару месяцев назад, на одном хорошем интернет-ресурсе с интеллектуальной музыкой и фильмами, выложили ссылки на фильм «Психиатрия: индустрия смерти / Psychiatry: Industry to Deaths» созданного при участии Церкви Саентологии. Меня откровенно удивило появление такой махровой антинаучной пропаганды и я начал было возмущаться, но в ходе дискуссии в комментариях, с удивлением обнаружил, что большинство местных интеллектуалов (включая модераторов) считает фильм «весьма интересным» и «в большей степени полезным». И даже более того, такие фильмы как: «Великая тайна воды», «Плесень», «The Secret» — там тоже нашли своих интеллектуальных зрителей. И тут я подумал: Должен же быть какой-то предел человеческого легковерия и дремучести?
А что если специально снять фильм такого же плана, но с разоблачением? Ударно начать, сказать «всю страшную правду», потихоньку довести до абсурда и уже в титрах, всей съёмочной группой впрямую признаться в надувательстве и посмеяться над легковерными, а? Да и снять такой фильм просто — там только лишь интервью и видеомонтаж. Первая и единственная тема, пришедшая в голову — программирование и разработка ПО. А сам фильм можно назвать «Программирование: индустрия обмана»! (Конечно очень хотелось бы назвать «Компьютеры едят людей» или «Сортировка массивов вызывает псориаз мозга», но маловато фактов. Их даже меньше чем ни одного.)
А что если специально снять фильм такого же плана, но с разоблачением? Ударно начать, сказать «всю страшную правду», потихоньку довести до абсурда и уже в титрах, всей съёмочной группой впрямую признаться в надувательстве и посмеяться над легковерными, а? Да и снять такой фильм просто — там только лишь интервью и видеомонтаж. Первая и единственная тема, пришедшая в голову — программирование и разработка ПО. А сам фильм можно назвать «Программирование: индустрия обмана»! (Конечно очень хотелось бы назвать «Компьютеры едят людей» или «Сортировка массивов вызывает псориаз мозга», но маловато фактов. Их даже меньше чем ни одного.)
+285
Founder Institute: стартап в 10 шагов за 2000$
3 min
1KБольшинство предпринимателей видят переход от идеи до стартапа сложным и дорогим. К счастью для них, основатель акселератора стартапов Founder Institute Адео Рези (Adeo Ressi), представил план из десяти простых шагов для достижения поставленной цели. И хотя нет универсального рецепта для всех стартапов, Рези считает, что его шаблон поможет любому предпринимателю приблизиться к собственному технологическому бизнесу менее чем за 2000$.
+32
Ruby on Rails 3 — Заметки к финальному релизу
19 min
5.6KTranslation
Оглавление
- Переход на Rails 3.0
- Rails 3 требует Ruby 1.8.7+
- Объект Application в Rails
script/*
заменен наscript/rails
- Зависимости и
config.gem
- Процесс перехода
- Создание приложения на Rails 3.0
- Включение гемов
- Жизнь на грани
- Архитектурные изменения
- Перезарядка Railties
- Все компоненты ядра Rails теперь независимы
- Абстракция Active Model
- Абстракция контроллеров
- Интеграция Arel
- Извлечение Mail
- Документация
- Интернационализация
- Railties
- Action Pack
- Абстрактный контроллер
- Action Controller
- Action Dispatch
- Action View
- Active Model
- Абстракция ORM и интерфейс c Action Pack
- Валидации
- Active Record
- Интерфейс запросов
- Усовершенствования
- Патчи и устаревшие методы
- Active Resourсe
- Active Support
- Action Mailers
- О создателях
+89
Станция УВБ-76 подала четвёртый сигнал за 30 лет
1 min
152KКоротковолновая радиостанция УВБ-76 расположена в деревне Поварово в 40 км к северо-западу от Москвы (фото со спутника). Среди радиолюбителей всего мира известна как «жужжалка» (The Buzzer). Начиная с 1982 года она круглосуточно передаёт в эфир непрерывный шум на частоте 4625 кГц (линк на онлайн-трансляцию). Жужжащий звук длится 0,8 секунды, прерывается на 1-1,3 секунды и повторяется 21-34 раза в минуту. Назначение станции неизвестно.
За все 28 лет вещания было зарегистрировано всего три случая, когда в эфир вышло голосовое сообщение. Каждый раз это было некое зашифрованное послание на русском языке. И вот 23 августа 2010 года это случилось снова.
Как сообщают западные радиолюбители, примерно в 17:32 GMT станция УВБ-76 передала следующее сообщение: «УВБ-76, УВБ-76 — 93 882 НАИМИНА 74 14 35 74 — 9 3 8 8 2 Николай, Анна, Иван, Михаил, Иван, Николай, Анна, 7, 4, 1, 4, 3, 5, 7, 4» (mp3).
За все 28 лет вещания было зарегистрировано всего три случая, когда в эфир вышло голосовое сообщение. Каждый раз это было некое зашифрованное послание на русском языке. И вот 23 августа 2010 года это случилось снова.
Как сообщают западные радиолюбители, примерно в 17:32 GMT станция УВБ-76 передала следующее сообщение: «УВБ-76, УВБ-76 — 93 882 НАИМИНА 74 14 35 74 — 9 3 8 8 2 Николай, Анна, Иван, Михаил, Иван, Николай, Анна, 7, 4, 1, 4, 3, 5, 7, 4» (mp3).
+217
6 способов убить Ваши сервера — познаем масштабируемость трудным путем
5 min
18KTranslation
Узнать, как отмасштабировать Ваше приложение, не имея при этом никакого опыта, — это очень нелегко. Сейчас есть много сайтов, посвященных этим вопросам, но, к сожалению, не существует решения, которое подходит для всех случаев. Вам по-прежнему необходимо самому находить решения, которые подойдут под Ваши требования. Так же, как и мне.
Несколько лет назад ко мне пришел мой босс и сказал: «У нас есть новый проект для тебя. Это перенос сайта, который уже имеет 1 миллион посетителей в месяц. Тебенеобходимо его перенести и убедиться, что посещаемость может вырасти в будущем без всяких проблем.» Я уже был опытным программистом, но не имел никакого опыта в области масштабируемости. И мне пришлось познавать масштабируемость трудным путем.
Несколько лет назад ко мне пришел мой босс и сказал: «У нас есть новый проект для тебя. Это перенос сайта, который уже имеет 1 миллион посетителей в месяц. Тебенеобходимо его перенести и убедиться, что посещаемость может вырасти в будущем без всяких проблем.» Я уже был опытным программистом, но не имел никакого опыта в области масштабируемости. И мне пришлось познавать масштабируемость трудным путем.
+138
Nginx + php-fpm на CentOS 5.3
6 min
24KВ этой статье я поделюсь собственным опытом построения веб-сервера, работающего на CentOS 5.3.
Что требовалось:
Что требовалось:
- Полностью избавиться от Apache. Сервер должен был выдерживать хорошую нагрузку, распределяя статику и динамику.
- Нужна была поддержка последней версии libxml, малейшее различие в версиях делало сайт абсолютно нерабочим.
- Нужен был gzip
- И еще некоторые особенности, о которых я расскажу в самой статье
+1
Сравнительный обзор бесплатных антивирусов
8 min
434KРешил я после обзора одного единственного антивируса AVG Antivirus 9.0 от хабравчанина Courteous написать свой и пройтись по бесплатным решениям в этой области.
Оценка антивирусов проводилась по трём параметрам — юзабилити (тут с моими оценками хабрасообщество может не согласиться), потребление ресурсов и надёжность (надёжность я оценивал по знаменитому архиву из 3732 вирусов).
A-Squared Free
Основные особенности a-squared Free 4.5
• Удаляет трояны, программы-шпионы (Spyware), рекламное ПО (Adware), интернет-червей, клавиатурных шпионов (Keyloggers), руткиты (Rootkits), звонильщики (Dialers) и другие угрозы.
• Прост в использовании и полностью бесплатен
• Более 4 млн. пользователей по всему миру
Для обладателей не слишком шустрого или лимитированного интернета минусом может являться факт начального обновления на 33мб.
Осторожно, под катом много скриншотов!
+155
Связываем домен и динамический IP
2 min
167KЧто мы имеем:
1. компьютер с осью и установленными mysql, apache, php (тут ничего писать не буду, благо мануалов хватает)
2. интернет с присваиваемым динамическим IP, роутер.
Что мы хотим:
1. Что бы люди вбивая в адресную строку браузера доменное имя второго уровня (купленное нами или полученное на каком либо сервисе), попадали на наш сайт (в независимости от того на каком IP он сейчас находиться).
2. Хотим это бесплатно.
Итак, то как это было реализовано мной в виде краткой инструкции можно прочитать под катом, быть может кому-нибудь это пригодиться или просто-напросто будет интересно. Так же, буду рад объективной критике. Спасибо за внимание, и кому интересно добро пожаловать под хабракат.
1. компьютер с осью и установленными mysql, apache, php (тут ничего писать не буду, благо мануалов хватает)
2. интернет с присваиваемым динамическим IP, роутер.
Что мы хотим:
1. Что бы люди вбивая в адресную строку браузера доменное имя второго уровня (купленное нами или полученное на каком либо сервисе), попадали на наш сайт (в независимости от того на каком IP он сейчас находиться).
2. Хотим это бесплатно.
Итак, то как это было реализовано мной в виде краткой инструкции можно прочитать под катом, быть может кому-нибудь это пригодиться или просто-напросто будет интересно. Так же, буду рад объективной критике. Спасибо за внимание, и кому интересно добро пожаловать под хабракат.
+82
Chrome apps вместо Speed Dial
3 min
3.6KЗдравствуй, Хабр.
Иногда, знаете ли, хочется поделиться какой-нибудь ссылкой или двумя, причём никак с друг другом не связанными, или высказать мысль, но такую маленькую мыслишку, которая на пост не потянет. В общем, будучи верным принципу «нереализованные желания рождают комплексы» я сейчас поведаю вам о по-моему наиболее логичном способе использования chrome apps в хроме и поделюсь несколькими полезными ссылочками, но сделаю это несколько необычным способом.
Иногда, знаете ли, хочется поделиться какой-нибудь ссылкой или двумя, причём никак с друг другом не связанными, или высказать мысль, но такую маленькую мыслишку, которая на пост не потянет. В общем, будучи верным принципу «нереализованные желания рождают комплексы» я сейчас поведаю вам о по-моему наиболее логичном способе использования chrome apps в хроме и поделюсь несколькими полезными ссылочками, но сделаю это несколько необычным способом.
+63
Популярные продукты для электронной коммерции с открытым исходным кодом
4 min
30KTranslation
Нас часто просят порекомендовать продукты eCommerce, которые могут интегрироваться с CMS или использоваться совместно с к.л. CMS. Ниже опубликован список ПО с открытым исходным кодом, пригодного для этих целей.
Примечание: русскоязычных пользователей, прежде всего, интересует наличие локализованных версий, поддержка отечественных платёжных систем и русское сообщество. В комментариях по тексту, выделенных курсивом, по-возможности указана эта информация.
Примечание: русскоязычных пользователей, прежде всего, интересует наличие локализованных версий, поддержка отечественных платёжных систем и русское сообщество. В комментариях по тексту, выделенных курсивом, по-возможности указана эта информация.
+38
WTF is a SuperColumn? Введение в модель данных Cassandra
17 min
11KTranslation
Это перевод статьи, датированной 1м сентября 2009 года, следует это учесть при прочтении. — прим. пер.
В последний месяц или два команда инженеров Digg потратила совсем немного времени на изучение, тестирование и окончательное внедрение Cassandra в продакшен. Это был очень веcёлый проект, но до того, как веселье началось, нам пришлось потратить какое-то время на выяснение того, что же представляет собой модель данных Cassandra… фраза «WTF is a «super column»» («что за фигня этот суперстолбец?») была произнесена не один раз.
Если вы работали ранее с РСУБД (это касается почти всех), вы вероятно будете немного обескуражены некоторыми названиями при изучении модели данных Cassandra. Мне и моей команде в Digg потребовалось несколько дней обсуждений, прежде чем мы «врубились». Пару недель назад в списке рассылки разработчиков шёл процесс bikeshed-а на тему полностью новой схемы именования для разрешения неразберихи. На всём протяжении дискуссии я думал: «может, если будет несколько нормальных примеров, люди не будут так смущены названиями». Так, это моя попытка объяснения модели данных Cassandra; она предназначена для того, чтобы вы ознакомились, но не уходили в дебри, и, надеюсь, это поможет прояснить некоторые вещи.
В последний месяц или два команда инженеров Digg потратила совсем немного времени на изучение, тестирование и окончательное внедрение Cassandra в продакшен. Это был очень веcёлый проект, но до того, как веселье началось, нам пришлось потратить какое-то время на выяснение того, что же представляет собой модель данных Cassandra… фраза «WTF is a «super column»» («что за фигня этот суперстолбец?») была произнесена не один раз.
Если вы работали ранее с РСУБД (это касается почти всех), вы вероятно будете немного обескуражены некоторыми названиями при изучении модели данных Cassandra. Мне и моей команде в Digg потребовалось несколько дней обсуждений, прежде чем мы «врубились». Пару недель назад в списке рассылки разработчиков шёл процесс bikeshed-а на тему полностью новой схемы именования для разрешения неразберихи. На всём протяжении дискуссии я думал: «может, если будет несколько нормальных примеров, люди не будут так смущены названиями». Так, это моя попытка объяснения модели данных Cassandra; она предназначена для того, чтобы вы ознакомились, но не уходили в дебри, и, надеюсь, это поможет прояснить некоторые вещи.
+58
По ту сторону браузера: Как подключить прием платежей
4 min
33KПривет!
Лето — жарко и писать про бухгалтерию совсем не хочется. Поэтому мы решили начать серию статьей, описывающих работу нашего SAAS сервиса изнутри. Напишем как о чисто технических вещах (процессинг платежей, безопасность, техподдержа), так и о том как мы выросли от перспективного стартапа к самоокупающемуся бизнесу — о деньгах, о людях, о проблемах любого молодого бизнеса и путях их преодоления. Если интересно что-то еще — пишите в комментариях или в личку.
Итак, в какой-то момент вы понимаете что хотите начать принимать от пользователя денежку за свои услуги и начинаете думать как бы вам это лучше сделать. Ниже я опишу системы, с которыми мы начинали работать и на чем в итоге остановились. Все приведенное в статье является только нашим опытом, ни в коем случае не реклама и отражает только наше мнение. Возможно, где-то нам просто не повезло, а где-то наоборот способствовала удача.
Лето — жарко и писать про бухгалтерию совсем не хочется. Поэтому мы решили начать серию статьей, описывающих работу нашего SAAS сервиса изнутри. Напишем как о чисто технических вещах (процессинг платежей, безопасность, техподдержа), так и о том как мы выросли от перспективного стартапа к самоокупающемуся бизнесу — о деньгах, о людях, о проблемах любого молодого бизнеса и путях их преодоления. Если интересно что-то еще — пишите в комментариях или в личку.
Процессинг платежей
Итак, в какой-то момент вы понимаете что хотите начать принимать от пользователя денежку за свои услуги и начинаете думать как бы вам это лучше сделать. Ниже я опишу системы, с которыми мы начинали работать и на чем в итоге остановились. Все приведенное в статье является только нашим опытом, ни в коем случае не реклама и отражает только наше мнение. Возможно, где-то нам просто не повезло, а где-то наоборот способствовала удача.
+78
Организация SSH-доступа по одноразовым паролям
4 min
6.9KВ любой серьезной компании иногда возникает необходимость в том, чтобы сотрудник, уехавший в отпуск, срочно выполнил свои должностные обязанности. Рассмотрим ситуацию, когда компании необходим конкретный сотрудник, например, системный администратор, который в данный момент возлежит на пляже в тысяче километров от душного офиса. Допустим даже, что этот сотрудник согласен выполнить неожиданно свалившуюся ему на голову работу и на курорте есть интернет-кафе. Но вот проблема: кафе располагается в темном переулке, на его компьютерах стоят популярная ОС, трояны, кейлоггеры и прочие хактулзы, так что набирать пароль root'а от главного сервера компании на подобных машинах довольно неразумно.
Существует несколько решений этой задачи. Например, можно использовать одноразовые пароли, а именно систему s/key, использующую для генерации паролей алгоритмы md4 и md5. Об этой системе и будет рассказано далее.
Существует несколько решений этой задачи. Например, можно использовать одноразовые пароли, а именно систему s/key, использующую для генерации паролей алгоритмы md4 и md5. Об этой системе и будет рассказано далее.
+91
Information
- Rating
- Does not participate
- Location
- Nürnberg, Bayern, Германия
- Registered
- Activity