Pull to refresh
57
0
rimmer333 @rimmer333

User

Send message

TODO Plugin для QtCreator

Reading time9 min
Views8.9K
Итак, уже давно уважаемый Евгений писал нам о хаках QtCreator, а также указывал в своем блоге документ с подробной инструкцией по созданию плагина. И вот на этих выходных, будучи на даче, оторванным от цивилизации и интернета, я решил попробовать написать свой плагин. Плагин достаточно прост, он выводит список все TODO, FIXME и т. д. комментариев в текущем открытом документе. Ниже я расскажу про то, как написан этот плагин, и вообще про написание плагинов для QtCreator.
TODO Plugin

Узнать как написать свой плагин
Total votes 43: ↑40 and ↓3+37
Comments30

Расчет календаря периодических событий с учетом праздничных дней

Reading time17 min
Views3.1K
image

На пиар вряд ли тянет, но кроме как в «Я пиарюсь» не придумал, куда разместить.

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

Вся соль в том, что сроки ЦБ обычно устанавливает, например, как «7 рабочий день месяца, следующего за отчетным». В то время, как формы могут быть как месячные, так и квартальные, годовые, декадные, пятидневки. А тот факт, что на каждый календарный год в России Правительством устанавливается производственный календарь, где закрепляются праздничные дни и все необходимые переносы, только усугубляет положение, так как нужно подстраиваться под все эти изменения.

Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments15

Горячие клавиши в шелле

Reading time3 min
Views113K
Посвящается B_dot, пост которого заставил заинтересоваться возможностями консоли плотнее.
cat /dev/cheat-sheet >> /dev/head

Краткое вступление


В этом посте будет рассказано о некоторых сочетания клавиш, которые могут упросить жизнь администраторам, работающим в консоли. Все они работают в bash'e. Сочетания клавиш я дополнительно проверял на циске (Cisco IOS Software, s72033_rp Software (s72033_rp-ADVIPSERVICESK9_WAN-M), Version 12.2(33)SXH4), csh и zsh. Рассмотренное в других записях повторять особо не буду. Сочетания сгруппированы по использованной функциональной клавише.
Особенно полезен этот текст будет людям, которые любят использовать клавиши Home, End и Delete (которые в цисковой консоли «не работают»).
Читать дальше →
Total votes 150: ↑145 and ↓5+140
Comments59

Учись правильным вещам

Reading time4 min
Views12K
Все знают этого «дядю» по изображению на стодолларовой купюре. Почти все знают фразу «Время — деньги», которую однажды Бен Франклин произнес. Есть много фактов из его интересной и удивительно жизни. Большинство людей не знают, что Франклин таки не был президентом США, хотя и очень активно участвовал в написании Конституции Америки. Много всяких слухов есть о масонстве, мировом порядке и так далее. Больше информации о нем можно прочесть в статье Википедии

Я бы хотел сегодня привести очень интересный отрывок из его дневника. Сегодня модно писать о том, как многое успевать, как быть эффективным, ка организовать бизнес и т.д. и т.п. К сожалению, как заметил Стивен Кови в своей книге «7 навыков высокоэффективных людей» (сам бы в жизни не читал по причине такого названия, но друг очень рекомендовал, прочитал книгу, очень доволен) сегодняшняя литература об управлении и личной эффективности сводиться к простому выписыванию рецептов решения стандартных проблем. Что-то типа аспирина на все случаи жизни. Редко встретишь книгу или статью затрагивающую глубинные мотивы, принципы внутренней жизни и целостности человека. Но сейчас не об этом… Хочу поделиться отрывком из дневника Франклина. Этот человек много достиг, поднялся с низов общества не имея официального образования, уверен, что много можно почерпнуть из его жизни.
Читать дальше →
Total votes 154: ↑129 and ↓25+104
Comments112

Интерактивная консоль PHP

Reading time2 min
Views7.1K
Идея этого лежит на поверхности, но почти все, кому я показывал эту штуку, удивлялись и просили дать им ссылку. Хотя идея простая, а про stdin и readline знают почти наверное все.

Так вот, интерактивная консоль — это просто и очень полезно. С историей и автодополнением.

такие дела
Читать дальше →
Total votes 101: ↑78 and ↓23+55
Comments88

Открытые каналы в Loudtalks

Reading time2 min
Views2.5K
image

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

Loudtalks — это голосовой мессенджер push-to-talk. Вместо того чтобы печатать сообщения, как в ICQ или звонить как в Skype, вы нажимаете горячую клавишу, говорите и звук в реальном времени транслируется собеседнику. Получается быстро и во многих случаях удобнее звонков или IM.

До недавнего времени общаться можно было только с теми, кто явно добавлен в контакты — то есть со знакомыми, коллегами. Нам хотелось дать пользователям способ находить новые контакты, поэтому мы сделали открытые каналы.

Открытые каналы позволяют общаться группам до 100 человек на «одной волне». При этом не обязательно добавлять собеседников в контакты, достаточно найти интересный канал, подключиться к нему и можно говорить. У скайпа раньше была похожая функция под названием Skypecasts, но по неизвестным мне причинам они ее из программы убрали.

Самый первый разговор, после запуска новой версии состоялся на канале Lobby между мной, весельчаком-немцем из Баварии и программистом Google из Сан-Хосе.

Инструкция по применению
Total votes 75: ↑62 and ↓13+49
Comments84

Как побеждать на фриланс-конкурсах, или Откуда в Боливии алмазы

Reading time5 min
Views10K
Думаю, много кого волнует вопрос, как побеждать на фриланс-конкурсах? Постараюсь дать универсальные советы-и-правила-в-виде-инструкции-по-применению :)

Предисловие. Купила краски пачку.

Клиент, разместивший конкурс для фрилансеров, — это неуверенный в себе субъект. В 90% случаев он не способен выбрать подрядчика (поэтому и идет на конкурсы, собственно), чаще всего не способен даже грамотно сформулировать задачу, плюс ко всему он испытывает дикий финансовый голод, а также очень искренне надеется на то, что за его $200 он получит на выходе чудом родившееся у исполнителя гениальное решение его проекта, и приводит в качестве примера логотип компании Nike, нарисованный за $50 в прошлом веке.

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

Правило первое — трезвое.
Знайте, на что идете. Подумайте, почему тот или иной клиент пришел делать конкурс с фрилансерами. Дайте этому трезвую оценку, и не будьте идиотом ждите чуда чудесного от этой затеи.

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

Читать дальше →
Total votes 150: ↑119 and ↓31+88
Comments69

Видеоинтервью на РИФ с Максимом Спиридоновым (podfm.ru) про подкастинг

Reading time2 min
Views3.8K
Интервью состоялось за несколько часов до выступления Макса на РИФе



Любителям подкастинга наверняка здесь все будет понятно, но у широкой публики могут возникнуть вопросы, в таком случае — велкам под кат, там я кратко рассказываю про проект Максима Спиридонова и свой личный опыт в подкастинге.

Читать дальше →
Total votes 54: ↑31 and ↓23+8
Comments8

Как создать несколько магазинов, используя одну установку Magento

Reading time4 min
Views11K
Это вольный перевод вот этой статьи. Статья предназначена для людей, знакомых с Magento, поэтому многие элементарные вещи из оригинальной статьи были опущены. Существует несколько реализаций решения этой задачи:
  • Как поддиректории основного сайта, например,
    • mall.com/shoes
    • mall.com/shirts
  • Использование разных доменных имен, например,
    • shoes.com
    • shirts.com
  • Использование поддоменов основного сайта, например,
    • mall.com
    • shoes.mall.com
    • shirts.mall.com

В результате получится несколько магазинов, использующих один и тот же код, и управляемых из одной админки.
Читать дальше →
Total votes 6: ↑4 and ↓2+2
Comments2

Мобильные — налево, компьютеры — направо

Reading time1 min
Views8.8K
Вы обращали внимание, что при заходе на сайт www.yandex.ru, мы пытаемся определить, используете вы компьютер или мобильное устройство, чтобы показать подходящую версию главной страницы Яндекса?

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

Мы решили помочь вебмастерам. И сегодня открыли доступ всем желающим к нашей системе определения мобильных устройств — Яндекс.Детектору.

http://api.yandex.ru/detector

С его помощью можно легко перенаправлять пользователей на ту или иную верстку страницы.

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

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

Наш опыт говорит, что внедрение такого кода на странице заметно увеличивает число мобильных пользователей, которые в противном случае «не переварили бы» страницу большого сайта.

Смотрите, внедряйте, делитесь результатами!

Команда с определёнными взглядами на мобильное устройство мира.
Total votes 127: ↑110 and ↓17+93
Comments110

Tips & Tricks

Reading time9 min
Views5K
Практически во всех языках программирования одну и ту же задачу можно решить несколькими способами. Однако какие-то из них лучше, какие-то хуже. Для некоторых требуется написать 10 строк кода, для других можно обойтись и одной.

Совершенствование кода и его оптимизация порой отнимает больше времени, чем заняло написание первой версии. Вы часто встречали новый для вас код или интересную реализацию, и говорили себе: «Оказывается, это можно сделать стандартными средствами, а я изобретал велосипед»? Лично я — да. Поэтому в этой статье я собрал свою коллекцию «велосипедов», и рассказал, как от них можно избавиться.

Методы массивов


Простой пример — допустим, у вас имеется массив объектов класса User. У них есть свойство activated, которое выставляется на 1, если юзер активировал свою учетную запись. Вам нужно проверить, все ли юзеры из массива активированы. Не берем во внимание ActiveRecord (там можно и по-другому сделать), моя цель — показать работу с массивами.

Способ первый, самый примитивный:
  1. @users = User.find(:all)
  2. activated_users = 0
  3. foreach user in @users
  4.   activated_users += 1 if user.activated == 1
  5. end
  6.  
  7. # если количество совпадает, значит все юзеры активированы
  8. activated_users == @users.size
Читать дальше
Total votes 76: ↑61 and ↓15+46
Comments45

Javascript виджет авторизации OpenID

Reading time3 min
Views7K
Где то полгода назад я сильно увлекся OpenID и всем что с ним связанно. Моим главным занятием в это время стало — неспешное чтение спецификаций, форумов, блогов и хабрапостов OpenID тематики.

Все знания, которые мной были получены за это время, я «материализовал» в проекте компании, в которой собственно я работаю.

Изучая спецификацию OpenID и прочих его расширениях (SREG, AX) и надстройках, мне пришла идея разработать JavaScript виджет со своим API-прослойкой, в помощь другим разработчикам нежелающим «коротать» дни и ночи изучая спеки различных способов авторизации и их расширений.

Собственно об этом далее.
Читать дальше →
Total votes 91: ↑88 and ↓3+85
Comments70

ProgressBar — Javascript Canvas2d

Reading time4 min
Views6.3K

Здравствуйте. Последнее время я достаточно часто имею дело с JavaScript-canvas, особенно написание всяких игрушек, которые требовательны к трафику в силу необходимости загрузки множества картинок.
Обычно сначала загружается около 50-100кб сжатого JavaScript, после чего — энное количество картинок(например, 500кб, 2мб, 10мб и т.п.) и только после этого запускается сама игра. Можно, конечно, загружать по ходу, но отсутствие текстур врядли порадует игрока.
Потому я решил, что необходимо сделать какой-то приличный, симпатичный, легко-настраиваемый(чтобы быстро менять от проекта к проекту) прогресс-бар, но, обязательно без использования картинок. Под катом исходники под лицензией LGPL, небольшая инструкция, как это сделать и внизу статьи — ссылка на результат.
Читать дальше →
Total votes 90: ↑85 and ↓5+80
Comments31

HOW-TO pptpd+freeradius2+mysql+abills 0.50b для малого офиса или мелкого провайдера на Ubuntu 9.10/10.04

Reading time10 min
Views15K
По просьбе уважаемого Nesmit'а публикую его HOW-TO, заместо своего, т.к. считаю что его инструкция достойна бОльшего внимания чем моя, которая была в этом посте, в моей было много недоработок и ошибок. И понапрасну его статью не пускали в ленту. Очень хорошая статья. Вот и она

ubuntu 9.10, с целью обновиться до 10.04, ничего не трогая.
pptpd 1.3.4-2
freeradius2.1.0
abills 0.5
dictionary.microsoft

Разработчик биллинга находится здесь: abills.net.ua
Хотелось бы выразить большую благодарность разработчикам данного биллинга!

Цели:
1.Обеспечить интернетом локальную сеть.
2.Учет трафика
3.Учет финансов
4.Создание тарифных планов.
5.Ограничение по скорости
6.Шифрование 128bit, причин много.
7.Без шифрования, но используя mschapv2.
8.Шифрование личного кабинета (apache SSL)
9.Возможность модернизации: интеграция почтового сервера с биллингом и т.д. Есть много модулей платных и нет.

Читать дальше →
Total votes 60: ↑52 and ↓8+44
Comments33

Перегрузка функций в JS

Reading time4 min
Views54K
Как известно, в JavaScript нельзя создать несколько функций, различающихся только списком параметров: последняя созданная перезапишет предыдущие. Про различие на уровне типов параметров говорить не приходится вообще. Обычно, если программист хочет создать функцию с множественным интерфейсом, он пишет что-то вроде такого:
  1. // getRectangleArea(x1, y1, x2, y2) или
  2. // getRectangleArea(width, height)
  3. function getRectangleArea(x1, y1, x2, y2) {
  4.   if(arguments.length==2) return x1*y1;
  5.   return (x2-x1)*(y2-y1);
  6. }
* This source code was highlighted with Source Code Highlighter.

Пока пример выглядит не очень страшно, однако интерфейсов может со временем стать заметно больше, тогда функция станет плохочитаема. Посмотрим, что можно с этим сделать.
Читать дальше →
Total votes 106: ↑99 and ↓7+92
Comments59

Сколько стоит Amazon CloudFront

Reading time1 min
Views10K
Появилось желание воспользоваться CDN, но оставался вопрос, «а на сколько оно мне будет по карману?» В принципе можно посмотреть расценки на самом сайте или воспользоваться даже калькулятором, но всё же остаётся не понятным сколько оно может в итоге выйти $1 или $30.

Минимальный прайс


В обязательном порядке придётся заказать Amazon S3, т.к. облака могут работать только в связки с ними, он стоит минимум 4 цента (по центу за место + трафик + PUT, COPY, POST, LIST + GET и остальные запросы).

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

Итого минимум: 12 центов ( ~ 3.6 рубля)
Сколько прийдётся заплатить в действительнсоти
Total votes 56: ↑45 and ↓11+34
Comments40

Визуализация данных в вебе: диаграммы Ганта

Reading time1 min
Views22K
В связи с недавней серией постов на тему визуализации данных в вебе меня попросили посоветовать библиотеки для рисования диаграмм Ганта, что с удовольствием и делаю.

Диаграмма Ганта (англ. Gantt chart, также ленточная диаграмма, график Ганта) — это популярный тип столбчатых диаграмм, который используется для иллюстрации плана, графика работ по какому-либо проекту. Является одним из методов планирования проектов.

Читать дальше →
Total votes 40: ↑39 and ↓1+38
Comments38

Дрейфусовская модель приобретения навыков

Reading time7 min
Views23K
Итак, этот пост будет немного «поспешным», что неудивительно для субботнего утра (оригинальная статья была опубликована 18-ого августа 2007-ого года. прим.пер.), но я хочу сослаться на этот топик в одной работе, которой собираюсь заняться этой осенью. Я планирую плодотворно поработать: создать несколько ресурсов со ссылками в интернете, которые помогут детям в создании своих первых проектов, а также в обучении таким предметам как физика, физика космоса и робототехника/электроника. Если вы знаете меня, то вы знаете, что я довольно долго изучал эти вещи. Проблема в процессе обучения этим предметам в наше время в том, что они чересчур абстрактны и часто ограничиваются теорией «на бумаге». Чтобы изучить эти предметы на уровне более высоком, чем просто знание тривиальных вещей и фактов, вы должны по-настоящему «заниматься» наукой, а не просто «читать» о них.

Существует несколько статей и моделей, которые серьезно повлияли на мое отношение к некоторым вещам, перевернули мой взгляд на подход к изучению этих вещей. Я коснусь каждой из них по-отдельности, а затем соберу вместе накопленные знания и опишу подход, который я собираюсь опробовать. Ни одна из этих статей или идей не станет ни для кого откровением, однако они производят впечатление, когда вы их читаете. Авторы проделали огромную работу и описали предмет так глубоко и детально, как я никогда не смогу.
Читать дальше →
Total votes 63: ↑53 and ↓10+43
Comments56

Information

Rating
Does not participate
Location
Ульяновская обл., Россия
Date of birth
Registered
Activity