You are viewing [info]djuffin's journal

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 часа.

Wed, Feb. 24th, 2010, 03:18 am
Black .NET magic

Если нужно перехватывать вызовы к объекту, а сторонних AOP средств тащить не хочется, можно попробовать выкрутиться с помощью стандартного механизма проксей (transparent proxy and real proxy).
Но придется либо ограничиться вызовами через интерфейс, либо тип объекта должен наследовать MarshalByRefObject. Например, так работает WCF.

Готовый код )

Sat, Feb. 20th, 2010, 04:21 am
TO BE DONE

Интересно, как повлияет на продуктивность переименование спика TO DO в TO BE DONE?

Sun, Feb. 14th, 2010, 02:24 am
Git-овый code review tool моей мечты

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.

Mon, Dec. 28th, 2009, 03:51 am
Не все хвостовые вызовы одинаково хвостовые

Похоже, что 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, Oct. 29th, 2009, 01:13 am
Send the Marines

Актуальность шокирует.

Tue, Oct. 27th, 2009, 01:43 am
Real World Lisp

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

Beating the Averages (Побеждая посредственность)

Thu, Sep. 17th, 2009, 03:49 am
Quickstart: Haskell on Windows

Скачиваем и ставим Haskell Platform. Это компилятор, основные библиотеки и кое-что из cygwin-а.
http://hackage.haskell.org/platform/

Ставим Leksah IDE. Это конечно beta, но все же лучше чем просто текстовый редактор.
Есть навигация по коду, подсказка и зачатки отладчика.
http://leksah.org/download.html

Тут можно найти вполне сносный мануал:
http://leksah.org/docu.html

А тут - хорошая книжка про Haskell :)
http://book.realworldhaskell.org/read/


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>

Mon, Aug. 17th, 2009, 02:00 am
code formatting wars

Давно уже пора хранить в системе контроля версий не код, а AST.
Это тут же снимет вопросы форматирования кода (spaces vs tabs, line endings, curly brackets position)
и даст мощнейшей толчок развитию инструментов разработки (рефакторинг, различное представление кода в зависимости от задачи).
Редактор конечно будет работать дольше (только кто это заметит?), зато компилятор быстрее.

P.S. Да, да, я знаю тысячи людей по всему миру редактируют код с помощью ed и cat. :(

Sun, Jun. 21st, 2009, 01:14 am
Программисты ноют

Программисты (и я тоже) часто говорят о том, как сложно программировать, о том, что сложность программы растет экспоненциально. Сложно придумать гибкий дизайн без больших дыр в абстракцих, сложно избежать ошибок, обеспечить должный уровень безопасности и т.д. А ведь у нас есть отладчики, юнит тесты, виртуальные машины для тестирования, анализаторы кода, но все это слабо помогает. Программирование остается совсем не простым делом. Это правда!

Возникает вопрос: А как же люди делают самолеты?

Thu, Jun. 18th, 2009, 11:45 pm
Не понятно

Почему хорошая система контроля версий git ничего не стоит, а очень плохая система контроля версий Clearcase стоит несколько тысяч долларов за одну инсталляцию?

P.S. И не надо говорить про Linux и Windows. Clearcase это далеко не Windows.

Tue, Jun. 16th, 2009, 12:58 am
Пока умные люди пишут код...

По мотивам
http://burks.bton.ac.uk/burks/language/shoot.htm и http://www.aegisub.net/2008/12/if-programming-languages-were-religions.html,
сочинил тупой стеб.

Об устойчивости языков программирования к ошибкам кодирования или
на сколько легко выстрелить себе в ногу


Read more... )

Fri, Mar. 7th, 2008, 11:24 pm
Это просто праздник какой-то

Microsoft опубликовала исходники своей исследовательской managed OS
Singularity

Fri, Apr. 27th, 2007, 04:20 am
FastPropertyAcessor (попытка ускорить .NET Reflection)

Как известно в .NET framework есть очень мощное средство для runtime доступа к объектам,
природа и происхождение, которых не известны на момент компиляции. Reflection позволяет не
только узнавать какие методы, свойства и поля имеет объект, но и манипулировать ими.
Это позволяет делать различные сериализаторы, редакторы свойств и т.д.

Много кода )

Mon, Feb. 12th, 2007, 05:46 pm
Может, я не там смотрел

Что-то я не видел новых книг по advanced техникам и приемам программирования на C. (Везде С++, Java, C#, Ruby, Python и др.) В тоже время этот язык много и активно используется. Что ж так плохо то? А ведь современное программирование на C, это очень не просто. Там люди возводят воздушные замки повыше, чем на Java.

Sun, Feb. 4th, 2007, 04:30 am
Хлопок одной рукой. (или C++ повседневность)




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?

Sun, Feb. 4th, 2007, 03:42 am
Unhandled exception in ASP.NET

Недавно обнаружил забавную ошибку в ASP.NET. Если в URL сайта (до начала GET параметров) вставить код кавычки (%22),
то в движке разбора URL возникает ArgumentException. Вся прелесть заключается в том, что у пользователя нет
возможности его перехватить. Оно исправно доходит до самого верха и вызывает уродливую страницу Server Error.

Самые наглядные примеры.
http://www.microsoft.com/%22.aspx
http://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] Исправили и там и там.

Sat, Jan. 27th, 2007, 01:52 am
В исходниках MS встретилась замечательная фраза.

HRESULT hr = CoInitialize(NULL);
if (FAILED(hr))
{
   // Add error-handling code here. (Omitted for clarity.)

}


А я то думал "Замнем для ясности" придумали в России.

Sat, Jan. 27th, 2007, 01:45 am
Как вычисляется Object.GetHashCode()

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;
}

Wed, Jun. 15th, 2005, 02:09 am
Замечательный язык

Lingvo


pussy
прил.
гнойный; гноевидный
сущ.
1) киска, кошечка
2) заяц; кролик
3) женщина; любовница; женоподобный мужчина; гомосексуалист
4) жилец, квартирант
5) что-л. мягкое, пушистое ( сережка на вербе, боа и т.д. )
6) меховая одежда, шуба
7) влагалище
8) совокупление

Замечательный язык одним словом обозначается влагалище, кошка и квартирант.