Основы программирования на rubyEvgeny SmirnovРассказывается об основах программирования на ruby: переменные, типы переменных, операции и пр. В конце приводятся блок-схема решения линейного уравнения.
Ruby: основы ООПEvgeny SmirnovОсновы объектно-ориентированного программирования на ruby. Разбор концепции наследования.
Оригинал: http://school.smirik.ru/show/43
Николай Паламарчук "Functional Programming basics for PHP developers"FwdaysFunctional Programming becomes very popular nowadays. What is it? Is it a hype or panacea? Should you deal with it as a PHP programmer? Let's find out!
Рекурсия. ПоискOlexandra DmytrenkoПрезентация для JuJa вебинара о том, как писать рекурсивные программы с примером о вычислении факториала и чисел Фибоначчи. Также рассказывается о поиске линейном, бинарном, в глубину и в ширину, как работает поисковая система.
Презентация сделана для новичков в деле программистов.
NumBuster! Почему связи между данными важнее самих данных.Evgeny SmirnovЧасто считается, что основную ценность в бизнесе представляют данные. Однако же весьма важными, а, возможно, и наиболее важными с нашей точки зрения являются связи между получаемыми данными, которые позволяют персонализировать работу пользователя и узнать его лояльность по отношению к различным вещам: работе, разным компаниям, сервисам и пр.
Доклад NumBuster! на конференции BigData Russia 2014.
Ruby: основы ООПEvgeny SmirnovОсновы объектно-ориентированного программирования на ruby. Разбор концепции наследования.
Оригинал: http://school.smirik.ru/show/43
Николай Паламарчук "Functional Programming basics for PHP developers"FwdaysFunctional Programming becomes very popular nowadays. What is it? Is it a hype or panacea? Should you deal with it as a PHP programmer? Let's find out!
Рекурсия. ПоискOlexandra DmytrenkoПрезентация для JuJa вебинара о том, как писать рекурсивные программы с примером о вычислении факториала и чисел Фибоначчи. Также рассказывается о поиске линейном, бинарном, в глубину и в ширину, как работает поисковая система.
Презентация сделана для новичков в деле программистов.
NumBuster! Почему связи между данными важнее самих данных.Evgeny SmirnovЧасто считается, что основную ценность в бизнесе представляют данные. Однако же весьма важными, а, возможно, и наиболее важными с нашей точки зрения являются связи между получаемыми данными, которые позволяют персонализировать работу пользователя и узнать его лояльность по отношению к различным вещам: работе, разным компаниям, сервисам и пр.
Доклад NumBuster! на конференции BigData Russia 2014.
РИФ+КИБ 2016: как потратить почти 2 миллиона рублей и так и не сделать бизнесAnton PiskunovFail storу: как бросить студию разработки, придумать крутую идею, потратить почти 2 миллиона рублей и так и не сделать бизнес
Dynamic Inventory: no more host lists!SATOSHI TAGOMORIThe document discusses using dynamic inventory in Ansible to avoid manually maintaining host lists. It provides examples of using external inventory scripts for Cobbler, AWS, and other services, as well as developing custom dynamic inventories. Dynamic inventory allows grouping hosts by roles and executing playbooks against entire groups. The document also covers using Serverspec for testing roles without disrupting operations and including host variables directly in the inventory JSON to avoid separate API calls.
BeeGo для веб приложений, API и демоновAnton PiskunovАнтон Пискунов. Независимый разработчик.
«BeeGo для веб-приложений, API и демонов»
- Почему BeeGo? vs Revel and another guys.
- Что мы пишем на BeeGo? Наш личный опыт.
- Как написать облачный стартап и инфраструктурные сервисы на BeeGo за две недели.
- Sweet API, нэймспейсы и автодокументация.
- Демонизация BeeGo, к чему мы пришли?
- Разработчики, мэйнтейнинг, существующие проблемы
http://go-meetup-spb.timepad.ru/event/169777/
RTB DSP на языке Go: укрощение buzzwordsDaniel PodolskyRTB и его проблематика должны быть знакомы участникам конференции - мало кто сегодня не слышал об этом способе получить много krps с жесткими ограничениями на время генерации ответа.
Вот и компания Qmobi решила поучаствовать в этой гонке и отхватить свой кусок пирога под названием “рынок мобильной рекламы”.
При первом подходе к снаряду задача выглядит довольно простой: вот запрос с критериями, вот база данных с ответами - выбирай по индексу и отвечай.
На самом деле все несколько сложнее. Начать с того, что некоторые критерии отбора - негативные. Затем мы имеем дело с выборкой по десятку индексов, каждый из которых обладает низкой cardinality. И, наконец, мы имеем дело с большими объемами: около 10М строк в исходных данных, около 10К строк в финальной выборке. Ах, нет, еще финальная выборка должна быть отсортирована по приоритету! И надо не забыть про атомарные блокировку и списание средств...
От идеи прототипа на perl пришлось отказаться еще на этапе постановки задачи :)
Итак, мы имеем задачу с интенсивным IO, высокой нагрузкой, высокими скоростями, сложными структурами данных и эвристическими алгоритмами.
Анализ имеющихся вариантов показал, что Go должен прекрасно подойти для этой задачи. О том, на основании каких соображений мы сделали такой вывод, и какие из этих соображений прошли проверку практикой, а какие - нет, будет рассказано в докладе.
Также в докладе будет рассказано о том, как сортировка была заменена случайной выборкой, и чем пришлось заплатить за то, чтобы эта замена оказалась равноценной.
Будет показано, почему мы наплевательски отнеслись к гипотетической потере 20% возможностей поучаствовать в аукционе, и почему реальный процент потерь много ниже.
Будет раскрыта роль СУБД MySQL в этом проекте, со всем блеском высокой производительности и нищетой отказоустойчивости.
Вопросы геотаргетинга, использования PostGIS и кэширования результатов поиска региона по координатам будут затронуты вскользь, как неоднократно обсуждавшиеся на этой и подобных конференциях.
А вот анатомия производительности приложения на Go будет рассмотрена подробнейшим образом - с графиками и числами.
Также подробно будут рассмотрены наши победы и поражения в борьбе со статис
Machine Learning in Magento 2Alexander MakeevThis document discusses using machine learning in Magento 2 for customer retention and behavior analytics. It proposes using machine learning to provide personalized recommendations, predict customer preferences, and detect opportunities for targeted discounts. The approach involves collecting customer activity data, running machine learning models, and integrating predictions back into the Magento sales process in real-time to improve personalization.
Статический анализ и регулярные выраженияTatyanazaxarovaЯ занимаюсь разработкой статического анализатор кода PVS-Studio для анализа программ на языке Си/Си++. После появления в PVS-Studio 4.00 анализа общего назначения мы получили множество откликов, как положительных, так и отрицательных. Кстати, предлагаю скачать новую версию PVS-Studio, в которой благодаря откликам людей было поправлено большое количество ошибок и недочетов.
Внедряем MOOC'и на уроке информатикиEvgeny Smirnov1. Какие бывают MOOC'и?
2. Какие платформы существуют?
3. Какие курсы полезны для учителя информатики?
4. Метрики по результатам эксперимента в 2014-2015 годах.
Инновации которые не мешаютEvgeny SmirnovПрезенетация с выступления на Арене #ИТНШ 2017: зачем нужны инновации, какого типа бывают инновации, как их искать и как их внедрять?
Порядок и хаос в Солнечной системеEvgeny SmirnovПрезентация на фестивале "Пулковский меридиан" (Смирнов Е.А.) об устройстве, порядке и хаосе в Солнечной системе. Рассматриваются представления человечества, начиная с Древних времён и до наших дней. Особое внимание уделено хаотической динамике астероидов.
Мобильные приложения в образованииEvgeny SmirnovПрезентация для семинара о том, как использовать мобильные приложения Plickers & Lumosity в образовании.
Промо-презентация для мастер-класса "Образовательные и игровые платформы в по...Evgeny SmirnovМастер-класса "Образовательные и игровые платформы в помощь учителю и методисту", конференция "Информационные технологии для Новой школы", РЦОКОиИТ, 2014.
Образовательные и игровые платформы в помощь учителю и методистуEvgeny SmirnovСуществующий формат образования, подразумевающий достаточно длительные уроки, большое количество материала для запоминания и стандартную систему контрольных работ, не является оптимальным в XXI веке. Интернет и другие современные технологии, а также наличие игровых и соревновательных элементов, позволяют сделать обучение для детей более интересным, повысить его эффективность и улучшить понимание предмета. Электронные видео-материалы дают возможность повторить и закрепить пройденный в школе материал в привычной для подростка форме. Всё это позволит сделать образование более подходящим по стилю и духу для современных детей.
1. Строки Создание и базовые операции Методы Задачи References
Ruby: строки
Информатика
10-11 классы
10 ноября 2011 г.
Информатика 10-11 классы
2. Строки Создание и базовые операции Методы Задачи References
Строки
Строки наиболее популярный тип в любом языке
программирования.
При вводе / выводе информации любой тип данных
преобразуется в строку.
Имя, фамилия, условие задачи и даже программа всё
это строки.
Строки очень похожи на массивы. Строка суть набор букв,
то есть, массив.
Поэтому работа со строками столь же проста в ruby, как и
с массивами.
Информатика 10-11 классы
3. Строки Создание и базовые операции Методы Задачи References
История о возможностях ruby
Студенты четвёртого курса МЭТТ ГАИ поступили на
подготовительные курсы в МГИУ. Там им начали
преподавать основы программирования на Ruby.
И одна из заданных им задач была: “Дано число,
необходимо поменять порядок цифр на обратный”.
Задача сложная, но наши студенты об этом не знали и
решили её преобразованием к строке: given.to_s.reverse.
Преподаватели были поражены и впредь запретили им
использовать преобразования к строке в своих программах.
И всё потому, что это сильно упрощало решение и давало
студентам огромное преимущество перед остальными
слушателями курсов. (ВикиУчебник)
Информатика 10-11 классы
4. Строки Создание и базовые операции Методы Задачи References
Ruby это просто
Информатика 10-11 классы
5. Строки Создание и базовые операции Методы Задачи References
Создание строк
Простейший способ задания строки через кавычки ".
Можно преобразовать число к строке с помощью to_s.
В строках можно выводить значение переменных с
помощью конструкции var
Listing 1: Способы создания строки
name = " Ivan Ivanov "
age = 5 6 . to_s
var = 35
puts " v a r = #{v a r }"
Информатика 10-11 классы
6. Строки Создание и базовые операции Методы Задачи References
Конкатенация (сложение строк)
Строки можно складывать. Следующая программа
выведет на экран строку “Help us Obi Wan Kenobi”:
Listing 2: Конкатенация строк
h e l p = " Help us "
p u t s h e l p + " Obi Wan Kenobi "
Строки можно умножать на целые числа. Пример ниже
выведет строку “axaxaxax”:
Listing 3: Умножение строк
p u t s " ax " ∗4
Информатика 10-11 классы
7. Строки Создание и базовые операции Методы Задачи References
Методы работы со строками
s = “Во дворе - дрова, а в дровах - трава!”.
Метод Описание (результат)
s.size количество символов (33)
s[3] четвёртый (с учётом нулевого) символ (д)
s[−1] последний символ (в обратную сторону) (!)
s[3..7] символы с 3-го по 7-й (дворе)
s[3..7].reverse перевернуть (еровд)
s.sub(“трава”, “мясо”) заменить одно слово “трава” на слово “мя-
со”
s.gsub(“а”, “о”) заменить все “а” на “о”
s.split(“слово”) разделить строку по слову (вернёт массив
подстрок)
Информатика 10-11 классы
8. Строки Создание и базовые операции Методы Задачи References
Подсчёт количества слов
Решим простую задачу о подсчёте количества слов в
строке.
Известно, что слова отделяются пробелами.
Поэтому разобьём строку по пробелам и подсчитаем
количество получившихся подстрок.
Listing 4: Слова
s = " A l l y o u r b a s e s a r e b e l o n g t o us ! "
substrings_array = s . s p l i t (" ")
puts substrings_array . s i z e
Информатика 10-11 классы
9. Строки Создание и базовые операции Методы Задачи References
Жи-ши пиши с И
Напишем программу, исправляющую некоторые ошибки в
написании.
Правила будут следующие: “жи–ши пиши с и, ча-ща пиши
с а”.
Для замены воспользуемся методом gsub.
Listing 5: Правила
s = "Начяльника , моя жыть хочет , дай денег на чяй ! "
c o r r e c t _ s = s . gsub ( "жы" , "жи" ) . gsub ( "шы" , "ши" )
. gsub ( "чя" , "ча" ) . gsub ( "щя" , "ща" )
puts correct_s
Информатика 10-11 классы
10. Строки Создание и базовые операции Методы Задачи References
Метод each
Для прохода по массивам / строкам помимо уже
изученных методов есть ещё несколько весьма полезных.
Метод each позволяет пройтись по каждому элементу
массива и выполнить какое–либо действие.
По принципу он очень похож на методы map, inject и др.
Посчитаем длину каждого слова в строке.
Для этого разобьём строку на слова (в виде массива), а
затем пройдёмся по массиву и посчитаем длину каждого
слова.
Информатика 10-11 классы
11. Строки Создание и базовые операции Методы Задачи References
Метод each
Listing 6: Метод each краткая запись
s = " T h i s i s SPARTA! "
s_arr = s . s p l i t ( " " )
s _ a r r . e a c h { | elem | p u t s elem . s i z e }
Listing 7: Метод each полная запись
s = " T h i s i s SPARTA! "
s_arr = s . s p l i t ( " " )
s _ a r r . e a c h do | elem |
p u t s elem . s i z e
end
Информатика 10-11 классы
12. Строки Создание и базовые операции Методы Задачи References
Ещё несколько полезных методов
s.trim убирает лишние пробелы в начале и в конце
строки.
s.empty? проверяет, пуста ли строка.
s.include?(other_s) содержит ли строка подстроку
other_s.
Продвинутые методы:
s.each do |char| проходит по всем символам строки.
s.each_line do |line| проходит по всем строкам текста.
s[1].chr номер ASCII–символа.
97.ord перевод из ASCII–кода в символ.
n символ перевода строки (“ rn” в Windows).
Информатика 10-11 классы
13. Строки Создание и базовые операции Методы Задачи References
Задания
Напишите программу, выводящую на экран среднюю
длину слова в заданной строке (ответ представить в виде
целой части получившегося числа).
Напишите программу, выводящую на экран слова, чья
длина превышает среднюю. В конце программы укажите
число таких слов.
(Повышенной сложности) Палиндромом называют слово
(или буквосочетание), одинаково читающееся в обоих
направлениях: топот, А роза упала на лапу Азора (Фет).
Задача: вывести на экран все палиндромы–слова,
встречающиеся в строке.
(МегаПовышенной сложности) Вывести на экран все
палиндромы (включая словосочетания), встречающиеся в
строке.
Информатика 10-11 классы
14. Строки Создание и базовые операции Методы Задачи References
References
Все презентации доступны на http://school.smirik.ru!
Вопросы, предложения, д/з: smirik@gmail.com
Благодарности: ВикиУчебник, Википедия, Гугол, мозг.
Информатика 10-11 классы