Pull to refresh
3
0
Гаджи @Rayzor

Пользователь

Send message

Оптимизируем интерфейс Windows XP на нетбуках

Reading time2 min
Views18K
Оптимизированный интерфейс Windows XP

Сейчас пошла мода на так называемые нетбуки — ноутбуки, маленькие по размеру и с довольно слабой аппаратной начинкой, но зато — дешевые. Вот и я поддался соблазну и приобрел пару месяцев назад1 такую машинку: ASUS eee PC. Один из минусов компактности у этой машинки — маленький экран. Причем, мала как диагональ экрана, так и физическое разрешение: всего 800 х 480 точек. Из-за этого многие окна программ просто не влазят в экран и чтобы как-то оптимизировать работу, я стал настраивать графическое оформление системы. Во-первых, зачем нужны такие громоздкие заголовки окон, во-вторых, зачем оставлять в панельках инструментов столько свободного места? Незачем, посчитал я и принялся искать замену стандартному голубому оформлению Windows XP2.
Читать дальше →
Total votes 189: ↑172 and ↓17+155
Comments149

Основы программирования под Android на примере игры Судоку

Reading time6 min
Views375K
В статье описаны основные трудности создания приложений под Android.
Рассматриваются базовые понятия программирования Android.
Для примера описано создание игры Sudoku из книги Hello, Android – Ed Burnette.
Осторожно много скриншотов.

Читать дальше →
Total votes 137: ↑131 and ↓6+125
Comments48

50 цитат о программировании всех времён

Reading time6 min
Views161K
Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

49. Lisp — это не язык, а строительный материал.
— Alan Kay

48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
— Edward V Berard
Читать дальше →
Total votes 344: ↑336 and ↓8+328
Comments136

За гранью Хабра (список изданий)

Reading time2 min
Views2.4K
Этот пост воодушевлен и является логическим продолжением недавно размещенного здесь материала «Хабр vs TechCrunch». Сам я с его авторами никак не связан, но выражаю им большую благодарность за то, что поделились своим опытом.

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

После рассылки у меня на руках остался небольшой список изданий, которым я не могу не поделиться с Хабросообществом. Добро пожаловать под кат!



Читать дальше →
Total votes 104: ↑96 and ↓8+88
Comments12

Битовые операции в PHP на примерах

Reading time3 min
Views88K
Навеяно статьей об обработке критических ошибок в PHP. Обратил внимание, что несмотря на то, что коды ошибок в PHP специально заточены под битовые операции, тем не менее, что в примерах статьи, что в комментариях, для проверки кодов ошибок используются обычные операторы сравнения.

Например, встречались такие варианты:
if ($error['type'] == E_ERROR || $error['type'] == E_PARSE || $error['type'] == E_COMPILE_ERROR){…}
или
if(in_array($error['type'], array(E_ERROR, E_PARSE,  E_COMPILE_ERROR)) {…}

В связи с этим решил написать небольшую статью о битовых операциях с примерами их использования.
Читать дальше →
Total votes 242: ↑203 and ↓39+164
Comments162

Пишем примитивный и никому не нужный компилятор

Reading time9 min
Views173K
Я считаю, что каждый программист должен написать свой компилятор.

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

В посте мы рассмотрим, как можно написать свой компилятор C-подобного языка меньше чем за час, исписав всего 300 строчек кода. В качестве бонуса, сюда входит и код виртуальной машины, в байткод которой будет компилироваться исходник.
Читать дальше →
Total votes 247: ↑231 and ↓16+215
Comments67

HOWTO: свой бизнес в США из России

Reading time6 min
Views157K
    Наверняка многие из нас хоть раз думали про себя: «Черт побери, и везет же этим американцам!». Это касается многого, от магазинов с доставкой «только в пределах 48 континентальных штатов» до вполне серьезных контрактов, которые срываются только потому, что потенциальный заказчик в США категорически не желает иметь дело с иностранцами.

    В этой статье я попробую осветить процесс создания и администрирования американской корпорации для резидента РФ. Наверняка многие из фактов для самих американцев покажутся тривиальными, однако для жителя России все куда сложнее — увы, это данность. Чтоб не сказать — это Родина, сынок. Оговорюсь сразу — я все это проделал более 2 лет назад, так что, некоторые детали могут быть не совсем актуальны. Но вряд ли что-то поменялось принципиально.
Читать дальше →
Total votes 402: ↑398 and ↓4+394
Comments184

Библия проектирования. Часть первая. Создание мира

Reading time3 min
Views5.2K
image

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

Читать дальше →
Total votes 201: ↑156 and ↓45+111
Comments30

Почему ИТшнику стоит стать ИПшником и почему не стоит регистрировать ООО

Reading time7 min
Views86K
В этой статье даются ответы на нижеследующие вопросы, основываясь на личном опыте и опыте коллег.

1. Почему стоит начать работать «в белую»
2. Почему на начальном этапе ИП лучше ООО
3. Что делать, если партнёров несколько

Если вы – начинающий или уже опытный фрилансер и подумываете о работе «в белую», но ещё точно не определились с вопросами «Стоит ли оно того?» и «ИП или ООО?», вэлком
под кат
Total votes 371: ↑361 and ↓10+351
Comments183

Создаем анимированные кнопки при помощи CSS3

Reading time11 min
Views56K


В данной статье я хочу поделиться с вами некоторыми экспериментами по созданию анимированных кнопок при помощи CSS3. Идея заключается в создании анимированных ссылок с разными стилями, hover-эффектами и пр.

В данных примерах используются иконки с webiconset.com, а также шрифт от Just Be Nice.

Мы рассмотрим каждый пример и разберем как выглядит их HTML-структура и стили для разных состояний кнопок.

Обратите внимание, что анимация/переходы будут работать только в браузерах, которые поддерживают эти CSS3-свойства.

Чтобы не захламлять код в уроке я не буду использовать префиксы для различных браузеров. Их вы сможете увидеть в архиве с примерами.
Читать дальше →
Total votes 215: ↑207 and ↓8+199
Comments40

Линейная алгебра для разработчиков игр

Reading time19 min
Views779K
Эта статья является переводом цикла из четырёх статей «Linear algebra for game developers», написанных David Rosen и посвящённых линейной алгебре и её применению в разработке игр. С оригинальными статьями можно ознакомиться тут: часть 1, часть 2, часть 3 и часть 4. Я не стал публиковать переводы отдельными топиками, а объединил все статьи в одну. Думаю, что так будет удобнее воспринимать материал и работать с ним. Итак приступим.
Читать дальше →
Total votes 314: ↑296 and ↓18+278
Comments61

Об одной ошибке оптимизации времени выполнения

Reading time4 min
Views2.6K
Изначально пост планировалось посвятить ошибке 64х-битового компилятора xlc которую я безуспешно отлавливал многие часы и которая имеет место быть на серверах фирмы IBM архитектуры AIX. Но так уж получилось, что подобная ошибка затрагивает многие компиляторы, не стал исключением и Visual Studio 2010 с установленным пакетом обновления SP1. Что в итоге кажется забавным, так как наводит на мысли, что специалисты Microsoft сотрудничают с разработчиками из IBM в деле создания оптимизирующих компиляторов.

Немного предыстории. Есть один научный проект, который был написан на С++ достаточно давно и сейчас успешно переносится на многие платформы, среди которых можно отметить мейнфреймы HP-UX, IBM AIX, Oracle Solaris. Перенос по большому счету состоит в том, что исправляются ошибки времени компиляции, запускается группа тестов и если все тесты проходят, то делается вывод о работоспособности кода.

Так как скорость выполнения математических процедур очень даже важна, компиляция проходит с включенным ключом оптимизации по скорости -O2. Но на архитектуре IBM AIX компилятор xlc почему-то не может создать работоспособный код, удовлетворяющий набору тестов. В то же время без ключа -O2 все работает нормально.

Я бы, конечно, мог попробовать отловить эту ошибку непосредственно на мейнфрейме IBM AIX, будь у меня в запасе достаточно времени, но за отсутствием отладчика (в debug mode ошибка не проявлялась) ловить приходилось по-старинке, методом вставки printf в участки кода. Удаленный доступ к IBM AIX мне так и не дали, приходилось работать непосредственно в дата-центре и за те несколько часов, проведенных за терминалом, ничего внятного понять не удалось, кроме того, что ошибка имеет место быть и достаточно устойчивая. В итоге, ошибка так и сидела в коде на протяжении долгого времени.

Так продолжалось до тех пор, пока я не попробовал перенести код на Visual Studio 2010 SP1.
Читать дальше →
Total votes 217: ↑211 and ↓6+205
Comments33

Java сертификация. Подготовка к SCJP

Reading time5 min
Views71K
В этом месяце я сдавал экзамен SCJP. В этом топике я расскажу о подготовке и экзамене.
В основном для тех, кто собирается сдавать и кому нужно больше информации об этом.

Уточнение


Так как Sun'a больше нет, то и экзамена SCJP тоже нет. Теперь он значится так:
1Z0-851 Java Standard Edition 6 Programmer Certified Professional Exam.
прочитать об экзамене и посмотреть задачи
Total votes 89: ↑84 and ↓5+79
Comments43

Криптостойкость 1000-кратного хеширования пароля

Reading time5 min
Views26K


Поднявшаяся в этом топике дискуссия о криптостойкости многократного применения хеша над паролем (проскальзывавшая, кстати, и в других форумах), подтолкнула меня к этому немного математическому топику. Суть проблемы возникает из идеи многократной (1.000 и более раз) обработки пароля перед хранением каким-либо криптостойким алгоритмом (чаще всего хеш-функцией) с целью получить медленный алгоритм проверки, тем самым эффективно противостоящий brute force-у в случае перехвата или кражи злоумышленником этого значения. Как совершенно верно отметили хабрапользователи Scratch (автор первой статьи), mrThe и IlyaPodkopaev, идея не нова и ею пользуются разработчики оборудования Cisco, архиватора RAR и многие другие. Но, поскольку хеширование – операция сжимающая множество значений, возникает вполне закономерный вопрос – а не навредим ли мы стойкости системы? Попытка дать ответ на этот вопрос –
далее ...
Total votes 332: ↑328 and ↓4+324
Comments103

Признаки плохого программиста

Reading time18 min
Views68K

Неспособность рассуждать о коде


«Рассуждать о коде» значит понимать порядок исполнения инструкций («исполнять программу в голове»), зная, каково предназначение кода.

Симптомы

  • Наличие «волшебного», «вуду» кода или кода, который не имеет никакого отношения к целям программы, но всё равно тщательно поддерживается (например, инициализация переменных, которые никогда не используются, вызов функций, не имеющих отношения к цели, создание выходных данных, которые не используются, и т.д.).
  • Многократные вызовы идемпотентных функций (например, вызов save() по нескольку раз, «чтобы уж точно»).
  • Исправление ошибок написанием избыточного кода, который замещает данные, полученные при исполнении неисправного кода.
  • «Йо-йо код», который конвертирует значения в различные представления, а потом конвертирует их обратно ровно в то же представление, с которого начинали (например, преобразование десятичного числа в строку, а потом обратно в десятичное число, или padding строчки с последующим trim'ом).
  • «Бульдозерный код», который создает впечатление рефакторинга посредством разбития кусков кода на процедуры, которые, правда, затем невозможно использовать где-либо еще (высокая когезия).

Читать дальше →
Total votes 374: ↑297 and ↓77+220
Comments260

Обзор двадцати двух бесплатных шрифтов с сайта Open Font Library: 16 шрифтов с кириллицею + 6 орнаментальных и спецсимвольных шрифтов

Reading time4 min
Views62K
Сегодня я упоминал ужé о трудностях, с которыми сталкивается всякий, кто желает разыскать на сайте Open Font Library шрифты с поддержкою кириллицы. Фильтра по языкам нет; поиск по слову «cyrillic», как dimitrymd успел убедиться, находит только десяток шрифтов.

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

  1. ConsolaMono
  2. Crimson
  3. Dataface
  4. Designosaur
  5. Didact Gothic
  6. GNUTypewriter
  7. Grana Padano
  8. Jura
  9. Neocyr
  10. NotCourierSans
  11. Old Standard
  12. Pfennig
  13. Press Start 2P
  14. Sansus Webissimo
  15. Triod Postnaja
  16. VDS

«На закуску» я намерен также обозреть полдюжины шрифтов с различными спецсимволами да орнаментами:

  1. Chess
  2. FivefoldOrnamentsEtc
  3. Futhark Adapted
  4. Knots
  5. UniCons
  6. Web Symbols

Читать дальше →
Total votes 183: ↑160 and ↓23+137
Comments51

Быстрая реализация резервного копирования в Amazon S3

Reading time3 min
Views25K
Я устал испытывать определённые опасения за сохранность данных на выделенном сервере, наблюдая за происходящим у хостеров последнее время… 3FN, Agava, Hosting.UA, МакХост — тенденция получается очень нехорошая.

В итоге, МакХост стал последней каплей, и, чтобы не оказаться в числе тех, кто «уже делает бекапы», я перевёл систему бекапов своего сервера на Amazon S3. Получилось вполне себе быстро и прозрачно.

Хочу поделиться с общественностью простейшей реализацией.
Читать дальше →
Total votes 170: ↑167 and ↓3+164
Comments62

Коды возврата vs исключения — битва за контроль ошибок

Reading time7 min
Views22K
Судя по всему, неделя исключений на хабре успешно наступила :). Накопив достаточную «подушку» кармы чтобы не бояться уйти в минус, я, пожалуй, тоже выскажу свое мнение по данному вопросу. Сразу оговорюсь, что мнение сугубо личное, основанное на небольшом практическом опыте коммерческой разработки: C++, Objective-C, C#, Java, Python, Ruby.
Под катом много текста, фрагментов кода и нет картинок O_O
Total votes 111: ↑100 and ↓11+89
Comments159

PNG — not GIF!

Reading time4 min
Views83K
Доброго времени суток!
Вам когда-нибудь хотелось узнать как устроены файлы PNG? Нет? А я все равно расскажу.
Формат PNG(Portable Network Graphics) был изобретен в 1995 году, чтобы стать заменой GIF, а уже в 1996, с выходом версии 1.0, он был рекомендован W3C, в качестве полноправного сетевого формата. На сегодняшний день PNG является одним из основных форматов веб-графики.

Под катом вы найдете общее описание строения PNG-файла, некоторое количество картинок-схем, препарирование в hex-редакторе, и, конечно, ссылку на спецификацию.
Читать дальше →
Total votes 199: ↑191 and ↓8+183
Comments78

Tactoom.com изнутри — социальная блог-платформа на NodeJS/NoSQL

Reading time7 min
Views6.5K
Tactoom.com - under the hoodИтак, пришло время раскрыть некоторые карты и рассказать о том, как устроен Tactoom изнутри.

В этой статье я расскажу о разработке и выведении в production веб-сервиса с использованием:
NodeJS (fibers), MongoDB, Redis, ElasticSearch, Capistrano, Rackspace.
Читать дальше →
Total votes 174: ↑159 and ↓15+144
Comments76

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Works in
Registered
Activity