|
Получение записей из Tokyo Tyrant и асинхронно-синхронный код
Механический мир | 08-02-2010 21:03
| написать обзор...
Пытаясь использовать Tokyo Tyrant для хранения записей блога, я столкнулся с неприятным багом. При получении записей и показе их на странице всё было нормально, но при попытке стресс-тестирования с помощью Apache Benchmark Нода просто вываливалась с ошибкой Error: Unhandled emitError. Сперва оказалось что я просто забыл добавить errBack к фукции поиска в Tokyo Tyrant (оказывается, это наказуемо не [...]
|
|
Шаблонизаторы в Node: Mu
Механический мир | 05-02-2010 17:35
| написать обзор...
[ссылка] Итак, в написании блога настал момент когда просто выводить HTML стало недостаточно, и я стал искать шаблонизатор для сайта. Выбор пал на [ссылка] – порт Mustache из Ruby, насколько я понял. И хоть с Ruby работать мне не приходилось, синтаксис и набор фич понравился. Чёткое отделение логики от представления (в шаблоне вообще нет кода), вложенные шаблоны, компиляция в функции. В об [...]
|
|
phpDesigner 7.1 RU
Полезные программы | 04-02-2010 19:09
| написать обзор...
[фото] phpDesigner — долгожданная версия многофункциональной и очень удобной программы для создания, редактирования, отладки, анализа и публикации веб-страниц и приложений на языке PHP. Пакет одинаково подходит как для начинающих программистов, так и для профессиональных разработчиков. Кроме PHP, программа поддерживает HTML, MySQL, XML, CSS, javascript, VBScript, JAVA, C, Python и Ruby. Т [...]
|
|
Асинхронное программирование в Node.js: Ожидание нескольких событий сразу
Механический мир | 04-02-2010 17:29
| написать обзор...
Постановка задачи Представим себе такую ситуацию. Нам надо сделать поиск в базе Tokyo Tyrant (или любой другой) и получить найденные значения в виде JavaScript-объектов. Проблема состоит в том, что получение объекта из Tokyo Tyrant происходит с коллбеком. Т.е., у нас на руках после поиска оказывается несколько коллбеков – по числу ожидаемых объектов:
var tyrant = require('./tyrant/tyrant') [...]
|
|
Слияние ветвей в Git без fast-forward
Механический мир | 04-02-2010 13:55
| написать обзор...
[ссылка] При слиянии ветвей Git по умолчанию делает т.н. «fast-forward»: коммиты ветви выглядят так будто были сделаны в транк. Для мелких правок это может быть несущественно, но если ветвь представляет собой какую-либо feature, удобно видеть на каком коммите она начинается. Для этого надо мержить ветви с флагом --no-ff:
git merge <имя_ветви> --no-ff
[ссылка] [ссылка] [ссылка]
|
|
Я рекомендую / [Ссылка] Пятнадцать сильнодействующих способов похвалить программиста
Habrahabr Blog | 03-02-2010 01:06
| написать обзор...
(Рекомендую там читать и блогозапись, и некоторые комментарии.)
|
|
здесь хоть дневник можно удалить :)
LiluMi | 02-02-2010 15:10
| написать обзор...
Когда то у меня было зеркало блога на lilumi.blog.ru — там была хорошая система — посты с одного блога можно было опубликовать там и еще в других блогах — таким образом можно было вести много блогов на разных сайтах. Не спрашивайте зачем мне это нужно, я теперь уже и сам не смогу ответить на этот вопрос. И вот недавно я занялся тем, чтобы удалять все эти блоги-дубликаты. Та [...]
|
|
Табличные базы в Tokyo Tyrant
Механический мир | 29-01-2010 12:48
| написать обзор...
[ссылка] Табличный режим пока выглядит довольно непривычно. Функции put передаются попеременно ключи и значения (но первым передаётся id записи). Вот так может выглядеть добавление записей в простенький блог и доставание их оттуда:
var tyrant = require("./tyrant");
var sys = require('sys');
var c = tyrant.connect();
c.addListener("connect", function (){
tyrant.put('blog1', [...]
|
|
Tokyo Tyrant — Exception: connection is not open
Механический мир | 29-01-2010 12:09
| написать обзор...
При попытке написать блог на связке Node + nginx + Tokyo Tyrant наткнулся на интересную вещь. Нам нужно открыть соединение с Tyrant, чтобы сохранять и получать оттуда записи. Первый же вариант — открыть соединение вместе с инициализацией Nerve и использовать его по мере необходимости. В теории это должно работать (пока клиент один):
var hello = [
["/", function(req, res) {
[...]
|
|
Хранилища данных в Node.js: Tokyo Cabinet/Tokyo Tyrant
Механический мир | 26-01-2010 20:19
| написать обзор...
[ссылка] Этим постом я начинаю серию о key-value stores, доступных из Node.js. Вообще то первым должен был быть пост о [ссылка] , но т.к. сам Redis недавно [ссылка] а [ссылка] для node — ещё не успел, мы начнём с Tokyo Tyrant. Tokyo Cabinet, Tokyo Tyrant Вкратце: Tokyo Cabinet — встраиваемое хранилище данных, очень продуманное и быстрое. В отличие от memcached или redis данные могу [...]
|
|
Радио-Т 171
Радио-Т | 24-01-2010 07:34
| написать обзор...
- Вся правда о мероприятии Apple[фото]
- GDrive родилa мышь
- Новый FF быстрее и попсовее чем старый
- Интернету больше нельзя верить
- Английские менеджеры не понимают
- Известна дата конца сети: раскулачивание на носу
- Кого фоловить в твитерах?
- С Sun теперь окончательно все
- Билл Гейтс ворвался стремительным домкратом
- 99% у Apple вызывает смех аналитегов
- О типах программистов [ссылка]
|
|
Автоматическое управление багами в Github с помощью microcline
Механический мир | 22-01-2010 20:46
| написать обзор...
Для Node.js уже существует несколько модулей юнит-тестирования. И так как большинство относящихся к Node вещей хостятся на Github, я решил быстренько реализовать Github API в виде модуля. В первую очередь это может понадобиться для того чтобы открывать/закрывать баги на Гитхабе прямо из юнит-тестов.
Использовать microcline предельно просто. Открытие новой баги делается так:
var microcline = requ [...]
|
|
Попытка портировать Google Wave Robots API на Node.js
Механический мир | 22-01-2010 16:37
| написать обзор...
Вчера вечером посетила меня замечательная мысль: а ведь Node можно использовать для лёгкого создания роботов к Wave. Скачанный и распотрошённый [ссылка] подтвердил догадки: внутри всё не очень сложно, основные форматы обмена в Wave-протоколе — XML и JSON. Т.к. Ryan обещал включить в следующие версии обертку к libxml, я стал потихоньку присматриваться к API и понемногу его портировать. К сож [...]
|
|
Выступление Ларса Бака (кратко)
Механический мир | 19-01-2010 22:17
| написать обзор...
Пока не забыл, сгружу сюда основные мысли по поводу содержания конференции: JavaScript компилируется куда ближе к ассемблеру, чем я думал Именованные свойства и свойства по индексу хранятся в разных местах, для ускорения итерации Свойства объектов вообще хранятся двумя способами: small int хранятся сразу по адресу, для остального младший бит устанавливается в 1 и хранится адрес. Память использует [...]
|
|
PL/SQL Developer 8.0.1.1502
Полезные программы | 19-01-2010 18:57
| написать обзор...
[фото] PL/SQL Developer – это Integrated Development Environment, направленное на разработку программных единиц для Баз данных Oracle. Мы видим, как все больше и больше бизнес логики и логики приложений строятся на Oracle серверах, поэтому PL/SQL программирование стало важной частью процесса разработки. PL/SQL Developer фокусируется на простоте использования, качестве кодирования и продуктивности [...]
|
|
Использование nginx вместе с Node.js
Механический мир | 19-01-2010 11:35
| написать обзор...
[ссылка] У Node.js есть один серьёзный недостаток — ей неудобно отдавать файлы. А без этой функции делать полноценный веб-сервис не очень то удобно. И если отдавать текстовые файлы вроде HTML/JavaScript/CSS ещё можно как то приспособиться, то с двоичными всё сложнее. Поэтому будем ставить nginx в пару к node. [ссылка] — очень быстрый веб-сервер, основанный как и node.js на event loop [...]
|
|
Нужен программист C/C++ или Java. Москва
Флэш Потрошитель | 17-01-2010 15:56
| написать обзор...
В компанию "Инновационные системы общения" ([ссылка] ) для работы над секретным проектом требуется хороший программист для разработки серверных приложений (для начала биллинга).
Желателен опыт работы 1-3 года и опыт разработки под Linux, знание сетевых протоколов. Не будет лишним, хотя и не обязательно, знать дополнительные языки программирования. Работа постоянная в хорошем офисе, недалеко от м. [...]
|
|
Ларс Бак в Санкт-Петербурге
Механический мир | 16-01-2010 13:54
| написать обзор...
[ссылка] Фото: Cnet.com Во вторник, в 19 часов, в конференц-зале гостиницы Novotel будет выступать [ссылка] , создатель движка v8. Он расскажет об особенностях виртуальной машины, о некоторых секретах оптимизации производительности и планах дальнейшего развития v8. Если обстоятельства позволят попасть на конференцию, постараюсь всё записать и сделаю тут краткий отчёт о событии. Всё таки не каждый [...]
|
|
Индия и её программисты
Флэш Потрошитель | 14-01-2010 18:56
| написать обзор...
Здравствуйте профессионалы, гении, пустозвоны и прочие программисты любители. Как многие из вас догадываются есть такая далёкая страна Индия, может быть кто-то из вас там был, многие из вас даже видели код написанный великими индийскими программистами. Про красоты Индии и молодых людей которые при поступлении в "Бомбейский Технический Институт" помоему он так называется, проходят конкурс 300 чел [...]
|
|
Асинхронное программирование в Node: события, коллбеки, promises
Механический мир | 14-01-2010 17:23
| написать обзор...
Неблокирующие функции Основная «фишка» node.js, как известно, в том что большинство функций в ней неблокирующие. Что это значит для программиста? Операции в программе отнимают разное время в зависимости от того к чему мы обращаемся. Операции с регистрами — самые быстрые, потом идут операции с кэшами первого и второго уровней (1 и 5 наносекунд соответственно), операции с RAM (~80- [...]
|
|
Оперируем двоичными данными в Node.js. Часть 2: получение ответа
Механический мир | 12-01-2010 21:17
| написать обзор...
Итак, в [ссылка] мы собрали и отправили серверу запрос, и получили двоичную строку в ответ. Самое время эту строку препарировать [фото] Разбираем ответ сервера Структура ответа в Sphinx довольно проста, и понятна даже из кода PHP-коннектора (собственно, так я его и портировал). Сначала 8 байт заголовка: статус-код (int16), версия (int16), длина оставшейся части заголовка (int32). Последнее на [...]
|
|
Sqlite Developer v3.5.9.442
Полезные программы | 10-01-2010 20:19
| написать обзор...
[фото] Sqlite Developer - менеджер по управлению базами данных SQlite3. Содержит эффективные инструменты управления данными.
|
|
Радио-Т 168
Радио-Т | 03-01-2010 05:23
| написать обзор...
[ссылка] - Каждый гик должен сделать [ссылка]
- Почему программистам [ссылка] не так
- Новогодние радости [ссылка] и [ссылка]
- Куда и зачем перешел [ссылка]
- Забавная 10-ка «[ссылка] » open source
- Интернет [ссылка] до 8ми часов
- Грядет [ссылка] , уже скоро [ссылка] [ссылка] [ссылка]
|
|
Упаковка и распаковка бинарных данных в JavaScript
Механический мир | 29-12-2009 16:24
| написать обзор...
В текущем стандарте JavaScript (и в Node.js) к сожалению нет поддержки упаковки/распаковки двоичных данных — аналогов pack() и unpack() из PHP. Т.к. в Node есть возможность соединяться с TCP-серверами и самому создавать их, там не помешала бы возможность обмениваться данными в каком либо двоичном протоколе. В частности, в моём последнем опыте (соединение Node.js и [ссылка] ) потребовалось по [...]
|
|
Ежелокомотивские заметки: Генератор тактических схем
Локомотив - Главная лента | 27-12-2009 04:39
| написать обзор...
[фото]
Честно говоря не знаю, есть ли в сети аналоги, да и не очень искал, интересно было самому сделать)Мне для того чтобы нарисовать внятную тактическую схему раньше приходилось производить много телодвижений, в результате чего родился гениальный план написать скрипт, который бы а ля футбольный менеджер позволял бы расставлять игроков как мне хочется, и чтоб еще фамилии можно было подписать. [...]
|
|
Горячая замена кода в Node.js
Механический мир | 23-12-2009 00:30
| написать обзор...
[ссылка] Фото: Ivy DawnedРешил сегодня попробовать в Node.js горячую замену кода. В самом деле, раз скрипт крутится на сервере на манер FastCGI, логично было бы не перезапускать Node при каждой правке, а подгружать код из файла и прямо на работающем сервере менять старый callback на новый. Да и для экспериментов удобнее. Что ж, попробуем. Первый вариант Добавляем в исходники фреймворка (nerve) фу [...]
|
|
Node.js – стиль и фреймворки
Механический мир | 22-12-2009 00:59
| написать обзор...
После PHP писать для Node приятно. Конечно, это дело субъективное, но лично мне JavaScript теперь кажется куда более подходящим языком для Web-приложений. Добавьте сюда то что теперь один язык можно использовать и на клиенте, и на сервере. К тому же стиль программ (event-driven) уже знаком большинству веб-программистов из опыта клиентского JavaScript. Стиль программирования Если Вам случалось пис [...]
|
|
Ставим Node.js
Механический мир | 20-12-2009 00:52
| написать обзор...
[ссылка] Фото: Jeff Wilcox Последнее время я интересуюсь [ссылка] – веб-сервером с асинхронным вводом/выводом, построенным вокруг [ссылка] . И вот сегодня наконец решил поставить. Node.js Немного о самом сервере. Скрипты пишутся, понятное дело, на Javascript, который V8 компилирует чуть ли не в машинный код. Скорость просто отличная, близка к C++, по некоторым замерам даже иногда её превос [...]
|
|
SmartGit: оболочка для Git в Windows
Механический мир | 18-12-2009 16:57
| написать обзор...
Сегодня нашёл интересную оболочку для Git — SmartGit. Написана на Java, бесплатная для некоммерческого использования, разработчики обещают удобный интерфейс. Т.к. родной интерфейс gitk меня не устраивал, я скачал и поставил SmartGit. Под катом – мои впечатления. Во первых, установка удобная. SmartGit сам нашёл мою инсталляцию git’а, взял оттуда имя пользователя и email, запросил тольк [...]
|
|
Биометрический загранпаспорт
Женская Логика | 17-12-2009 19:25
| написать обзор...
Автор: Никулина Ольга (Олли Райтер) – http://www.zhenskayalogika.ru/ Наконец-то мы отдали документы на загран. Расскажу немного об этом, может, наш опыт кому-нибудь пригодится. Правда, мой рассказ будет чем-то средним между пособием по получению биометрического загранпаспорта и очередными записками жены программиста…
Получение биометрического загранпаспорта
Список документов, необходимых дл [...]
|
|
Установка git в Windows (на этот раз подробно)
Механический мир | 16-12-2009 19:35
| написать обзор...
[ссылка]
Судя по всему, многие из посетителей приходят на этот блог в поисках руководства по установке Git в Windows. И, что самое печальное, всё что они находят — куцая [ссылка] со ссылкой на [ссылка] . Пришло время исправить это недоразумение [фото] Установка и настройка Итак, установка git. Сразу оговорюсь что мы будем ставить msysgit, и заодно произведём необходимые действия для подключе [...]
|
|
Изменения в Spore Fortress
Механический мир | 07-12-2009 18:01
| написать обзор...
В Spore Fortress наконец улажены неполадки с получением случайных существ и с количеством атак. Новую версию опробую на днях. [ссылка] [ссылка] [ссылка] [ссылка] [ссылка] [фото]
|
|
Статистика существ в Dwarf Fortress
Механический мир | 04-12-2009 17:17
| написать обзор...
В процессе разработки Spore Fortress возник вопрос – как получающиеся создания укладываются в общий ряд созданий Dwarf Fortress? Чтобы немного прояснить для себя ситуацию, я скачал [ссылка] и два наиболее распространённых (на мой взгляд) мода – [ссылка] и [ссылка] . После этого я стал в них копаться [фото] Температура тела Первое что меня заинтересовало — температура тела. [...]
|
|
Agile и автоматизированное тестирование
Блог о IT бизнесе | 04-12-2009 01:39
| написать обзор...
После года работы в Agile режиме (в нескольких их видоизменениях) осознал, что Agile НЕ может нормально работать для без автоматизированного тестирования. Пойду доказательством от противного. Пусть мы работаем в Agile и у нас нету автоматизированного тестирования. У нас есть пять user story, которые мы делаем. Внутри каждой из них у нас есть какие-то разумные критерии по которой мы определяем, что [...]
|
|
Agile и автоматизированное тестирование
Itblogs: Блоги | 04-12-2009 01:39
| написать обзор...
После года работы в Agile режиме (в нескольких их видоизменениях) осознал, что Agile НЕ может нормально работать для без автоматизированного тестирования. Пойду доказательством от противного. Пусть мы работаем в Agile и у нас нету автоматизированного тестирования. У нас есть пять user story, которые мы делаем. Внутри каждой из них у нас есть какие-то разумные критерии по которой мы определяем, что [...]
|
|
Поддержка CURL в Spore Fortress
Механический мир | 03-12-2009 17:39
| написать обзор...
[ссылка] В результате вчерашнего code sprint’а в Spore Fortress появилась поддержка curl с автоматическим fallback’ом до fopen(). В дальнейших планах — реализовать кеширование полученных XML и правильный их запрос с сервера с использованием [ссылка] . Также возможно появятся новые prefstring‘и, зависящие от цвета и размера существа. [ссылка] [ссылка] [ссылка] [ссылка] [ссылка]
|
|
Spore Fortress в GitHub
Механический мир | 01-12-2009 23:43
| написать обзор...
[фото] Выложил [ссылка] в github. Если кто нибудь захочет поставить скрипт у себя или использовать какие то части – пожалуйста. Лицензия: [ссылка] . Вкратце это значит — копируйте, изменяйте, оставляйте ссылку на меня [фото] [ссылка] [ссылка] [ссылка] [ссылка] [ссылка] [фото]
|
|
Сколько надо программистов, чтобы вкрутить лампочку?
BaRoN! на Берсерки.Ру | 30-11-2009 14:16
| написать обзор...
Экспериментальным путем выявлено, что надо 2 недели, 2 программиста и 1 завхоз. Первую неделю программисты несут лампочку, вторую неделю – на нее смотрят и думают, как ее вкрутить без стремянки (лампочку требуется вкрутить на высоте 2.5 метра примерно). В конце второй недели идут к завхозу за стремянкой, один – держит стремянку и щелкает выключателем, второй вкручивает лампочку. Почти [...]
|
|
Sisulizer Enterprise 2008 v2.0.292 Rus
Полезные программы | 25-11-2009 20:06
| написать обзор...
[фото] Sisulizer - программа, предназначеная для локализации разнообразного программного обеспечения. Процесс локализации происходит путём сканирования приложения и определения всех участков текста. Поддерживает работу непосредственно в C++ Builder, Delphi, Visual C++, Visual Basic, jаvа, XLIFF. Позволяет визуально работать с HTML и XML, а также отбирать текст из текстовых файлов и баз данных. Пр [...]
|
|
Синхронизация Drupal-сайтов с помощью migraine
Механический мир | 24-11-2009 16:26
| написать обзор...
[фото]
Синхронизация developement и production серверов в Drupal — занятие нелёгкое. Даже в 6 версии не хватает простого способа переноса и восстановления контента. В модуле CCK есть нужный функционал, но одним custom-контентом сайт обычно не ограничивается. Код модулей и ядра можно синхронизировать с помощью систем контроля версий, но что делать с базой? На этот счёт есть разные подходы – [...]
|
|
ShIT happens
Изнутри наружу | 23-11-2009 23:38
| написать обзор...
Есть такое явление — студенческий КВН. Хоть я и учился в институте всего один семестр, я всё же успел посетить одно такое мероприятие, и даже принять в нём посильное участие. Студенческий КВН, как говорится, «бессмысленный и беспощадный». Смешнее всего самим студентам, которые сочиняют шутки, репетируют, готовятся, а затем выходят на сцену, чтобы продемонстриоровать там своё [...]
|
|
История ИТ / Программист и ошибки — актуально во все времена
Habrahabr Blog | 22-11-2009 06:24
| написать обзор...
Годы бегут, компьютеры становятся мощнее, листинги программ длиннее, а программисты всё ещё допускают те же самые ошибки (или же сталкиваются с ними)… Предлагаю разобраться с основными типами ошибок и причинами, по которым они происходят
Чтобы максимально раскрыть смысл фразы "актуально во все времена", в качестве иллюстрирующих примеров будут приведены сведения времён старой доброй DOS [...]
|
|
Учись Работать / Выбор профессии: Учёный или Программист
Habrahabr Blog | 20-11-2009 19:14
| написать обзор...
[фото]
Здравствуйте. Прошу прощения за топик, который скорее всего интересен только мне. Не подумайте, что я пишу всё, что лезет мне в голову. Просто меня этот вопрос волнует уже несколько месяцев и я не могу найти на него ответ. А так как почти вся аудитория ХабраХабра умна, разносторонняя и образована, решил обсудить этот вопрос здесь.
В чём собственно суть вопроса? [ссылка]
|
|
Диагностика с помощью CSS-стилей
Механический мир | 17-11-2009 16:13
| написать обзор...
[ссылка] Набрёл сегодня у Jens Meiert на интересный букмарклет: он проверяет установлены ли title и href у ссылок, alt и title у картинок и прочие мелочи, удобно выделяя недостатки жирным красным кантом или ядовитыми фоновыми цветами. Сам букмарклет можно найти [ссылка] , там же ссылка на объяснение что означает каждое оформление. [ссылка] [ссылка] [ссылка] [ссылка] [ссылка] [фото]
|
|
Various JavaScript nonsense
Механический мир | 16-11-2009 12:11
| написать обзор...
[фото] В пятницу я наконец то получил [ссылка] «JavaScript. Подробное руководство» 5-й редакции. Как раз недавно видел у [ссылка] упоминание о том что это единственная книга по JavaScript, которую можно рекомендовать в качестве учебного пособия. В общем, я очень рад. Кроме того, нашёл хороший [ссылка] по стандарту ECMAScript. Также вчера был открыт обновлённый [ссылка] – ан [...]
|
|
Обращение к REST-сервисам из JavaScript
Механический мир | 05-11-2009 14:31
| написать обзор...
В предыдущем посте я обещал рассказать почему я выбрал именно такой способ обращения к REST API — через прокси-скрипт. Here goes: В JavaScript есть такая вещь как [ссылка] . Вкратце она означает что JavaScript в окне браузера может делать запросы только к страницам находящимся на том же домене которому принадлежит объект окна (а не файл скрипта, заметьте). Причём два окна могут обмениваться информ [...]
|
|
Общая архитектура Spore Fortress
Механический мир | 05-11-2009 13:36
| написать обзор...
Вкратце посмотрим на архитектуру SF. Вот так выглядит workflow: [ссылка] Итак, нам надо получить с сервера список созданий (лучших, случайных, созданий конкретного пользователя — в данном случае не так важно). Потом мы этот список красиво показываем пользователю, он выбирает нужных существ, они преобразовываются в формат DF (нет смысла преобразовывать всех подряд), и отдаются пользователю в станд [...]
|
|
Котеров Д. В. - PHP5 в подлиннике
Полезные программы | 04-11-2009 18:42
| написать обзор...
[фото] Рассматриваются основы функционирования Web-серверов, сборка исполняемого модуля РНР в ОС Unix, инструментарий Web-разработчика (в том числе утилиты отладки сценариев), синтаксис и стандартные функции языка. Приведено описание функций РНР для работы с массивами, файлами, СУБД MySQL, регулярными выражениями формата PCRE, графическими примитивами, почтой, сессиями и т. д. Особое внимание уде [...]
|
|
Maxis Spore API
Механический мир | 03-11-2009 15:27
| написать обзор...
[фото] Сейчас мы по быстрому рассмотрим Spore API, который я использую в маленьком проекте. API построена на протоколе REST, постоянно дорабатывается и развивается, и возможности его, хоть и ограничены, но довольно неплохи. Документация пока скудная и частично разбросана по форумам Maxis в ответах разработчиков компании. Вот [ссылка] о Spore API на ProgrammableWeb.
Идея моего мэшапа довольно п [...]
|
|
Халява в Интернете 2
Полезные программы | 29-10-2009 23:25
| написать обзор...
[фото] Эта книга научит быстро находить в Сети нужную информацию, скачивать интересные фильмы, музыку, программы, игры, поможет звонить с мобильного телефона в 5-7 раз дешевле из любой точки мира, отправлять бесплатные SMS разным операторам, экономно совершать покупки в магазинах, расскажет о новых возможностях программы Skype и о самых популярных способах обмана в Интернете.
|