После приезда в США я обнаружила неожиданные пробелы в своем английском. И это оказался отнюдь не герундий. Если вы собираетесь ехать в США или работать с американцами, проверьте себя.
Вы не знаете цифры
Не верите мне, да?
Возмущены? И прямо сейчас готовы это опровергнуть. "Алена, ты чего, смотри: one, two ..."
А теперь быстро и без запинки попробуйте произнести на английском свой номер телефона. На память, не подглядывая. Попросите друга быстро произнести 10 случайных цифр и запишите их на бумагу. Вам придется это делать часто.
Некоторое время спустя я осознала, что цифры в английском тексте я читала по-русски. И никогда об этом не задумывалась.
Здесь многие вопросы решаются по телефону. Вам придется много и часто проговаривать свой номер телефона (а он будет новый). Номер своей кредитной карты. Иногда на той стороне будет робот.
Напоминаю, что тут очень любят считать сотнями 1200 - twelve hundred.
Вы не знаете буквы
Тоже возмущаетесь, но уже осторожнее?
Проверьте, что вы можете проговорить по буквам свое имя, опять же, никуда не подглядывая. Поповы могут это упражнение пропустить. Мой пламенный привет Щёголевым и Щербаковым.
В местных школах этому специально учат, кстати.
вторник, сентября 01, 2015
Практический английский. Цифры и буквы.
понедельник, июня 29, 2015
Фрагментация памяти в C++ приложениях
Поскольку памятью в С++ приложении программист управляет самостоятельно, то и за фрагментацией памяти приходится следить самим. Память фрагментируется, если приложение работает достаточно долго и при этом активно работает с памятью. Не такая редкая проблема. Я это видела в играх, игрок бегает, юнитов убивает, локации меняет, надо под это память выделять и потом освобождать. И в высоконагруженных системах, запросы приходят, надо под них память выделять, потом освобождать.
Чем это плохо? Во-первых, память может внезапно закончиться. Во-вторых может просесть производительность. Вот тут можно почитать историю как это выглядит на практике: Out of memory
Вот тут с картинками написано как оно происходит: Holier Than Thou
Но не написано - а что с этим делать-то? Итак, с чем я работала.
Region-based memory management. Выделяем память большим куском, например, под уровень в игре. Популярный термин для такого куска - "арена". Потом уже внутри этого куска создаем нужные нам объекты. Когда все это стало не нужно - весь кусок памяти освобождаем. Заодно с утечками памяти проблем меньше.
Арену можно использовать вместе с STL, см. "STL custom allocators".
Boost.Pool. Там есть несколько разных интерфейсов, я использовала object_pool, который помогает эффективнее создавать и удалять большое количество сравнительно маленьких объектов.
Также я видела разное креативное использование placement new, как правило его можно заменить Boost.Pool'ом.
Категории: cpp, gamedev, programming
среда, мая 13, 2015
"Марсианин" на русском языке
В оригинале - "The Martian".
суббота, мая 09, 2015
Хорошие книги по С++11
Я сейчас в работе активно использую фичи C++11 и C++14, чего и вам рекомендую. Вот вам отличные книги по новыму стандарту.
С++ Concurrency in Action: Practical Multithreading by Anthony WilliamsС фокусом на многопоточность, которой раньше в стандарте не было. Если душит жаба эту книгу покупать, то написана она на основе вот этих статьей Уильямса: Multithreading in C++0x Series
The C++ Standard Library: A Tutorial and Reference (2nd Edition) by Nicolai M. JosuttisДжоссатис обновил свою книгу про STL. Много букв. Очень много букв. Выискивать там куски, относящиеся именно к C++11, смысла не имеет. Многопоточность, правда, вынесена в отдельную главу, но по многопоточности лучше Уильямса почитать.
Поэтому рекомендую эту книгу тем, кто решил начинать изучать STL. Обратите внимание на издание, вам нужно второе издание, там на обложке крупно написано С++11.
Вообще это относится ко всем книгам по С++. То, что издано до 2012 года можно считать устаревшим.
Про качество переводов ничего сказать не могу.
Ссылки по теме:
Хорошие книги по С++


