|
|
Tue, Aug. 30th, 2011, 03:07 am LDAP
К своему стыду, только сейчас осознал, что LDAP - это NoSQL начала 90x. Sun, Mar. 21st, 2010, 04:04 am Ну зачем???
Злой гений положил в 64х разрядный Windows 7, 2 версии Windows Media Player-а. И 32-х битная версия запускается по умолчанию. А я поставил 64х разрядные кодеки и тупил 2 часа.
Если нужно перехватывать вызовы к объекту, а сторонних AOP средств тащить не хочется, можно попробовать выкрутиться с помощью стандартного механизма проксей (transparent proxy and real proxy). Но придется либо ограничиться вызовами через интерфейс, либо тип объекта должен наследовать MarshalByRefObject. Например, так работает WCF. ( Готовый код )
Sat, Feb. 20th, 2010, 04:21 am TO BE DONE
Интересно, как повлияет на продуктивность переименование спика TO DO в TO BE DONE?
Git позволяет сделать простой и легко интегрируемый в процесс разработки инструмент для code review. Всего-то нужно: ( Необходимые ингридиенты )Вот и все! В подарок от Git-а идет: 1. База данные (не надо городить никаких SQL-лей). Репозиторий самодостаточен. 2. Синхронизация. Все разработчики получают коментарии автоматически. 3. Интергация с системой контроля версий. Самая лучшая из всех возможных - это часть системы контроля версий. Вроде идея лежит на поверхности, ведь Git с саммого начала задумывался как CMS, а VCS - лишь одно из приложений. Но никто пока ничего подобного вроде не сделал (даже Gerrit). Как там Линус в ядре code review делает? P.S. Кстати вот эта ( http://peepcode.com/products/git-internals-pdf) бумажечка за $9 - самый лучшей способ быстро и безболезненно понять как работает Git.
Thu, Dec. 31st, 2009, 01:16 am DNS escape plan
Если у вашего провайдера отвалился DNS сервер, и нет никакой возможности нагуглить адрес публичного DNS-а, просто введите 8.8.8.8.
Похоже, что continuations сбивают с толку компилятор F# и он не может правильно расставить хвостовые вызовы.
Следующий код переполняет стек.
( Код )
Согласно Reflector-у, там страшная каша в IL коде. Разве я хочу странного?
Fri, Dec. 4th, 2009, 02:37 pm .NET mystery
В System.Linq.Enumerable стандартные функции имеют нестандартные имена. - Aggregate вместо Fold - Select вместо Map - Where вместо Filter - SelectMany вместо MapConcat ...
Это благие намерения или диверсия? Thu, Aug. 20th, 2009, 02:06 am Deadly XML
Проверьте свой DOM парсер.
<!DOCTYPE foo [
<!ENTITY a "1234567890" >
<!ENTITY b "&a;&a;&a;&a;&a;&a;&a;&a;" >
<!ENTITY c "&b;&b;&b;&b;&b;&b;&b;&b;" >
<!ENTITY d "&c;&c;&c;&c;&c;&c;&c;&c;" >
<!ENTITY e "&d;&d;&d;&d;&d;&d;&d;&d;" >
<!ENTITY f "&e;&e;&e;&e;&e;&e;&e;&e;" >
<!ENTITY g "&f;&f;&f;&f;&f;&f;&f;&f;" >
<!ENTITY h "&g;&g;&g;&g;&g;&g;&g;&g;" >
<!ENTITY i "&h;&h;&h;&h;&h;&h;&h;&h;" >
<!ENTITY j "&i;&i;&i;&i;&i;&i;&i;&i;" >
<!ENTITY k "&j;&j;&j;&j;&j;&j;&j;&j;" >
<!ENTITY l "&k;&k;&k;&k;&k;&k;&k;&k;" >
<!ENTITY m "&l;&l;&l;&l;&l;&l;&l;&l;" >
]>
<foo>&m;</foo>
Давно уже пора хранить в системе контроля версий не код, а AST. Это тут же снимет вопросы форматирования кода (spaces vs tabs, line endings, curly brackets position) и даст мощнейшей толчок развитию инструментов разработки (рефакторинг, различное представление кода в зависимости от задачи). Редактор конечно будет работать дольше (только кто это заметит?), зато компилятор быстрее. P.S. Да, да, я знаю тысячи людей по всему миру редактируют код с помощью ed и cat. :(
Программисты (и я тоже) часто говорят о том, как сложно программировать, о том, что сложность программы растет экспоненциально. Сложно придумать гибкий дизайн без больших дыр в абстракцих, сложно избежать ошибок, обеспечить должный уровень безопасности и т.д. А ведь у нас есть отладчики, юнит тесты, виртуальные машины для тестирования, анализаторы кода, но все это слабо помогает. Программирование остается совсем не простым делом. Это правда! Возникает вопрос: А как же люди делают самолеты?
Thu, Jun. 18th, 2009, 11:45 pm Не понятно
Почему хорошая система контроля версий git ничего не стоит, а очень плохая система контроля версий Clearcase стоит несколько тысяч долларов за одну инсталляцию? P.S. И не надо говорить про Linux и Windows. Clearcase это далеко не Windows.
Как известно в .NET framework есть очень мощное средство для runtime доступа к объектам, природа и происхождение, которых не известны на момент компиляции. Reflection позволяет не только узнавать какие методы, свойства и поля имеет объект, но и манипулировать ими. Это позволяет делать различные сериализаторы, редакторы свойств и т.д. ( Много кода )
Что-то я не видел новых книг по advanced техникам и приемам программирования на C. (Везде С++, Java, C#, Ruby, Python и др.) В тоже время этот язык много и активно используется. Что ж так плохо то? А ведь современное программирование на C, это очень не просто. Там люди возводят воздушные замки повыше, чем на Java.
template <int i>
class Factorial
{
public:
const static int value = i * Factorial<i - 1>::value;
};
template <>
class Factorial<0>
{
public:
const static int value = 1;
};
.......
std::cout << Factorial<10>::value;
Кто-нибудь еще знает языки, где можно вычислить факториал compile-time?
Недавно обнаружил забавную ошибку в ASP.NET. Если в URL сайта (до начала GET параметров) вставить код кавычки (%22), то в движке разбора URL возникает ArgumentException. Вся прелесть заключается в том, что у пользователя нет возможности его перехватить. Оно исправно доходит до самого верха и вызывает уродливую страницу Server Error. Самые наглядные примеры. http://www.microsoft.com/%22.aspxhttp://www.myspace.com/%22.aspxОбратить внимание на то, что ошибка 404 на этих сайтах выглядит совсем не так. Интересно, то что это исключение проявляется как в ASP.NET 1.1, так и в ASP.NET 2.0, но при этом происходит в разных местах. В ASP.NET 1.1 это происходит, если верить рефлектору, в unmanaged коде. ( Stack trace )А в ASP.NET 2.0 эту проверку уже переписали на C#. ( Stack trace )В связи с этим фактом у меня возникло 3 мысли 1. Неужели до меня этого никто не заметил? 2. Как запостить этот баг в MS? 3. Может быть, в Java не зря придумали checked expcetions? [UPD] Исправили и там и там.
HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
{
// Add error-handling code here. (Omitted for clarity.)
}
А я то думал "Замнем для ясности" придумали в России.
Object.cpp:
DWORD Object::ComputeHashCode()
{
DWORD hashCode;
// note that this algorithm now uses at most HASHCODE_BITS so that it will
// fit into the objheader if the hashcode has to be moved back into the objheader
// such as for an object that is being frozen
do
{
// we use the high order bits in this case because they're more random
hashCode = GetThread()->GetNewHashCode() >> (32-HASHCODE_BITS);
}
while (hashCode == 0); // need to enforce hashCode != 0
// verify that it really fits into HASHCODE_BITS
_ASSERTE((hashCode & ((1<<HASHCODE_BITS)-1)) == hashCode);
return hashCode;
}
Threads.h:
inline DWORD Thread::GetNewHashCode()
{
LEAF_CONTRACT;
// Every thread has its own generator for hash codes so that we won't get into a situation
// where two threads consistently give out the same hash codes.
// Choice of multiplier guarantees period of 2**32 - see Knuth Vol 2 p16 (3.2.1.2 Theorem A).
DWORD multiplier = m_ThreadId*4 + 5;
m_dwHashCodeSeed = m_dwHashCodeSeed*multiplier + 1;
return m_dwHashCodeSeed;
}
Lingvo pussy прил. гнойный; гноевидный сущ. 1) киска, кошечка 2) заяц; кролик 3) женщина; любовница; женоподобный мужчина; гомосексуалист 4) жилец, квартирант 5) что-л. мягкое, пушистое ( сережка на вербе, боа и т.д. ) 6) меховая одежда, шуба 7) влагалище 8) совокупление
Замечательный язык одним словом обозначается влагалище, кошка и квартирант. |