Pull to refresh

Идея. Литературные путешествия

Lumber room
Суть: на карте отмечаются географические объекты, которые встречаются в литературном произведении — населенные пункты, реки, озера, маршруты героев и т. п. Отметки на карте дополняются описаниями — фрагментами из произведения, картинами художников об этих событиях, фотографиями и т. п.
Сама идея не нова. Я познакомился с литературными путешествиями, благодаря Евгению Патаракину. Вот материал по теме, а это подробная инструкция по созданию.
Мое предложение: на базе онлайн библиотек, ресурсов, посвященных книгам (lib.ru, Google Books и т. п.) сделать сервис который автоматически отметит геоточки из большого собрания книг. Выглядеть это может примерно так. И картинка:


Читать дальше →
Total votes 12: ↑10 and ↓2 +8
Views 203
Comments 3

IPC: сокеты против именованных каналов

System Programming *
Абсолютные числа большого смысла не имеют, но как сравнение информация представляет некоторую ценность

Условия


Windows 7 x64 с обновлениями
AMD Athlon X2 4600+ (2.41ГГц)
DDR2 2Гб
.Net Framework 3.5, классы из FCL.
Два 64-битных процесса без дополнительных привилегий.
Антивирус Касперского выключен. С ним результаты сокетов существенно хуже.
Сокеты и именованные каналы в асинхронном режиме.
Размеры буферов подбирались оптимальные, эксперементально для каждого вида IPC.
Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Views 30K
Comments 76

Yahoo Pipes на страже автоматизации загрузок

Decentralized networks *


Многим из нас нравится загрузить RSS ленту в utorrent(или ему подобный поддерживающий загрузки с лент), настроить правила и в дальнейшем не заботясь о выходе новых серий любимого сериала, передач, видеть их скаченными по-приходу домой. И все хорошо, когда речь идет о Новафильме или Лосте, но мир не сошелся на них клином, часто хочется настроить автоматическую загрузку с другого трекера. А трекер конечно, как на зло не содержит в своей RSS ленте ссылки на .torrent файлы, ведь авторы хотят чтоб вы постоянно заходили к ним на сайт и набивали счетчик посещений, проводили там свое время.
Это надо исправлять...
Total votes 40: ↑34 and ↓6 +28
Views 2.9K
Comments 18

Пайпы, the pythonic way

Python *
Одни питонисты любят код читаемый, другие предпочитают лаконичный. К сожалению, баланс между первым и вторым — решения по-настоящему изящные — редко случается встретить на практике. Чаще стречаются строки вроде
my_function(sum(filter(lambda x: x % 3 == 1, [x for x in range(100)])))
Или четверостишья а ля
xs = [x for x in range(100)]
xs_filtered = filter(lambda x: x % 3 == 1, xs)
xs_sum = sum(xs_filtered)
result = my_function(xs_sum)
Идеалистам же хотелось бы писать как-то так
result = [x for x in range(100)] \
    | where(lambda x: x % 3 == 1)) \
    | sum \
    | my_function

Не в Питоне?
Зря так думаете...
Total votes 83: ↑81 and ↓2 +79
Views 15K
Comments 81

Процесcы в операционной системе Linux (основные понятия)

Configuring Linux *
Sandbox
Основными активными сущностями в системе Linux являются процессы. Каждый процесс выполняет одну программу и изначально получает один поток управления. Иначе говоря, у процесса есть один счетчик команд, который отслеживает следующую исполняемую команду. Linux позволяет процессу создавать дополнительные потоки (после того, как он начинает выполнение).

Linux представляет собой многозадачную систему, так что несколько независимых процессов могут работать одновременно. Более того, у каждого пользователя может быть одновременно несколько активных процессов, так что в большой системе могут одновременно работать cотни и даже тысячи процессов. Фактически на большинстве однопользовательских рабочих станций (даже когда пользователь куда-либо отлучился) работают десятки фоновых процессов, называемых демонами (daemons). Они запускаются при загрузке системы из сценария оболочки.

Читать дальше →
Total votes 106: ↑68 and ↓38 +30
Views 22K
Comments 37

Команда sponge: «губка» для стандартного ввода

Configuring Linux *
Все мы знаем, что при выполнении команд в шелле мы можем перенаправлять стандартный вывод на стандартный ввод других команд, а также записывать его в файл.

Это достаточно детально описано в главе I/O Redirection в «Продвинутом руководстве по программированию на Bash» (Advanced Bash-Scripting Guide).

В частности, иногда бывает так, что вам нужно прочитать какой-то файл, как-то его обработать (например, выбрать оттуда только те строки, которые подходят под некое регулярное выражение), и затем записать результат в тот же самый файл. Допустим, ваш файл называется «messages.log», и вы хотите оставить в нём только те строки, которые начинаются со слова «Success», двоеточия и пробела (а все остальные строки убрать).

Можно предположить, что для этого подойдёт такая команда:

grep "^Success:\s" messages.log > messages.log

Но это предположение окажется неправильным — при выполнении этой строчки файл messages.log будет открыт на запись и очищен ещё до того, как grep начнёт его просматривать.
Читать дальше →
Total votes 62: ↑53 and ↓9 +44
Views 10K
Comments 23

Pipe matching в ЯП Clojure (метапрограммирование в Lisp для начинающих)

Lisp *Functional Programming *Clojure *
Tutorial


Введение


Несколько дней назад я открыл для себя замечательный ЯП Clojure — один из современных диалектов Lisp, особенностью которого является хорошая реализация средств многопоточности, компиляция в байткод jvm, соответственно возможность использования java — библиотек, jit-компиляция и т.д. Про Clojure можно почитать например тут. Но в этой статье речь пойдёт о метапрограммировании. Lisp устроен таким образом, что данные и код в нём — одно и то же. Объявления функций, макросов, вызовы функций, развёртывание макросов — в Lisp это всё просто списки, возможно вложенные друг в друга.

(defn square [foo] (* foo foo))
(defmacro show-it [foo] `(println ~foo))


Такое единство кода и данных предоставляет мощные возможности для метапрограммирования — код который пишет код, который пишет код, который пишет код и т.д. — это самое обычное дело для программирования на Lisp. В compile-time нам полностью доступен весь функционал языка, мы можем вызывать функции, развёртывать макросы, возможно рекурсивно. Например, если мы определим вот такой макрос:
Читать дальше →
Total votes 21: ↑20 and ↓1 +19
Views 12K
Comments 12

Используем PHP по назначению

Abnormal programming *PHP *Programming *Delirium coding Go *

upd: Осторожно, текст содержит сатиру и кодобред

Язык программирования PHP берёт своё начало в 1995 году и является продуктом эпохи зарождения современных веб стандартов, таких как http (версия 1.0 — 1996), html (версия 2.0 — 1995), javascript (1995 год), url (1990 — 1994 года). Первоначально аббревиатура php имела расшифровку Personal Home Page Tools, далее трансформировавшись в Hypertext Preprocessor или «препроцессор гипертекста». Об использовании PHP в качестве препроцессора и будет посвящено несколько следующих абзацев.
Total votes 38: ↑16 and ↓22 -6
Views 5.7K
Comments 17

Патентование, настолка для программистов, сети в Kubernetes и самокат в подарок

Ingram Micro Cloud corporate blog Server Administration *Conferences DevOps *Kubernetes *


28-29 мая в Сколково пройдет фестиваль конференций РИТ++. На стенде Ingram Micro Сloud мы устраиваем битву в игре-головоломке CloudPipe за главный приз — электросамокат. Побороться за другие награды можно удаленно, регистрация и подробности на cloudpipe.win

И это не единственная активность Ingram Micro Cloud на РИТ++. На разных конференциях можно будет еще послушать выступления наших ребят. Подробности — под катом.
Читать дальше →
Total votes 12: ↑11 and ↓1 +10
Views 3.2K
Comments 1

Как реализованы конвейеры в Unix

VK corporate blog Perfect code **nix *Algorithms *History of IT
Translation

В этой статье описана реализация конвейеров в ядре Unix. Я был несколько разочарован, что недавняя статья под названием «Как работают конвейеры в Unix?» оказалась не про внутреннее устройство. Мне стало интересно, и я зарылся в старые источники, чтобы найти ответ.
Читать дальше →
Total votes 75: ↑75 and ↓0 +75
Views 17K
Comments 21

A Quick Guide To Angular Pipes

Angular *

Impressive web development is the result of a successful synergy of robust back-end and an appealing front-end. Usually, the back-end is thought to be the ‘brains’ of a webpage and the front-end is merely the shiny exterior. However, with the right front-end development framework, powerful computations can happen directly on the front-end as well. Angular happens to be one of such impressive front-end development frameworks. Through its templates, Angular offers the opportunity for data to be processed and formatted in a certain way right there in the HTML code. This is made possible through functions with easy-to-understand syntax and usage, and they are called pipes.

This article will serve as a quick guide to tell you all the meaty stuff to know about pipes and how to effectively use them. Pipes come in various types and can significantly simplify data collection and processing in use cases where the front-end is the main gateway of obtaining the data. The article will also discuss how pipes are tested during the unit testing of Angular applications (which is not as difficult as it may seem for some).

The Ins And Outs Of Angular Pipes

Before moving on to discussing Angular pipes, it is imperative to understand what Angular components and templates are. Pipes are present in the template part of the component, making it necessary to understand the former to grasp the utility of the latter.

Angular applications are fundamentally made up of units called components. Each component is centered around a certain functionality or visual aspect of the application. These components are self-contained and consist of both its working logic along with instructions about its visual rendering. The latter is stored in what are called templates. Templates are simply HTML code that can be in the form of a separate file or inline code within the @Component decorator (which is written in TypeScript). An example of an Angular component can be seen below.

Читать далее
Rating 0
Views 1.5K
Comments 0