Pull to refresh
19
0
zvulon @zvulon

User

Send message

Getting things done? Не врите себе

Reading time4 min
Views18K
Вы подписаны на блог GTD? Вас волнуют проблемы концентрации? Вы составляете распорядок дня, план на неделю, стратегию на месяц, но вечером внезапно <вставить внезапное> до самой ночи, а утром не можете встать? Всё очень плохо. А если вы знаете значение слова прокрастинация (хотя, справедливости ради, кто на хабре его не знает?), то это практически клинический случай. По крайне мере, все и вся вокруг, осознанно и не очень, пытаются нас в этом убедить, ну или просто говорят об этом… ну или молчат, но думают!

Внимание! Статья не содержит чудо рецептов, не сделает более внимательным или работоспособным. Думаю даже не расскажет о чём то, о чём вы до этого не думали.
Фактически, вся статья — это досужее рассуждение на тему (и не очень).
Однако, все совпадения с реальными людьми и событиями не случайны, и автор несёт всю полноту и меру ответственности за всё выше и ниже сказанное, поэтому, если какой либо абзац, предложение или слово кажется вам оскорбительным — не стесняйтесь выражать своё мнение в моей карме.
Так же позволю себе использовать аббревиатуру GTD в широком, а не конкретном смысле.


Читать дальше →
Total votes 154: ↑124 and ↓30+94
Comments69

Программирование музыки на Лиспе

Reading time1 min
Views6.8K
Сэм Арон (Sam Aaron), один из разработчиков Overtone, выложил впечатляющее видео, как он синтезирует мелодии в редакторе Emacs, используя различные приёмы — триггеры инструментов, назначение будущих событий и проектирование сэмплов — на языке Clojure. Музыка звучит сразу после написания строчки кода (live coding).
Total votes 54: ↑46 and ↓8+38
Comments25

Руководство по созданию Excel add-in для начинающих

Reading time5 min
Views48K
Здравствуй, %username%!

Недавно мне пришлось по долгу службы писать небольшой Excel add-in. К слову, до этого мой опыт работы с MS Office из-под .NET сводился к простеньким утилитам, генерировавшим отчеты в Excel при помощи Office Primary Interop Assemblies. А уж когда контора купила лицензии на Aspose.NET, взаимодействие с офисом через COM было забыто аки страшный сон. Так вот, начав разбираться в теме, я был неприятно удивлен отсутствием вменяемых русскоязычных туториалов для начинающих. Теперь хочу заполнить этот пробел. В качестве примера мы создадим add-in, который по нажатию кнопки генерирует на текущем листе список дней текущего месяца и выделяет выходные дни. Заинтересовавшихся прошу под кат!
Читать дальше →
Total votes 31: ↑29 and ↓2+27
Comments11

Частный случай использования Sikuli для решения проблемы в Facebook

Reading time3 min
Views6.1K
Некоторое время назад Facebook стал использовать решение основанное на NFS для хранения фотографий пользователей. Оно помогает справляться с напором в около 220 миллионов новых файлов занимающих 25TB каждую неделю и в часы пик раздающее более 550 тысяч изображений в секунду [1]. Максимальное количество файлов загружаемых в один альбом было увеличено с 60 до 200 на радость пользователям.

Наличие настроек приватности и то обстоятельство, что свободное место на Picasa благополучно было съедено шедеврами прошлых лет, подтолкнуло меня и некоторых знакомых к попытке использования Facebook в качестве фотохранилища.

Практика, однако, выявила некоторые неудобства сервиса, самым досадным из которых оказалась невозможность удаления альбома после загрузки в него множества фотографий. Всем, кого затронула эта проблема и кому любопытен очередной пример использования замечательного кроссплатформенного инструмента визуальной автоматизации Sikuli посвящается эта статья.
Читать дальше →
Total votes 30: ↑29 and ↓1+28
Comments5

Стоит ли быть «успешным»?

Reading time6 min
Views48K
Как надоели эти тематические статьи о повышении результативности, мотивации и прочей чепухе. Зачем люди их пишут? Чтобы помочь тем, кто запутался в себе? Для тех, кому тяжело сосредоточиться? Вряд-ли это так.

Современная жизнь диктует нам, что все нужно делать быстро, добиваться максимальной эффективности. Непременно нужно быть очень успешным. Нужно двигаться к цели, каждый день, каждый час, ежеминутно. Оставив все лишнее, бросить все силы на достижение результата. Иначе нет смысла жить.
Читать дальше →
Total votes 325: ↑293 and ↓32+261
Comments253

17 простых советов для повышения продуктивности

Reading time3 min
Views33K
Эти советы — не очередная компиляция из книг и блогов, посвященных продуктивности. Каждый совет основан на моём личном опыте. На каждый совет я мог бы дать гарантию, если бы гарантия на советы была возможна в принципе.

Вступление окончено, переходим к советам!
Читать дальше →
Total votes 180: ↑152 and ↓28+124
Comments116

Code Coverage по мотивам NUnit тестов в Visual Studio

Reading time3 min
Views8.3K
Без лишних проволочек, предположим, что вы попали в следующую ситуацию:
  • у вас есть некоторый .NET проект;
  • для этого проекта вы написали NUnit-тесты (либо они уже написаны);
  • вам торжественно вручили Visual Studio 2008 Team System (или выше) или Visual Studio 2010 Premium (или выше) и поручили провести анализ покрытия кода тестами (aka code coverage).
Путь вам преграждает только одно маленькое «но»: Test Runner, интегрированный в Visual Studio, видит только собственные MSTest'ы, а вашему любимому NUnit'у уделяет ноль внимания и преподносит фунт презрения. Что делать?

Читать дальше →
Total votes 8: ↑6 and ↓2+4
Comments0

10 способов улучшить свои навыки программирования

Reading time4 min
Views88K

1. Выучить новый язык программирования


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

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

Читать дальше →
Total votes 239: ↑227 and ↓12+215
Comments96

Программирование в облаке: Небольшой обзор Онлайн-IDE

Reading time6 min
Views52K
Похоже, что всё сегодня переходит в «облака», которые являются туманным термин для определения программных приложений и хранилищ данных, размещенных на удаленных серверах где-то далеко по всему Интернету. Так что, если всё наше ПО переходит на облака, то почему бы не перейти инструментам, используемым для создания этого ПО? Ну, а некоторые инструменты, есть там прямо сейчас. Черт, даже GitHub недавно добавил базовые возможности редактирования. В этой статье мы рассмотрим некоторые многообещающие Онлайн-IDE.
Читать дальше →
Total votes 57: ↑54 and ↓3+51
Comments41

Компиляция «на ходу» в эрланге

Reading time2 min
Views1.8K
В некоторых случаях бывает удобно скомпилировать определенные части программы во время работы приложения. Например, в мире явы так происходит компиляция веб сервером .jsp страниц в сервлеты. Другими возможными применениями подобной техники являются разные языки шаблонов, регулярные выражения и т.д.

В эрланге транслятор встроен в библиотеку времени исполнения, и позволяет полностью управлять всеми стадиями трансляции.

Как это сделать
Читать дальше →
Total votes 24: ↑23 and ↓1+22
Comments19

Краткая шпаргалка по tmux (менеджеру терминалов)

Reading time1 min
Views421K
tmux — это менеджер терминалов, к которому удобно подключаться и отключаться, не теряя при этом процессы и историю. Как screen, только лучше (в первую очередь потому, что использует модель клиент—сервер).

image

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

Читать дальше →
Total votes 59: ↑53 and ↓6+47
Comments50

Написание макроса-бота для браузерной игры

Reading time8 min
Views52K

Введение


Не так давно на Google+ появились игры. Прочитав топик об этом, я решил во что нибудь поиграть. Выбор пал на игру Diamond Dash. Через некоторое время игры программист во мне заговорил, что однотипные действия нужно автоматизировать. И вот что из этого вышло…

*Примечание: «руками» даже опытному игроку сложно набрать больше 400к

Раньше я никогда не сталкивался с задачами работы с экраном и мышкой. После непродолжительного гугления было решено для решения использовать язык макросов AutoIt.
Под катом вы найдете краткое описание игры, мой способ распознавания поля, алгоритм определения точки нажатия, и некоторое количество оптимизаций. А так же ссылку на github-репозиторий скрипта.
UPD Добавлено видео работы скрипта.
Читать дальше →
Total votes 168: ↑164 and ↓4+160
Comments115

Авторизация через ВКонтакте, Mail.ru и другие для самых начинающих — 1

Reading time4 min
Views48K
На хабре и других ресурсах есть туториалы, однако в каждом упущен какой-нибудь незначительный момент, вопросы по которому можно видеть на различных форумах. Так как недавно столкнулся с задачей подружить один сайт с Контактиком и Майл.ру, то решил, пока свежа память, сделать свое небольшое руководство с блэкджеком так сказать, используя родные виджеты этих социальных сетей.
Читать дальше →
Total votes 111: ↑100 and ↓11+89
Comments45

Рисуем графики (диаграммы) в Django

Reading time5 min
Views34K
django-google-charts

Многие веб-разработчики время от времени сталкиваются с необходимостью визуализировать сравнительно большое количество данных при помощи диаграмм (далее я буду называть их графиками, хоть это и не совсем верно). Задача не нова, и в сети есть множество готовых решений: работающие на стороне сервера и на стороне клиента, использующие изображения, Canvas, SVG, Flash, Silverlight…

В этой статье я расскажу про django-google-charts и некоторые особенности использования Google Chart Tools для построения графиков на сайте под управлением Django.

Часто, когда нужно добавить график на страницу, разработчик идет по пути наименьшего сопротивления: копирует JavaScript из примера в интернете и как-нибудь выводит в него данные из приложения. Получается что-то наподобие:

var chart_data = [
    {% for row in chart_data %}
    [{{ row.0 }}, {{ row.1 }}],
    {% endfor %}
];

Почему это плохо?
Total votes 66: ↑61 and ↓5+56
Comments27

Пишем «рисовалку» для iPhone на HTML5 Canvas

Reading time7 min
Views10K
Здравствуйте, Хабражители!

В этом топике я покажу как создать простой графический редактор для iPhone. Статья написана максимально понятно, поэтому даже новичку не будет сложности разобраться. Более того, я расскажу:

  • об особенностях событий touch-устройств;
  • об особенностях верстки для мобильных девайсов;
  • почему для создания нормальной «рисовалки» нужно использовать несколько холстов;
  • что такое clickjacking и зачем я использовал этот хак в своей рисовалке;
  • о всех трудностях и некоторых мелочах, с которыми я столкнулся в процессе разработки;


Больше — под катом

Читать дальше →
Total votes 52: ↑47 and ↓5+42
Comments15

Быстрое создание нагрузочных тестов на JMeter для web-сайтов

Reading time5 min
Views150K
imageДля любого программного приложения, предназначенного для массового обслуживания пользователей, необходимо проводить нагрузочное тестирование на предмет его надежности и отказоустойчивости. А так как любой web-сайт — это по своей сути система массового обслуживания, то проверка его на отказоустойчивость всегда является неотъемлемой частью разработки. Существуют различные решения для проведения нагрузочного тестирования веб-приложений. Я не буду сейчас описывать их подробно, про некоторые из них есть упоминания здесь.

В этой статье я хочу поделиться своим опытом использования такого средства, как Apache JMeter. После того как мною были перепробовано с десяток различных подобных инструментом, в итоге я остановился именно на JMeter, так как его возможности с лихвой охватывали мои цели и задачи. И при этом данное программное средство весьма быстрое и легковесное.

Для тех кто ни разу не использовал JMeter, рекомендую для начала почитать базовые обзоры, например, Простой нагрузочный тест с Apache JMeter. Когда я первый раз запустил данную программу, первая мысль была разобраться во всем методом «тыка», но как выяснилось это вообще нереально, и метод «тыка» неприменим к JMeter. Поэтому если хотите его использовать, то сразу открывайте мануал, поверьте, вам придется заглядывать туда очень часто, пока полностью не разберетесь, что и как. Я же здесь сейчас опишу самое очевидное и важное, а именно: как собственно создавать нагрузочные тесты. Если бы я в свое время сразу нашел подобную статью, то сэкономил бы без малого день на изучении этой софтины.
Читать дальше →
Total votes 74: ↑71 and ↓3+68
Comments35

Собрать проект Visual Studio в один файл с помощью ILMerge

Reading time3 min
Views106K
app.exe, d1.dll d2.dll = app.exeОбычно результатом компиляции проекта является сборка (assembly) проекта, а также его зависимости (Referenced Assemblies). Однако иногда нужно чтобы результатом был один файл единственный файл, независимый от других сборок. Например простая утилита, которую можно будет куда угодно скопировать и она будет работать.

Пример

Условно говоря после:
    compile App\App.csproj  
    dir App\bin\Release  
Получаются:
    App.exe
    dep1.dll
    dep2.dll
Нам же нужно лишь один самодостаточный
    App.exe 
То есть содержащий в себе dep1.dll и dep2.dll

На Хабре уже присутствует решение со встраиванием зависимостей в ресурсы, здесь я покажу как это сделать с помощью ILMerge и Post Build Event в Visual Studio.

читать как это сделать
Total votes 45: ↑42 and ↓3+39
Comments29

Работа со структурами в C#

Reading time13 min
Views142K
По следам недавнего топика «Обработка больших объемов данных в памяти на C#» представляю перевод упоминавшейся там статьи о структурах.

Структуры являются фундаментальными типами данных в C# и большинстве других современных языках программирования. По своей сути структуры просты, но вы можете удивиться, насколько быстро работа с ними может стать сложной. Чаще всего проблемы возникают, если вы должны работать со структурами, созданными в других языках и сохраненными на диске или полученными в результате вызова функций из библиотек или COM-объектов. В этой статье я подразумеваю, что вы знакомы с понятием структуры, умеете определять их и владеете базовыми навыками работы со структурами. Предполагается, что вы имеете представление о том, как вызывать API функции с использованием p/Invoke, а также что такое маршалинг. В случае неуверенности в своих знаниях вы можете обратиться к документации.
Множество техник, описанных в данной статье, могут быть расширены и применены к любым типам данных.
Читать дальше →
Total votes 96: ↑82 and ↓14+68
Comments11

Lisp разработчик: две стороны одной медали

Reading time6 min
Views20K
Я уже около 20 лет программирую на Lisp и прочитал множество сообщений Usenet и статей в блогах, написанных Lisp — разработчиками. Я часто задавал себе вопрос — А существует ли типичный Lisp — разработчик, как существуют типичные представители наций или других групп людей?

После некоторых размышлений, я пришел к выводу, что определенно существует, и этот характер влиял на историю развития языка, его сильные и слабые стороны. Так родилась эта статья, которая без сомнений кого-то заденет и подтолкнет спору.
Читать дальше →
Total votes 88: ↑81 and ↓7+74
Comments161

Автоматизация логирования входов в функции

Reading time2 min
Views4.2K
У нас в компании с незапамятных времен существует гласно-негласное правило о логировании входа в каждую функцию. И ладно бы это ограничивалось простой строчкой Logger.LogEntering() в их начале (хотя, наверное, тоже надоело бы), так еще и наш «замечательный» доморощенный логгер получать названия функций из которых он вызван не умеет, и как следствие, эта единственная строчка разрасталась до эпического Logger.Log(«Classname.FunctionName — Entering») or something like that.

Неудивительно, что под воздействием недавних топиков о Mono.Cecil и родилась задача автоматизации процесса.

Читать дальше →
Total votes 40: ↑30 and ↓10+20
Comments19

Information

Rating
Does not participate
Registered
Activity