• Какие есть open source проекты для джуниоров?

    @traims
    Будет здорово, если кто-нибудь поделится личным опытом. Я же могу подсказать список проектов Google Summer of Code: https://www.google-melange.com/gsoc/org/list/publi...
    Организации можно искать по ключевым словам в колонке справа (например, ввести "python"). На странице каждой организации есть ссылка на "Ideas page", где есть идеи для летних проектов, рассчитанных на студентов. Часто указывается сложность проекта. Скорее всего, эти идеи быстро разберут, но само их наличие может подсказать, в каких проектах способен разобраться и новичок.
    Ответ написан
    2 комментария
  • Как отделить каждый 4-ый элемент массива?

    @traims
    Очевидно-школьное решение.

    <?php 
    for ($times=0; $times<4; $times++)
    { 
      for ($element=$times+1; $element<20; $element+=4)
      {
        echo " $element ";    
      } 
      echo "<br>";
    }  
    ?>


    Выводит текст:
    1 5 9 13 17 
    2 6 10 14 18 
    3 7 11 15 19 
    4 8 12 16
    Ответ написан
    2 комментария
  • Пробное тестирование IELTS, где пройти?

    @traims
    Ключевые слова: "IELTS Practice Tests", "IELTS Mock Exams". Можно найти, например:
    takeielts.britishcouncil.org/prepare-test/free-pra... (PDF для разных частей экзамена)
    www.esolcourses.com/revision/ielts.html (есть и вопросы для повторения, и mock papers)
    Ответ написан
    Комментировать
  • Как реализовать fronend-backend приложение на C-Python?

    @traims
    Первое, что приходит в голову - модель "Model-View-Controller". В Django она называется "Model-Template-View". Как строятся такие приложения:
    • модель, которая отвечает за работу с данными (в первую очередь, это схема таблиц БД);
    • шаблон (например, HTML-шаблон), который отображает, как именно должен выглядеть вывод данных;
    • контроллер, который отвечает за логику приложения: берёт данные из модели, что-то делает с ними и отображает в шаблоне.
    По этой модели работают многие популярные веб-фреймворки (Ruby on Rails, Django, Zend, ASP.NET MVC...)
    Ответ написан
    Комментировать
  • Что подразумевается под DDoS атакой?

    @traims
    DDoS-атаку не вызвать, если вручную нажимать F5. Для атаки нужны сотни, тысячи или даже десятки тысяч запросов в секунду. Причём мощность DDoS-атак постоянно растёт.

    Примеры:
    VideoLAN на днях подвергся довольно необычной DDoS-атаке. Хотя интенсивность запросов была не очень велика — от 400 до 1600 запросов в секунду, ботнету удалось создать очень большую нагрузку на сервер, так как компьютеры-зомби не просто заходили на одну из страниц сайта, а скачивали дистрибутив VLC-плеера весом в 22 мегабайта. Пиковая нагрузка на серверы доходила до 292 гигабит в секунду.
    habrahabr.ru/post/178153


    Средняя мощность DDoS-атаки в рунете выросла с 34 Мб/с во втором полугодии 2012 года до 5,5 Гб/с в первом полугодии 2013 года, тогда как средняя продолжительность DDoS-атак снизилась более чем вдвое
    ria.ru/science/20130911/962485712.html
    Ответ написан
  • Как написать parser для txt в словарь с использованием regex pyton?

    @traims
    1. Допустим, мы хотим поймать всё, что находится между символами {## и ##}. Как будет выглядеть регулярное выражение?

    Нам всё равно, какие символы будут встречаться внутри, поэтому можно поставить точку — произвольный символ. Пусть этот символ будет повторяться произвольное число раз — добавляем звёздочку. Нам надо поймать всё, что находится между {## и ##} — добавляем круглые скобки, чтобы обозначить границы группы:
    {## (.*) ##}
    Можно немного изменить это регулярное выражение, например, поставить знак "+" вместо звёздочки — это будет означать, что произвольный символ должен встретиться хотя бы один раз (звёздочка означает, что он может встретиться ноль или более раз).

    2. Как использовать это регулярное выражение?

    Можно применять его к каждой строке файла по очереди. А можно применить ко всему файлу целиком, если он небольшой.

    Допустим, мы считываем весь файл в одну строковую переменную:
    with open('input.txt', 'r') as f:
        text = f.read()

    Тогда мы можем вытащить из него сразу всё, что нас интересует:
    import re
    pattern = "{## (.*) ##}"
    result = re.findall(pattern, text)

    Результатом будет список строк вида
    ['bonus:DS',
    'bang:fm,bv',
    'zf:123,230',
    'zf1:349,410',
    ... ]

    Здесь каждую строку можно разбить на две:
    s = 'bonus:DS'
    s.split(':')  # получаем ['bonus', 'DS']

    — и дальше действовать как потребуется.

    3. Что получится, если включить двоеточие сразу в регулярное выражение?

    Чтобы обойтись без использования split(), можно изначально включить двоеточие в наше регулярное выражение:
    pattern = "{## (.*):(.*) ##}"
    Результатом будет список кортежей:
    [('bonus', 'DS'),
    ('bang', 'fm,bv'),
    ('zf', '123,230'),
    ('zf1', '349,410'),
    ... ]


    4. Как собирать различные структуры данных с нуля?

    Примеры того, как можно собрать с нуля списки, словари и кортежи. Все примеры легко проверить в командной строке.

    Списки:
    list = []
    list.append('a')

    Пары ключ-значение (словари):
    d = dict()
    d['a'] = '123'

    Кортежи:
    x = '123'
    y = '456'
    tuple = (x, y)

    По идее, этой информации должно быть достаточно, чтобы вы смогли разобраться в путях решения задачи. Удачи!
    Ответ написан
    Комментировать