Цитата #444217

Жду поезд. На платформе напротив меня сидит парень с телефоном и орёт в него:
— Ирис, послушай что я тебе скажу! Только никому..! Секрет! Это знают только ты и Натан!
А мир так тесен.
Цитата #444217
Source: bash

Пост №3052180

Автор: fake

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3052180″ }, «headline»: «котейка», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/%D0%BA%D0%BE%D1%82%D0%B5%D0%B9%D0%BA%D0%B0-3761640.jpeg», «height»: 2395, «width»: 3600 }, «datePublished»: «2017-04-03T07:01:08+03:00», «dateModified»: «2017-04-03T07:01:08+03:00», «author»: { «@type»: «Person», «name»: «fake» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3052180
Source: Joyreactor

Женский космический десант в Австралию?

Несмотря на все достижения в области коммуникации, до сих пор личная встреча и личное присутствие позволяют лучше установить контакт и сделать больше, чем на расстоянии. Кроме того, непосредственное присутствие позволяет увидеть больше, чем напишут другие люди в коротких заметках о событии. К чему это я? В конце сентября в Аделаиде (Австралия) пройдет шестьдесят восьмой международный астронавтический конгресс (IAC). От России на нем будет официальная делегация, которая для нас, обычных людей, репортаж точно вести не станет. Но сейчас собираются средства на то, чтобы отправить в Аделаиду еще четырех девушек из России. Я поговорил с Антоном Громовым (редактор паблика SpaceX ВКонтакте и ведущий трансляций запусков SpaceX), который был на прошлом конгрессе в Мексике, девушками и главным организатором сбора средств, инженером, журналистом и популяризатором космонавтики Александром Хохловым.


Читать дальше →
Женский космический десант в Австралию?
Source: geektimes

Пост №3052170

Автор: Arterton


Трамп ушел с церемонии подписания указов, забыв их подписать

ссылка на гифку



Развернуть


&epicComment_3052170&
{
«@context»: «http://schema.org»,
«@type»: «BlogPosting»,
«mainEntityOfPage»:{
«@type»:»WebPage»,
«@id»:»http://polit.reactor.cc/post/3052170″
},
«headline»: «Трамп ушел с церемонии подписания указов, забыв их подписать / трамп :: всем пока :: политика :: гиф анимация (гифки — ПРИКОЛЬНЫЕ gif анимашки)»,
«image»: {
«@type»: «ImageObject»,
«url»: «http://img0.joyreactor.cc/pics/post/full/%D0%B3%D0%B8%D1%84%D0%BA%D0%B8-%D0%B2%D1%81%D0%B5%D0%BC-%D0%BF%D0%BE%D0%BA%D0%B0-%D1%82%D1%80%D0%B0%D0%BC%D0%BF-%D0%BF%D0%BE%D0%BB%D0%B8%D1%82%D0%B8%D0%BA%D0%B0-3761628.gif»,
«height»: 257,
«width»: 450 },
«datePublished»: «2017-04-03T06:42:16+03:00»,
«dateModified»: «2017-04-03T06:42:16+03:00»,
«author»: {
«@type»: «Person»,
«name»: «Arterton»
},
«publisher»: {
«@type»: «Organization»,
«name»: «JoyReactor.cc»,
«logo»: {
«@type»: «ImageObject»,
«url»: «http://joyreactor.cc/images/joyreactor_ie6.png»,
«width»: 207,
«height»: 54
}
},
«description»: «»
}

Комментировать 
Пост №3052170
Source: Joyreactor

Обработка ошибок в C

Введение


Ошибки, увы, неизбежны, поэтому их обработка занимает очень важное место в программировании. И если алгоритмические ошибки можно выявить и исправить во время написания и тестирования программы, то ошибок времени выполнения избежать нельзя в принципе. Сегодня мы рассмотрим функции стандартной библиотеки (C Standard Library) и POSIX, используемые в обработке ошибок.
Читать дальше →
Обработка ошибок в C
Source: habrahabr

Пост №3052145

Автор: Mishvanda

ссылка на гифкуРазвернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3052145″ }, «headline»: «большая гифка (большие гифки) :: большой котэ :: гиф анимация (гифки — ПРИКОЛЬНЫЕ gif анимашки) :: котэ (прикольные картинки с кошками)», «image»: { «@type»: «ImageObject», «url»: «http://img1.joyreactor.cc/pics/post/full/%D0%B3%D0%B8%D1%84%D0%BA%D0%B8-%D0%BA%D0%BE%D1%82%D1%8D-%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%B0%D1%8F-%D0%B3%D0%B8%D1%84%D0%BA%D0%B0-%D0%B1%D0%BE%D0%BB%D1%8C%D1%88%D0%BE%D0%B9-%D0%BA%D0%BE%D1%82%D1%8D-3761595.gif», «height»: 900, «width»: 720 }, «datePublished»: «2017-04-03T05:47:26+03:00», «dateModified»: «2017-04-03T05:47:26+03:00», «author»: { «@type»: «Person», «name»: «Mishvanda» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3052145
Source: Joyreactor

Пост №3052123

Автор: DaryaKost

Развернуть { «@context»: «http://schema.org», «@type»: «BlogPosting», «mainEntityOfPage»:{ «@type»:»WebPage», «@id»:»/post/3052123″ }, «headline»: «арт барышня (арт девушка, art барышня, art девушка,) :: Yong Ja STUDIO :: красивые картинки», «image»: { «@type»: «ImageObject», «url»: «http://img0.joyreactor.cc/pics/post/full/Yong-Ja-STUDIO-%D0%B0%D1%80%D1%82-%D0%B1%D0%B0%D1%80%D1%8B%D1%88%D0%BD%D1%8F-%D0%BA%D1%80%D0%B0%D1%81%D0%B8%D0%B2%D1%8B%D0%B5-%D0%BA%D0%B0%D1%80%D1%82%D0%B8%D0%BD%D0%BA%D0%B8-3761572.jpeg», «height»: 1920, «width»: 1920 }, «datePublished»: «2017-04-03T04:29:44+03:00», «dateModified»: «2017-04-03T04:29:44+03:00», «author»: { «@type»: «Person», «name»: «DaryaKost» }, «publisher»: { «@type»: «Organization», «name»: «JoyReactor.cc», «logo»: { «@type»: «ImageObject», «url»: «http://joyreactor.cc/images/joyreactor_ie6.png», «width»: 207, «height»: 54 } }, «description»: «» }
Комментировать 
Пост №3052123
Source: Joyreactor

Scala: parser combinators на примере парсера формул

Время от времени у меня возникает желание придумать свой собственный маленький язык программирования и написать интерпретатор. В этот раз я начал писать на scala, узнал про библиотеку parser combinators, и был поражён: оказывается, можно писать парсеры легко и просто. Чтобы не превращать статью в пособие по «рисованию совы», ниже приведёна реализация разбора и вычисления выражений типа "1 + 2 * sin(pi / 2)".

Сам парсинг и вычисление выражения занимают всего лишь 43 непустых строчки — не то чтобы я сильно стремился сократить их количество, но выглядит это реально просто и лаконично. Проект на github.

Для сравнения:

Итак, если вам не терпится увидеть результат:

Ответственный за парсинг кусочек кода

object FormulaParser extends RegexParsers with PackratParsers {

    def id: Parser[Id] = "[a-zA-Z][a-zA-Z0-9_]*".r ^^ Id

    def number: Parser[Number] = "-" ~> number ^^ (n => Number(-n.value)) |
        ("[0-9]+.[0-9]*".r | "[0-9]+".r) ^^ (s => Number(s.toDouble))

    def funcCall: Parser[FuncCall] = id ~ ("(" ~> expression <~ ")") ^^ (pair => FuncCall(pair._1, pair._2))

    def value: Parser[Expression] = number | funcCall | id | ("(" ~> expression <~ ")")

    lazy val term: PackratParser[Expression] = term ~ ("*" | "/") ~ value ^^ binOperation | value

    lazy val expression: PackratParser[Expression] = expression ~ ("+" | "-") ~ term ^^ binOperation | term
    ...
}

Посмотрите на следущую строчку:

def value: Parser[Expression] = number | funcCall | id | ("(" ~> expression <~ ")")

Она подозрительно похожа на описание грамматики, но это валидный код, в котором среда разработки может сразу же обнаружить и подсветить большинство ошибок.

Это возможно по следующим причинам:

  1. В scala разрешено давать методам замечательные названия типа "~", "~>", "<~", "|", "^^". Комбинация парсеров p и q записывается как p~q, а возможность выбрать один из них: p|q. Читается намного лучше, чем p.andThen(q) или p.or(q)
  2. Благодаря неявным преобразованиям (implicits) и строчка "abc" и регулярное выражение "[0-9]+".r при необходимости превращаются в парсеры.
  3. В языке мощная статическая система типов, которая позволяет ловить ошибки сразу.

Думаю, мне удалось Вас заинтересовать, поэтому дальше всё будет по порядку.

Читать дальше →
Scala: parser combinators на примере парсера формул
Source: habrahabr