Pull to refresh
42
0
Send message

Рисуем анимированные gif-ки с помощью libgd.

Reading time2 min
Views19K
Смысл данной статьи — дать представление о использовании библиотеки GD в связке с С.

Скачать libgd или почитать более подробно о ее использовании можно здесь: http://www.libgd.org/(eng.)

После установки GD cписок функций и типы принимаемых/возвращаемых данных можно посмотреть в файлике /usr/local/include/gd.h (в моем случае, иначе sudo updatedb && locate gd.h) понять назначение функций довольно просто по их названию.

Код небольшой программки с моим описанием, которая рисует вотэто:

Image and video hosting by TinyPic

Смотрим под катом
Total votes 43: ↑34 and ↓9+25
Comments43

Программирование — отстой! Или что-то вроде того

Reading time8 min
Views14K
Предлагаю вниманию читателей перевод статьи "Programming Sucks! Or At Least, It Ought To", опубликованной в «The Daily WTF». Публикация рассказывает о том, как избыток профессионализма на практике мешает эффективности и предназначена скорее для опытных разработчиков, нежели для новичков.
Читать дальше →
Total votes 196: ↑180 and ↓16+164
Comments113

C++ MythBusters. Миф о подставляемых функциях

Reading time5 min
Views37K
Здравствуйте.

Благодаря вот этому голосованию выяснилось, что на Хабре не хватает статей по такому мощному, но всё менее используемому языку C++. Профессионалам высокого уровня, гуру, магам и волшебникам языка C++, а также тем, кто уже успел оставить этот язык «позади» можно дальше не читать. Сегодня я хочу начать цикл статей, призванных помочь именно новичкам, относительно недавно начавшим изучать этот язык, либо же тем, кто (упаси Боже) читает мало книг, а пытается познавать всё исключительно на практике.

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

Читать дальше
Total votes 66: ↑61 and ↓5+56
Comments165

live: новый способ задать обработчик события

Reading time2 min
Views2.3K
imageКак известно, недавно вышла бета версия jQuery 1.3. Пока она сырая, тестируется, и в ней еще есть неприятные баги. Но знакомится с нововведениями стоит и я хотел бы кратко рассказать об одном из них.

Функция «live» представляет собой аналог функции bind, по синтаксису и сути они идентичны, но между ними есть одно огромное различие, которое лучше всего демонcтрирует следующий пример.

Попробовать демо. Пояснения под катом.

Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments26

Три первых шага к оптимизации LAMP

Reading time2 min
Views5.4K
Бытует мнение, что связка LAMP (Linux+Apache+Mysql+PHP) не требует особой настройки и работает «из коробки». Это далеко не так. После того, как я долго убеждал товарища установить кеширующий акселератор PHP xcache, я решил провести небольшой эксперимент и попробовать выключить xcache на своём виртуальном сервере, находящемся под небольшой нагрузкой (около хита в секунду). В реальной жизни нагрузка на процессор мала, а вот память загружена сильно, т.к. её немного (256МБайт).

Результаты эксперимента превзошли все ожидания.
Читать дальше →
Total votes 82: ↑66 and ↓16+50
Comments84

Собираем deb-пакет. Часть 1

Reading time4 min
Views44K
В репозитариях Ubuntu собрано огромное количество программ и библиотек. На сайтах самих программ достаточно часто встречаются deb-пакеты, которые можно скачать и установить. Однако все же бывает ситуация, когда нужного ПО нет в репозитариях или на сайте нельзя скачать пакет для Ubuntu, или, наконец, в репозитарии есть старая версия, но она вас не устраивает тем, что в ней присутствует досадный баг или нет нужной функциональности.

Читать дальше →
Total votes 54: ↑49 and ↓5+44
Comments45

Сделаем фотомодель по-быстрому!

Reading time8 min
Views5.6K
Не знаю о чем Вы там подумали из названия, но знайте — я этого в виду не имел! :)
Итак, продолжим становиться «Колумбами и открывать то, что до нас знали миллионы людей», кто вспомнит откуда эта почти-цитата (подсказка: про Интернет) тому 4 балла к гик-карме. Итак…

Итак, в свободное время, когда я не создаю безумные проекты, не учу людей зарабатывать на стартапах, в это время я изучаю всяческие гик-технологии, в т.ч. одна из них прямо-таки у меня стала навязчивой идеей. А именно — взять свой городок в пригороде большого города и превратить его в 3d-уровень для какой-нибудь игры (в FarCry/Crysis я продвинулся в этом больше всего), при том с фотограмметрической точностью (погрешности в метр или меньше от реального расположения домов).

Для того, чтобы это сделать нам понадобится:
  1. 3d-модели;
  2. 3d-движок;
  3. наука со страшным названием фотограмметрия;
  4. даже математика — а то, когда читаешь про Spherical harmonics — радуешься, что приматом был некоторое время; грустишь что все-равно не понимаешь о чем там...
  5. тонна терпения (впрочем, я не был бы мировым лентяем, если бы это и правда было так);

Начнем с 3D моделей

Читать дальше →
Total votes 139: ↑119 and ↓20+99
Comments76

Организация постоянных редиректов с www.domain на domain и обратно.

Reading time1 min
Views21K
Так исторически сложилось, что домены сайтов называют с префиксом www или без.

Есть несколько взглядов как истинно должен называться домен, прогрессивное человечество считает, что без www — nowww.ru, многие западные эксперты считают обратное.

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

Читать дальше →
Total votes 41: ↑37 and ↓4+33
Comments59

How Non-Member Functions Improve Encapsulation (C++)

Reading time2 min
Views1.6K
Листал старые журналы и наткнулся на широко известную в узких кругах статью Scott Meyers: How non-member functions improve encapsulation. Если кто-то ее еще не читал — прочитайте обязательно.
Мысль там излагается понятная и верная, но все же по-моему в статье есть большая недосказанность.
Говоря кратко, в этой статье Мейерс утверждает, что вынесение функций из класса всегда делает код более инкапсулированным.
Читать дальше →
Total votes 23: ↑15 and ↓8+7
Comments16

Метапрограммирование в C++

Reading time5 min
Views40K
Метапрограммирование — это «программирование программ», то есть написание некой промежуточной программы, результатом которой будет некая часть другой программы. Самый простой пример метапрограммирования — это шаблоны C++. Вместо написания десяти одинаковых функций для разных типов, мы пишем шаблон, и компилятор сам соберет нам эти десять функций.
Читать дальше →
Total votes 69: ↑64 and ↓5+59
Comments55

Использование общего C++ кода на примере браузера Chrome

Reading time1 min
Views7.6K
Думаю ни для кого не секрет, что новый браузер от Google — это open-source продукт, написанный на C++. Каждый может скачать его исходники на C++ и собрать свой собственный браузер из них.
А сегодня мне встретилась интересная статья Code Reuse in Google Chrome Browser. Там автор проанализировал использование общего open-source кода в этом проекте Google и нашел его превосходным. Он обнаружил как минимум 26 разных библиотек, используемых в этом проекте и описал их все в одной таблице…
Я решил сначала перевести эту таблицу на русский, т.к. она может быть полезна всем разработчикам на C++ — там много реально полезных open-source библиотек. Но эта таблица настолько проста, что перевод был бы бессмысленным — каждый сам легко разберется.
Многие из этих библиотек будут полезны не только Web-разработчикам.

А сколько open-source библиотек используется в ваших проектах? И каково отношение руководство к open-source?
На предыдущем месте работы мы использовали несколько таких библиотек — zlib, LuaPlus, TinyXml, CppUnit, библиотеки для работы с графикой (типа libpng ) и т.п.
А на новой работе отношение к open-source отрицательное и почти ничто из open-source не используется — все пишется свое с нуля.
Total votes 74: ↑64 and ↓10+54
Comments52

Осенний сезон ФППП: черный МакБук за самый лучший топик

Reading time2 min
Views878
Здравствуй, дорогой ты наш хабрачеловек!

Рад тебе сообщить, что к нашей Федеральной Программе Поощрения Пользователей (ФППП) присоединяется компания iProLab, готовая подарить тебе ноутбук Apple MacBook Black. Но, само собой, не просто так, а за качественный, всесторонне оригинальный пост на Хабре.



А стать призёром не так уж сложно. Награждён будет автор лучшего топика за каждый осенний месяц 2008 года. 1 октября, 1 ноября и 1 декабря в 18:00 я буду смотреть на страничку и связываться с автором топика, который набрал больше всего голосов других пользователей и соответствует особым правилам ФППП.

А вот и правила:
— награду получает пользователь, чей топик был лучшим по итогам одного из осенних месяцев 2008 года;
— в программе участвуют только обычные топики, топики-переводы и подкасты (т.е. не участвуют топики-ссылки и вопросы. И даже Внутренний Голос не участвует!);
— топик должен быть самостоятельным трудом автора (тексты, картинки, файлы с других сайтов не принимают участия);
— топик должен быть оригинальным, то есть впервые опубликован на Хабре (при этом параллельная публикация в другом месте разрешена, не разрешается только использовать старые тексты из своих блогов);
— топик не должен быть обсуждением Хабра, других проектов «Тематических Медиа» и самой компании, а также компании iProLab;
— каждый участник ФППП может выиграть только один ноутбук, предоставляемый компанией iProLab;
— в программе ФППП не имеют права участвовать сотрудники компаний Тематические Медиа и iProLab, их родственники, родственники их родственников, а также их виртуалы :)
— топик должен стать лидером честно, т.е. никакие обходы правил, накрутки с использованием виртуалов, скрытых и открытых уязвимостей не приветствуются. Я буду следить!

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

Результаты будут публиковаться в этом блоге.

Кстати, мы уже начали ;) Все топики, опубликованные с 01 сентября 2008 года, 18:00, уже участвуют в программе.

Всего тебе хорошего, друг :)
Total votes 260: ↑228 and ↓32+196
Comments104

C++‭ ‬2009

Reading time13 min
Views6.2K
«Самая важная вещь в языке программирования - его имя. 
Язык не будет иметь успеха без хорошего имени. 
Я недавно придумал очень хорошее имя, 
теперь осталось изобрести подходящий язык.»  
Д. Э. Кнут  


Эволюция C++09: флешбек



После первой спецификации C++, ратифицированной в 1998 году, был взят пятилетний перерыв, который позволил разработчикам компиляторов подстроиться под стандарт. Также такое время «радиомолчания» позволило Комитету получить отзывы относительно документа. В конце этого периода комитет стандартов ANSI выпустил обновлённую спецификацию, содержащую исправления и различного рода улучшения. Эти исправления были задокументированы в первом техническом списке ошибок от 2003 года.

Читать дальше →
Total votes 101: ↑98 and ↓3+95
Comments148
2

Information

Rating
Does not participate
Registered
Activity