@bitfield

Тег dev в блоге bitfield

bitfield

ой какое мимими!
Вижуал Студия со спокойной душой скастила false в std::string

std::string SomeFunction() {
  // ...
  if (SomeCondition())
    return false;
  // ...
  return "Happy";
}

if занес сотрудник копипастой из другой функции. Увидел, когда пересобирал на маке шлангом.

bitfield

Опечатка по Карри (ну, может по Чёрчу или по Клейсли):

Реализована команада 'SetProxy'.

bitfield

TFW в пайп пишется сообщение с полями pipe_exists: bool, pipe_connected: bool.

bitfield

Битбагет

bitfield

Поставил rust под виндой, пробую собрать биндинги к опенссл. Скачал либы, поставил, указал пути. Получаю

sorry, unimplemented: 64-bit mode not compiled in

Плохо думаю про авторов rust-openssl, начинаю разбираться, внезапно обнаруживаю, что gcc используется из Haskell Platform 2013 (x86).
пробую подсунуть gcc из раста

gcc.exe: error: CreateProcess: no such file or directory

Оказывается, гцц в расте обрезанный, без libexec/.../cc1.

В общем, плюнул, снес старую платформу, поставил новую 64-bit.
Теперь у меня штанга используется для сборки раст-проекта.

bitfield
ssl::SslStream::new(&ctx, stream).map(ssl::MaybeSslStream::Ssl)

Больше SSL-я богу SSL-я!

bitfield

Вот сколько лет уже пишу на питоне, а все никак не привыкну к x is not Y. Мозг парсит это как x is (not Y) вместо not (x is Y).
C a not in bполучше, ибо not a in b == (not a) in b.

bitfield

32Gb^W640Kb хватит всем, да.

#define __MAC_10_0            1000
#define __MAC_10_1            1010
//…
#define __MAC_10_9            1090
#define __MAC_10_10         101000
bitfield

Внезапно узнал, что Armadillo (который SoftwarePassport) уже полгода как закрылся.

bitfield

Сегодня было прекрасное. В кабинете обсуждают (не)соответствие гуя пакету от дизайнеров. Снимают наушники и слышу фразу

...а у Славика вообще третий размер...

bitfield
[@"a123456789012345678901234567890a" isLike:@"*ab"]

жрет 100% cpu и, похоже, уходит в бесконечный цикл.

bitfield

Андрюха (наш глав-QA), похоже, born to be tester. Много лет назад он зарегался как Andrew во внутреннем жаббере.
А сегодня это привело к багу в йопловском Messages: пишу сообщение andrew, а ответ приходит от Andrew -- в другой вкладке.

bitfield

сотрудник напоролся на красивые грабли

void func(bool b) {
  printf("bool");
}

void func(std::string s) {
  printf("string");
}

int main() {
  func("aaa");
}

И ведь знаешь, почему так, но все равно можешь сделать ошибку.

bitfield

Новый жир на доу.

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

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

По факту, все классы в Java являются абстрактными и поэтому модификатор abstract бессмыслен. Лучше говорить, что некоторые классы описывают не совсем мертвые сущности и им приписать модификатор notdead.

bitfield

you should use VibratorFactoryVisitor pattern here.

inspired by ivan-gandhi@lj

bitfield

До 2015 года осталось меньше недели, а конь-ди-даты продолжают делать тестовое в VC6.

bitfield

http://www.modulecounts.com/
Внезапно удивлен количеством пакетов на Clojure и Go.
Улыбнула Avg Growth = -9/day у R.

bitfield

Запилил в текущий проект промисы. Для сравнения, до:

-(void) p_pluckHamsSinceLastPluckWithCompletion:(BarPluckHamsCompletion) completion
{
  NSDate * date = [NSUserDefaults standardUserDefaults].lastPluckDate;

  XXXHamPlucker plucker = ^(XXXPluckSession * session, XXXFoo *foo, XXXPluckConsumer consumer) {
    [session searchBoosSinceDate:date withFoo:foo completion:^(NSError *error, NSIndexSet * boos) {
      if (error)
        return consumer(error, nil);
      [Bar filterBoos:boos withFoo:foo completion:^(NSIndexSet *boos) {
        [session pluckHamsWithBoos:boos withFoo:foo completion:^(NSError * error, NSArray * hams) {
          if (error)
            return consumer(error, nil);
          [Bar filterHams:hams withFoo:foo completion:^(NSArray *hams) {
            consumer(nil, hams);
          }];
        }];
      }];
    }];
  };

  [self p_pluckHamsUsingPlucker:plucker completionHandler:completion];
}

После

-(XXXPromise *) p_pluckHamsSinceLastPluck {
  NSDate * date = [NSUserDefaults standardUserDefaults].lastPluckDate;

  XXXHamPlucker plucker = ^(XXXPluckSession * session, XXXFoo * foo) {
    XXXPromise * promise = [session searchBoosSinceDate:date withFoo:foo];
    return promise.thenPromise(^(NSIndexSet * boos){
      return [Bar filterBoos:boos withFoo:foo];
    }).thenPromise(^(NSIndexSet * boos){
      return [session pluckHamsWithBoos:boos withFoo:foo];
    }).thenPromise(^(NSArray * hams) {
      return [Bar filterHams:hams withFoo:foo];
    });
  };

  return [self p_pluckHamsUsing:plucker];
}

Промисы свои, написал часа за 3-4. Смотрел RXPromise и PromiseKit, но они не умеют то, что мне нужно.

bitfield

TFW делаешь замену s/PChar/PAnsiChar/, s/String/AnsiString/ в 2014 году.
inb4: innosetup

bitfield

засунуть юзера без мыла в базу

Добавить пост

Вы можете выбрать до 10 файлов общим размером не более 10 МБ.
Для форматирования текста используется Markdown.