Рубрика «код» - 8

Это четвертая статья из серии по IL2CPP. В ней мы поговорим о том, как il2cpp.exe генерирует код C++ для вызовов методов в управляемом коде.

IL2CPP: вызовы методов - 1Читать полностью »

Я не самый талантливый кодер в мире. Правда. Так что я стараюсь писать как можно меньше кода. Чем меньше кода я пишу, тем меньше кода может ломаться, поддерживаться и требовать пояснений.

А еще я ленивый — мед, да еще и ложкой (я решил использовать в статье аналогии с едой).

Но, оказывается, что единственный гарантированный способ повысить производительность в вебе — это писать меньше кода. Минифицировать? Окей. Сжимать? Ну, да. Кэшировать? Звучит неплохо. Вообще отказываться кодить или использовать чужой код изначально? А вот теперь — в яблочко! Что есть на входе — должно выйти на выходе в той или иной форме, независимо от того, смог ли ваш сборщик растворить и переварить это своими желудочными соками (я, пожалуй, откажусь от пищевых аналогий).

И это не все. Кроме видимых улучшений производительности, где вам требуется то же количество кода, но его сначала нужно разжевать (не смог удержаться), вы также можете сэкономить. Моему провайдеру без разницы, посылаю ли я кучу маленьких писем или одно большое: все складывается.

В стремлении к уменьшению мне больше всего нравится вот что: в конце остается только то, что реально нужно, только то, что по-настоящему требуется пользователю. Огромная фотка какого-то чувака, пьющего латте? Выкинуть. Кнопки социальных сетей, которые подсасывают кучу левого кода и ломают дизайн страницы? Пинок под зад им. Эта хреновина на JavaScript, которая перехватывает правый клик и показывает кастомное модальное окно? Выставить на мороз!

Речь идет не только про подключение штук, которые ломают интерфейс. То, как вы пишете свой собственный код, тоже играет большую роль в стремлении к уменьшению кода. Вот несколько советов и идей. Я писал о них ранее, но в контексте удобства и отзывчивого дизайна. Просто так получается, что гибкий, удобный веб требует меньше контроля с нашей стороны и его сложнее сломать.Читать полностью »

18 июля 2016 года вступили в силу новый Административный регламент предоставления государственной услуги по государственной регистрации программы для ЭВМ, а также новые Правила регистрации программ и баз данных. Таким образом, прекращает действие Административный регламент 2008 года. Понятно, что если вы по каким-то причинам регистрируете программы в Роспатенте (зачем их регистрировать — мы обсуждали здесь ранее), то с 18 июля нужно пользоваться новой формой заявления.

С 18 июля новый порядок регистрации программ для ЭВМ в Роспатенте. Что изменилось? - 1

Больший интерес представляет анализ нового Регламента с целью понять, есть ли что-то существенно новое в регистрации программ, улучшающее или ухудшающее положение заявителей.
Читать полностью »

image

Я написал свои первые несколько строчек кода почти 32 года назад, когда мне было 6. Я развил очень сильные инстинкты программирования и мог смотреть на любую проблему, сразу зная, как ее решить — просто интуитивно.

К тому времени, когда я стал писать программы, чтобы зарабатывать себе на жизнь, я чувствовал себя рок-звездой. Я находил и исправлял ошибки быстрее, чем кто-либо из моих коллег. Моя команда отдавала мне самые незаметные и запутанные баги. Они даже стали называть меня мастером.

Но одной интуиции недостаточно. Я столкнулся со стеной. И никакой инстинкт кодировщика не помогал мне сквозь нее пробиться. Далее Bill Sourour поделится с нами информацией о том, как не останавливаться на достигнутом. Кому-то эти рассуждения, безусловно, покажутся очевидными. Ну, а кому-то — пригодятся.Читать полностью »

image
Изображение с сайта abv24.com

Один из тех людей, с именем которых связано превращение программирования из шаманства в науку, — Эдсгер Дейкстра. Он небезуспешно доказывал, что программирование — высокое искусство и интеллектуальное творчество.

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

Программирование – не набор пассов и заклинаний, не шаманство, не танцы с бубном, а математическая дисциплина. А всякая дисциплина, если она претендует на нечто большее, чем на внешний эффект, должна строиться на прочном фундаменте. Таким фундаментом для Дейкстры является математическая логика, а точнее – исчисление предикатов.

Сейчас это не кажется чем-то необычным, но в 50-е годы это прозвучало как откровение. Дейкстра понял и убедительно показал, как теория может и должна помочь практике.Читать полностью »

В военное время для обмена данными использовали защищенные каналы связи. И перехват передаваемых сообщений с последующей их дешифровкой — играл важную роль в противостоянии государств. Гениальные криптографы Блетчли-парка проделали колоссальнейшую работу и существенно повлияли на ход Второй мировой войны. Они приобрели мировую славу, навеки запечатлев свои имена в истории криптографии. Но дешифровкой сообщений также занимались и во времена Первой мировой войны. В Британии существовала дешифровальная организация под названием Комната 40 (англ. Room 40), занимающаяся перехватом и расшифровкой немецких сообщений.

Комната 40 была также известна под названием 40 С.Б. (Старое здание) и являлась подразделением ведущего криптографического органа Великобритании времен Первой мировой войны — Британского Адмиралтейства. Сформировалась организация в октябре 1914 года, вскоре после начала войны. Свое название Комната 40 получила благодаря номеру помещения в старом здании Адмиралтейства, где она и находилась. Большую часть периода существования данная организация представляла собой бюро по анализу и дешифровке криптограмм. Ее сотрудниками было расшифровано около 15 000 немецких сообщений.

Секретная комната 40 - 1

Читать полностью »

В третьей статье из серии по IL2CPP мы обсудим некоторые полезные советы по отладке генерируемого кода C++: как расставлять точки останова, просматривать содержимое строк и пользовательских типов и определять места, где возникают исключения.
Учтите, что сама по себе отладка кода C++, генерируемого на основе кода .NET IL, – занятие не из приятных. Тем не менее представленные ниже советы помогут вам разобраться, как код проекта Unity выполняется на целевом устройстве (в конце статьи мы также немного поговорим об отладке управляемого кода).
Будьте готовы, что генерируемый код в вашем проекте может отличаться от того, который вы увидите здесь. В каждой новой версии Unity мы пытаемся оптимизировать генерируемый код и сделать его еще более компактным и производительным.

IL2CPP: советы по отладке генерируемого кода - 1
Читать полностью »

Перед вами вторая статья из серии по IL2CPP. В этот раз мы поговорим о коде C++, генерируемом утилитой il2cpp.exe, а также рассмотрим представление управляемых типов в машинном коде, проверки во время выполнения, которые используются для поддержки виртуальной машины .NET, генерацию циклов и многое другое.

IL2CPP: экскурсия по генерируемому коду - 1
Читать полностью »

Использование языка программирования R вместе со свободной реляционной системой управления базами данных PostgresSQL может значительно ускорить и упростить процесс загрузки данных в БД.

Маршрут перемещения потока данных: загрузка в реляционную БД - 1

Структурирование файлов

Перед началом загрузки данных в PostgreSQL, следует рассортировать файлы по типу в разные директории. R делает операции достаточно простыми на уровне ОС:

#### 1. Setting directory to FTP folder where files incoming from Adobe
## Has ~2000 files in it from 2 years of data
setwd("~/Downloads/datafeed/")

#### 2. Sort files into three separate folders
## Manifests - plain text files
if(!dir.exists("manifest")){
  dir.create("manifest")
  lapply(list.files(pattern = "*.txt"), function(x) file.rename(x, paste("manifest", x, sep = "/")) 
}

## Server calls tsv.gz
if(!dir.exists("servercalls")){
  dir.create("servercalls")
  lapply(list.files(pattern = "*.tsv.gz"), function(x) file.rename(x, paste("servercalls", x, sep = "/"))) 
}

## Lookup files .tar.gz
if(!dir.exists("lookup")){
  dir.create("lookup")
  lapply(list.files(pattern = "*.tar.gz"), function(x) file.rename(x, paste("lookup", x, sep = "/"))) 
}

Читать полностью »

image

Инженер Microsoft Джошуа Дебнер использовал Uber в Сиэтле, когда на экране появилось новое уведомление. Приложение предложило сыграть в игру «Code on the Road». В компании подтвердили, что нашли новый способ поиска разработчиков для своей быстрорастущей компании путем тестирования их навыков во время поездки на Uber, сообщает businessinsider.

Дебнер не имеет ни малейшего представления о том, как компания узнала, что он является инженером. Его адрес электронной почты Microsoft не привязан к приложению. Uber настаивает на том, что он не использует персональные данные для идентификации кандидатов, а только выявляет географические области, в которых сосредоточены технические специалисты.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js