Pull to refresh
8
0
crazyprog @crazyprog

User

Send message

Тёмная тема для Eclipse+PDT (ZendStudio for Eclipse)

Reading time5 min
Views3K

Преамбула


Когда-то давно, работая еще в ZendStudio 5.0, а потом и 5.5 нашлась красивая темная тема для подсветки кода. За пару лет работы я так привык к ней, что пересев на Eclipse+PDT, глаза были против белого фона с зелеными буковками.
Поиски в интернете такой же темы для Eclipse, поиски хоть какой-нибудь тёмной темы а затем и поиски вообще какой-либо темы результата не дали. Оказалось (о ужас!), что Eclipse не поддерживает смену готовых тем.

Поиски хотя бы какой-то возможности кастомизации Эклипса на хабре вывели на топик хабраюзера olegchir. Вдохновленный идеей самому сделать аналог Parabox Style для Eclipse, я принялся за работу

Что из этого получилось, можно глянуть на скриншотах ниже:


Еще скриншоты и инструкция

PHP класс для конвертирования кодировки базы Mysql

Reading time4 min
Views625
Недавно я написал скрипт конвертирования Mysql базы из одной кодировки в другую. После, я решил переписать скрипт, создав класс. Теперь можно подключать эту библиотеку в своих скриптах. Использование данного класса показано ниже.
Читать дальше →

Вопросы с собеседования на должность «C# Developer»

Reading time2 min
Views5.9K
  1. Name ten c# keywords.
  2. What is a 'static' class?
  3. What is difference between overloading and overriding?
  4. Is multiple inheritance supported in .Net?
  5. Class inherits from two interfaces containing methods with the same signature. Is it possible to provide different implementations for these methods?
  6. What can be a root reference?
  7. How 'System.String' class differs from most of other classes?
  8. Will a 'finally' block be executed if there was no exception thrown?
  9. What is a satellite assembly?
  10. How 'protected' access modifier affects visibility?
  11. What does keyword 'mutable'?
  12. Can multiple catch blocks be executed?
  13. What does operator 'as' do?
  14. What does keyword 'final'?
  15. Can different access modifiers be applied on the getter and setter of a property?
  16. Can a class be prevented from being inherited?
  17. What is event?
  18. What is the difference between event and delegate?
  19. Are events synchronous or asynchronous?
  20. What does keyword 'safe'?
  21. Can interface members be private?
  22. What does keyword 'in'?
  23. What is the advantage of using 'System.Text.StringBuilder' class over 'System.String'?
  24. What is special about the declaration of relational operators?
  25. How 'public internal' access modifier affects visibility?
  26. Can a local variable get garbage collected before it becomes out-of-scope?
  27. What implementations of serialization are built in FCL? Where are they used?
  28. How 'protected internal' access modifier affects visibility?
  29. Can 'break' exit a finally block?
  30. How to apply attribute to method return value?
  31. What is the difference between C# class finalizer and C# class destructor?
  32. What is purpose of 'IDisposable' interface?
  33. Can an array be resized at runtime?
  34. Does the size of an array need to be defined at compile time?
  35. Can a destructor have access modifiers?
  36. What is smallest integer type to represent number not greater than 40 000?
  37. What do keywords 'sizeof' and 'typeof'?
  38. What is differece between 'sizeof' and 'Marshal.SizeOf'?
  39. What is array rank?
  40. What does keyword 'stackalloc'?
  41. What encoding uses 'System.String' class?
  42. What is boxing and unboxing?
  43. What is reflection?
  44. What is struct?
  45. What is multicast delegate?
  46. Does C# have “friendship”?
  47. What is the 'using' statement for?
  48. Can a struct have methods?
  49. Can a struct be inherited?
  50. Why do most event handlers use signature 'void(object, EventArgsDerivative)'?
Наблюдавшиеся результаты: от 12 до 30 правильных ответов.

Автоматизация функционального тестирования: что это такое и как это может быть полезно

Reading time3 min
Views11K
В том, что тестирование ПО необходимо, к счастью, никто уже не сомневается. Но так как сама отрасль тестирования достаточно молодая, в ней еще не сформировались общепринятые методологии и правила, как в отрасли разработки ПО. Как обычно производится функциональное тестирование приложений, систем и т.п. Процесс можно разбить на следующие стадии:
  1. Сбор требований (справедливо для «внешнего тестирования»)
  2. Создание тестовой модели (что и как тестируем)
  3. Проведение тестирования
  4. Отчет о тестировании (дефекты, проблемы и т.п)

Каждая стадия включает в себя исключительно ручной труд. И для каждой новой версии приложения необходимо проводить регрессионное тестирование — повторять следующие стадии:
  1. Дополнение тестовой модели
  2. Проведение тестирования
  3. Отчет
Причем стадия «Проведение тестирования» включает в себя тестирования всего объема функциональности – и старого, и нового. Таким образом получается, что с ростом функциональности растет и объем ручного тестирования, причем тестирование «старого» функционала совершенно справедливо вызывает у тестировщика отторжение – «я уже 10 раз это смотрел». Следовательно, падает и качество тестирования (снижение внимания), и скорость проведения полного тестирования системы. Регрессионное тестирование ведет к регрессу тестировщиков. Автоматизация призвана и ускорить процесс тестирования, и избежать деградации тестировщиков.

Читать дальше →

Простой способ организации очереди из AJAX-запросов

Reading time2 min
Views4.1K
Постановка задачи

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

Однако в такой системе неизбежно возникает следующий момент: пользователь может подряд быстро нажать на несколько ссылок «подробнее», в то время как сервер будет долго обрабатывать входящие запросы. Если в AJAX используется только один объект XMLHttpRequest (обычно так и есть), то все запросы свалятся в нем «в кучу», и результат запроса отобразится не там, где нужно. Таким образом, встает задача организовать очередь из однотипных асинхронных запросов к серверу, так, чтобы последующий выполнялся только после того, как закончится предыдущий.

Читать дальше →

Установка PHP на ubuntu

Reading time4 min
Views5.8K
Зачем?
Это самый первый вопрос, который задаст большинство.
Отвечу:
1) Дефолтный php без зачастую нужных вещей вроде pcntl, и к тому же с вкомпиленным генератором неведомой совокупительной фигни Suhosin Patch.
2) Сборка модулей, которых нет в репозитории.
3) Нет руководств такого типа. Нет, действительно нету, лишь короткие руководства, которые с оговоркой можно назвать логом ./configure && make && make install, и по которым сложно что-то собрать из-за наличия требований дополнительных библиотек.
4) Я не буду писать про фан. Просто не буду, т.к. мы не балуемся, а собираем продукт для работы. Многие найдут это плюсом, но не я.
5) Внезапно возник вопрос сборки своего модуля. Навыки сборки под никс очень помогли в сборке под винду, где и был написан экстеншн.
Можно конечно было сразу писать под никсами… Но ставить и настраиватькастомизировать никсы только ради одного проекта(в консоли на удаленном сервере разрабатывать как-то не особо приятно) мне не хотелось.

Начинаем установку
Читать дальше →

Софт со всего мира за WebMoney

Reading time1 min
Views633
Покупка программного обеспечения при помощи WebMoney уже давно не являтся проблемой.

Но так сложилось, что в крупных отечественных интернет-магазинах ПО в основном представлены программы разработчиков из ExUSSR. Если есть ресселлеры какого-нибудь популярного продукта от западных вендоров, то и его можно купить.

Так вот сейчас, балгодаря сотрудничеству WebMoney Transfer и группы компаний Digital River, можно купить любой софт, продажа которого производится через Share*It или Regnow. А это более 40 000 тысяч наименований со всего мира!

Итого
Покупатель — может купить за WebMoney больше ПО со всего мира
Продавец — может получать выплаты прямо на свой WebMoney-кошелек

FineReader Online

Reading time1 min
Views6.3K
Неужели, чтобы распознать всего одну страничку нужно лезть на торренты идти в магазин и покупать целый FineReader? Правильный ответ – НЕТ, потому что теперь можно купить половинку FineReader’а недавно специально для таких случаев был запущен в открытое бета-тестирование новый онлайн-сервис от ABBYY!

Мы рады представить вам FineReader Online (beta). Теперь те, кому нужно просто распознать парочку страниц, могут зарегистрироваться на нашем сервисе и сделать это совершенно бесплатно. На данный момент после регистрации вам доступно 50 страниц в день.
Читать дальше →

Вашей фирме (не)нужна социальность

Reading time3 min
Views1.1K
Десять лет назад (кто-то подсказывает: «почти двадцать») на голову фирмам разной масти и толка свалился Интернет. Осмелюсь предположить, что для большей части из них он стал скорее обузой, чем благом. С одной стороны: «у всех уже есть чёртов сайт, что мы хуже, что ли?», с другой: «да нафиг оно надо? We were, так сказать, born in this hole. And we will die in this hole». В конце концов всё как-то устаканилось. У всех появились ужасные сайты-визитки, с ужасными улыбками на лицах гендиректоров, и «новостями» за позапрошлый год. Через некоторое время, когда очки, нанизанные на… скажем, хвост, не помогали, разумный директор средней руки по-своему торжествовал, отечески похлопывая по плечу унылого премиум-айтишника. «Я же говорил, что дурная затея? А ты — «большие возмо-ожности, много новых клие-ентов». Мой клиент — такой же старый бобёр как я (надевая шапку из сородича и кряхтя). Открыл газету, ткнул пальцем, цена низкая? вот и славно, вот и позвонил. Хорошо хоть недорого обошлось...»

Сегодня дела обстоят значительно хуже. Казалось бы, и времена другие, и интернет другой. И коллективное сознание, и магия цифр (в том числе — биржевых)… И тот же бобёр-директор сам исправно сидит в «одноглазниках» и удивляется, как люди за рисованные конфетки-бараночки платят кровные. Но всё только хуже и хуже. Теперь на головы сыпется ещё и «два-с-половиной-ноль» во всей своей красе. С социальным продвижением, человеческим лицом компании и Твиттером, не к ночи упомянутым. И снова бодрые айтишники твердят, что «надо». И вроде вправду — «надо». И секретарша-валечка ногти от безделья отрастила, что чеченские кинжалы (лучше бы блог компании вела, честное слово). Но всё-таки рядом (снова) летает здравое «зачем». Которое мне и хочется подоить.

— Вам правда хочется услышать, что говорят о вашей компании (продукте, сотрудниках) в Калуге? Ну хорошо, в Москве, на Бауманской? И ещё в тысячах разных мест. Причём услышать прилюдно. И как вариант — ответить прилюдно, с опасностью позже уткнуться лицом в услужливо подставленный архив со своим ответом. Хочется?
Читать дальше →

«Когда вы вышлете логотип в кривых ?!»

Reading time3 min
Views26K
«У нас файл не читается». «У нас другая версия ПО». «У нас каракули вместо текста и название знаками вопроса». «Это файл, который вы выслали вчера или который выслали неделю назад?»

Я чертовски часто сталкивался с этими фразами.
Как правило, когда их произносят, это означает, что сейчас одна из сторон начнет тратить свое время на то, что можно было сделать раньше, или вовсе не делать, наведя порядок с хранением материалов.

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

Я хотел бы разобрать его на примере логотипов.

Читать дальше →

Идеальный офис для малого бизнеса

Reading time4 min
Views5.1K
Многие из хабраюзеров работают в небольших компаниях численностью до 15 человек. Такие компании обычно не имеют помещения в собственности и арендуют 1-2 комнаты в офисных центрах. Эти комнаты выполняют функции и ресепшн, и переговорной, и бэк-офиса, и мини-кухни. Здесь работают, отдыхают, пьют кофе с плюшками, а иногда даже и обедают.

Большая часть «офисных центров» — это здания бывших НИИ, проектных институтов, административных корпусов разорившихся фабрик и т.п. (Так называемая офисная недвижимость класса C и D). Вместе с обшарпанными стенами новоявленные офисы унаследовали Администрацию. И если во многих зданиях стены отштукатурили, обои переклеили и вставили евроокна, то Администрация осталась та же.
Типичный администратор здания – это тетушка возраста 50-55 лет с выражением лица «оставьте меня в покое, у меня обед!» В паре с администратором всегда идет бухгалтер примерно того же возраста. Третий типовой персонаж Администрации – дедушка-завхоз, самый добродушный из троицы. Но находится под каблуком администратора и самостоятельных решений не принимает.
Есть еще владелец здания. Мифическая персона, его никто никогда не видит. Похоже, что ему абсолютно все равно, что происходит в его офисном центре, главное, чтобы поступали деньги на банковский счет.
Советские здания унаследовали советский сервис. Мы предоставляем помещение – остальное ваши проблемы, — такова обычно негласная позиция администрации. Лучше обстоят дела в современных бизнес-центрах, но и там сервис не всегда на высоте и тоже бывает администрации с причудами. Кроме того, высокая арендная плата отпугивает многие компании от таких офисов.

Так какой же он, идеальный офис для маленькой компании? Давайте немного помечтаем.
Удобное рабочее место, не слишком высокая плотность сотрудников на квадратные метры – это то, что в силах организовать силами самого арендатора. Хотелось бы поговорить о вещах, зависящих от арендодателя.

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

Скотный двор или чудный сад?
Двор здания, где наша веб-студия Магвай арендует сейчас офис, мы в шутку именуем скотный двор. Асфальт там перекладывали последний раз лет 30 назад, мусор не убирается в принципе, навалены земляные холмы. В дождливую погоду там лучше вообще не ходить. Для полноты картины не хватает только хрюшек, валяющихся в грязи. Как здорово было бы, если на этом месте положили бы плитку или новый асфальт, стояли скамейки и беседка, а за ними росла травка и цветы. В обед можно было бы выходить отдохнуть на улицу, немного расслабиться и подышать воздухом.
Читать дальше →

Подготовка к сертификации по Linux/Unix. Шаг 1

Reading time5 min
Views4.2K
Некоторое время назад у меня появилось желание повысить свои знания в области Unix-подобных операционных систем, а заодно и получить сертификат, эти навыки подтверждающий. Это первая заметка из, как предполагаю, длительного цикла. Пока что просто анализ информации доступной в интернете и некоторые мои замечания по этому поводу. Если вы задумывались о сертификации по RedHat Linux, Sun Solaris, или другим Unix-подобным ОС, то вам, возможно, будет интересно это прочитать.

Читать дальше →

Домашний сервер. Часть первая — выбор комплектующих

Reading time2 min
Views9.1K
Появилась у меня как-то потребность обновить мой домашний сервер, который представляет из себя комп с процессором Pentium 400Mhz и 384Mb памяти. Главные задачи, которые я ставил перед собой, были сделать его еще тише, меньше по размерам и быстрее.
Сначала я подобрал комплектующие.
Читать дальше →

Javascript производительность? А как насчёт производительности перерисовки страниц?

Reading time1 min
Views883
Тесты производительности нынче становятся все агрессивней, при этом похоже, что упор делается исключительно на искусственных тестах, которые могут показать нам производительность лишь некоторых компонентов браузеров в частности производительность выполнения JavaScript функций, выбранных для этих конкретных тестов.

Удивительно, что так мало внимания уделяется другим, более соответствующим аспектам производительности современных страниц, либо вообще не уделяется. Например, как быстро работают браузеры с динамично меняющимся стилем страницы (CSS)?

На Velocity 2009 Линдси Симон из компании Google говорил именно об этом. И на слайдах из презентации есть пара итересных графиков.
opera css change perfomance
Выяснилось, что Оперовский движок очень быстро работает с динамично меняющимся контентом страницы, а это именно то, что используется в интернете повсеместно. Что, если в будущем производительность браузера будет измеряться более комплексно, в отличии от простого JavaScript теста?

Еще одни нюанс, который я отметил в другой день, – это недостаточные и узкоспециальные тесты памяти, которые не принимают во внимание, что различные браузеры работают с памятью по-разному. Например, они игнорируют разделяемую память Хрома, и совсем не похоже, что бы учитывался продвинутый кеш Оперы.

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

В контексте комплексного тестирования JavaScript и памяти Джаракан, похоже, увеличит показатели искусственных JavaScript тестов, но, возможно, за счет использования большего количества памяти.

Как отследить копирование контента?

Reading time1 min
Views4.7K
Для большинства онлайновых СМИ остро стоит проблема воровства контента. Хочу обратить внимание на сервис Tynt. Он не спасёт вас от рерайта и наглого воровства, но поможет вам понять, какой контент на ваших страницах считается самым интересным, что копируют и куда вставляют простые пользователи. Кроме того, вы привлечёте дополнительный трафик к себе на сайт, получите больше ссылок. Как это работает?
Читать дальше →

Javascript — работаем с search-частью произвольного url

Reading time1 min
Views577
Под впечатлением от идеи создания библиотеки для работы с search-частью произвольной ссылки решил написать функцию (в соавторстве с Kupyc, респект за учаcтие — ему принадлежит бОльшая часть), выполняющую ту-же задачу:
/**
* Функция для модификации GET-параметров uri
*
* @param {String} uri
* @param {String} paramsNew
* @param {Boolean} [isReplace]
* @version 0.2.1
*/

var uriQueryParamsModifier = function (uri, paramsNew, isReplace) {
    var paramsUri = ((paramsUri = uri.match(/\?([^#]+)/)) && paramsUri[1]); 
    if (paramsUri && isReplace) {
        return uri.replace(/\?[^#]+/, !paramsNew ? '' : '?' + paramsNew );
    }    
    if (paramsNew) {
        return uri.replace(/(#)|$/, (!paramsUri ? '?' : '&') + paramsNew + '$1');
    } 
    return uri;
}


* This source code was highlighted with Source Code Highlighter.
Авось кому сгодится.

MySQL и SQLite — регулярные выражения в предикате

Reading time2 min
Views4.7K
Регулярные выражения могут оказать Вам неоценимую услугу при их разумном применении в SQL-запросах.
Они могут избавить Вас от необходимости перебирать в курсорных циклах, или (о ужас!) в циклах базового языка приложения солидные куски таблиц. Правда иногда услуга может оказаться «медвежьей».
Примеры и особености применения этой техники
читайте далее.

Общие советы по составлению оптимальных регулярных выражений

Reading time3 min
Views2.4K
Регулярные выражения — неотъемлемая часть любого инструмента обработки данных.
Логично, что в различных вариациях поддерживается различный синтаксис и различный функционал.
Не смотря на это принципы работы самих регулярных выражений, машины регулярных выражений и базовые установки оптимизации практически едины.
Где-то на просторах сети видел совершенно глупое заявление, что “регулярные выражения не приспособлены для решения нерегулярных данных” или нечто похожее. Полнейшая ерунда.
Читать дальше →

Официальные фотобанки компаний

Reading time3 min
Views2.2K
Многие известные (и не очень) компании открывают свободный доступ у себя на сайте не только к пресс-релизам, но и к галереи фотографий своей продукции в высоком разрешении, печатным материалам, рекламным постерам и прочим графическим вкусняшкам. У меня накопилось несколько ссылок на такие хранилища, и я решил сделать эту подборку, наверняка кому-нибудь пригодится, заодно кто-то может еще поделится ссылками, так как у меня ссылки на галереи только некоторых эээм… IT-компаний.


Ссылка на фотобанк Samsung у меня появилась первой, поэтому с неё и начну. Её мне когда-то скинули сами представители компании, когда я для них разрабатывал небольшой буклет.

Фотобанк Samsung
Фотобанк Samsung содержит коллекцию высококачественных изображений продуктов компании Samsung Electronics, элементы корпоративного стиля, а также фотографии, сделанные в галерее (что-то вроде выставочного центра) Samsung.

Дальше больше...

Моя борьба с девальвацией

Reading time3 min
Views3K
Глупейшая ситуация – взял ипотечный кредит в долларах США(USD), а тут кризис – доллар начал расти как на дрожжах, платеж начал отнимать всё большую часть моей рублевой зарплаты. Я мучительно стал искать, как же мне остановить это безумие — как замедлить рост платежей по кредиту, и удорожание всего кредита в целом?
Пообщавшись с коллегами, оказалось, что у меня еще все шоколадно, платеж по ипотеке не превышал 30% зарплаты, доллар в общем-то не так уж и сильно прыгнул. У одного из коллег же ситуация была просто критическая – кредит Банка Москвы в швейцарских франках(CHF) до кризиса отнимал ~50% зарплаты, к тому же франк вырос относительно доллара – за период с ноября 2008 по январь 2009 процентов на 15.

Valar ищет доллары
Valar ищет, где бы взять денег
Читать дальше →

Information

Rating
Does not participate
Location
Зеленоград, Москва и Московская обл., Россия
Registered
Activity