• Про Garbage Collector, Unity и слабые ссылки

      Есть у меня в проекте некий интерфейс IT и factory метод типа

      interface IT {}
      public IT CreateT(IA a, IB b, IC c, Type concreteType)
      {
          // куча говнокода, который создает объект типа concreteType, определяемого в месте вызова в рантайме.
      }
      


      Классы, реализующие IT, имеют конструкторы с разными сигнатурами, принимающими какую-то комбинацию объектов типов IA, IB или IC, поэтому с ростом количества реализаций IT, код их создания начинал пахнуть все сильнее, и, наконец, было принято решение его выкинуть и заменить простым кодом с Unity, примерно такого содержания:

      private static IT CreateITInternal(IA a, Type targetType)
      {
          using (UnityContainer cont = new UnityContainer())
          {
              cont.RegisterInstance<IA>(a, new ExternallyControlledLifetimeManager());
              cont.RegisterType(typeof(IT), targetType, new ExternallyControlledLifetimeManager());
              return cont.Resolve<IT>();
          }
      }
      

      (для простоты я оставлю только ссылки на IA, чтобы не загромождать код. Unity нам тут нужен только для облегчения инстанциирования объектов и мы не хотим давать ему контролировать время жизни никаких объектов, поэтому использован ExternallyControlledLifetimeManager)
      Код написан, тесты написаны, все зелено, все работает, выкатывам в продакшен. И тут началось…
      Читать дальше →
    • Первые шаги со Stellaris LM4F120 launchpad evaluation board

        Завалялась у меня в столе плата Stellaris LM4F120, с которой я решил, наконец, разобраться. Писать будем программу, которая включает-выключает светодиоды, установленные на плату в ответ на нажатия имеющихся на плате кнопок.
        Читать дальше →
      • Samsung начинает распространять официальный ICS для Galaxy S2


          Случилось то, что [некоторые] владельцы Samsung Galaxy S2 долго ждали. Samsung начал распространять прошивку с Ice Cream Sandwich для вышеупомянутого телефона. Также, скоро обещают обновления и для некоторых других смартфонов и планшетов.

          Пока только в Польше, Венгрии, Швеции и Корее.

          Пользователь KollinZ рапортует о выкладывании польской версии прошивки на рутрекере.
        • Префиксные деревья в Javascript

          Как это писалось

          Одним долгим зимним вечером моя жена играла в Bookworm adventures, и периодически пинала меня по поводу составления слов подлиннее из имеющихся букв. Быстрый поиск по интернету страничек, позволяющих составлять слова из набора букв дал кучу сайтов, которые пытаются делать это на серверной стороне, и один, который делает это на клиентской ява-апплетом. Те, которые составляют слова мощностями сервера либо имеют ограничение на размер набора букв (обычно, почему-то в 8), либо глубоко задумываются, если им послать набор «abcdefghijklmnopqrstuvwxyz». Ява-апплет же имел ограничение в 12 букв, работал шустро и почти подходил (в игре предлагаются 16 букв для составления слов).
          Читать дальше →
          • +42
          • 3.9k
          • 6