Рубрика «Программирование» - 858

Я программирую на Rust уже достаточно давно, но на самом деле это не имеет большого значения. Rust настолько динамичен, что стоит отвлечься на пару месяцев, и придётся писать уже на фактически другом языке. Однако одна вещь остаётся неизменной: вектор развития. С каждым обновлением, каждой модификацией язык становится всё лучше и лучше.

Изменениям всё еще не видно конца, но даже сейчас язык уже кажется более стабильным, чем несколько месяцев назад, и начинают появляться некоторые устойчивые шаблоны проектирования API. Я подумал, что настало время исследовать всё это поглубже и решил переписать мою библиотеку для redis.
Читать полностью »

Всем привет.
На днях, по некоторым причинам, мне пришлось устанавливать php framework Laravel 5 (dev версия) на старую добрую Windows XP x86 (x32).
Опыт для меня не привычный, так как пришлось использовать не самую свежую версию php, но для новичка статья может оказаться полезной.
Итак, если перед вами встала задача (да хоть ради экспериментов в рабочее время на старой платформе) установить dev-версию фреймворка Laravel, то эта статья может оказаться весьма полезной. Добро пожаловать!
Читать полностью »

Я backend-программист. Когда при разработке сайта мне достаётся и его верстка, то рабочий процесс превращается в чтение htmlbook и написание вопросов на Toster. Чтобы уделить больше времени на решение трудных задач и освободиться от рутинных действий при верстке, я сделал для себя несколько открытий, о которых расскажу в этой публикации.

Как можно ускорить верстку сайта
Читать полностью »

Летняя школа Intel 0x7DE глазами ее студентов
В блоге Intel мы постоянно и по возможности исчерпывающе рассказываем о жизни летней студенческой школы, вот уже который (а конкретно – четырнадцатый) год проводящейся на базе компании: делаем анонсы, описываем программу, ведем репортажи с мероприятий. Но на этот раз мы о ней ничего рассказывать не будем. Не потому, что нам надоела эта тема – просто сейчас мы хотим предоставить трибуну самим участникам школы 2014 года. Итак, вот несколько небольших интервью по свежим воспоминаниям.
Читать полностью »

Итоги первого раунда Russian AI Cup

Пару дней назад окончился первый раунд ежегодного чемпионата Russian AI Cup. И по его результатам мы сегодня подготовили для вас всевозможную статистику. К моменту начала первого раунда более 1500 участников загрузили в систему свои стратегии. Из них 900 лучших по значению рейтинга в Песочнице сражались за право участвовать во втором раунде чемпионата. Конкурс составлял три человека на место, поэтому адреналина хватило всем.

Первый раунд состоял из двух частей, каждая по 12 часов непрерывного обсчета. Между частями был суточный перерыв, во время которого участники имели возможность доработать свои стратегии. В среднем конкурсанты приняли участие более чем в 100 играх в ходе каждой из частей первого раунда. Любопытно, что во второй части удалось провести чуть меньше боев, что, наверное, объясняется усложнением стратегий и проведением работы над ошибками в ходе суточного перерыва.
Читать полностью »

Введение

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

С тех пор прошло значительное время, я успел поработать над несколькими разными проектами на разных языках и даже сменить команду. Сегодня я могу с уверенностью сказать: вы не должны использовать случайность в своих автотестах, кроме случаев, которые будут оговорены отдельно. И я расскажу почему.
Читать полностью »

Интервью с легендой спортивного программирования Петром Митричевым

Говорят, когда он появился на свет, к нему заглянул сам Дональд Кнут. Говорят, когда его пригласили работать в Google, он за 15 минут переписал весь поисковый алгоритм 16 раз. Говорят, он с улыбкой следит за прогрессом квантовых вычислений, так как при виде его числа от страха факторизуются сами. Но мы точно знаем одно: Пётр — настоящий бог спортивного программирования.
Читать полностью »

В минувшие выходные Clojure-сообщество испытывало… Ой, так начинался прошлогодний пост с отчётом о прошедшем ClojureCup 2013.

ClojureCup — это 48-часовой онлайн-хакатон, обязательным условием которого является написание приложений на языках Clojure/ClojureScript. В этом году в хакатоне участвовало около 50 команд (в каждой по 1-4 человека), которые сделали множество классных приложений.

Приложения оценивают как жюри (известные в Clojure-сообществе люди), так и обычные пользователи: зайти с помощью twitter-а и проголосовать за понравившиеся вам приложения можно на странице приложений.

А попробовать, что у нас получилось, можно вот тут.

Party hard по программистски, или как мы писали ClojureCup 2014

Осторожно: под катом много картинок.
Читать полностью »

История про realloc (и лень)

Простой макрос

Все началось с простого макроса: (приблизительный код)

#define ADD_BYTE(C) do {            
  if (offset == capa) {             
    if (capa < 16) {                
      capa = 16;                    
    } else {                        
      capa <<= 1;                   
    }                               
    buffer = realloc(buffer, capa); 
    assert(buffer != NULL);         
  }                                 
  buffer[offset++] = (C);           
} while(0)

Для тех, кто не знаком с языком программирования C, поясню: этот простой макрос™ добавляет байт «C» в динамически выделяемый буфер (buffer), размер которого (в байтах) равен capa. Следующая позиция для записи определяется при помощи параметра offset. При каждом заполнении буфера происходит двукратное увеличение его объема (начиная с минимального размера в 16 байт).

Мы добавляем байты в динамический буфер — это одна из наиболее распространенных операций практически в любой программе (для работы со строками, массивами и т. п.).

Но как понять, насколько эффективна стратегия перераспределения?Читать полностью »

Встречается ситуация когда сотрудники находясь в командировках звонят с сотовых по межгороду в головной офис, хотя в офисе стоит АТС на которую заведет отличный дешевый оператор связи со вкусными ценами, или просто звонят на внутренний номер абонента, через внешний номер, да кучу ситуаций можно придумать общая проблема которых — обратный звонок. Именно для этих целей я и реализовал очередной сценарий, при котором сотруднику достаточно позвонить на номер, а потом АТС сама ему перезвонит и уже вызываемый абонент сможет сделать через АТС то, что ему необходимо не за счет своего баланса на сотовом, городском операторе или каком либо другом операторе предоставления телекоммуникационных услуг, а, например, за счет более дешевых услуг, подключенных к АТС.
Читать полностью »


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