Search
Write a publication
Pull to refresh
67
0.1
Ivan Grishaev @igrishaev

Clojure/Lisp

Send message

Мой опыт вывода денег с заблокированного PayPal аккаунта

Reading time7 min
Views54K
Вот уже около 3-х лет занимаюсь интернет коммерцией. Работа в основном направлена на зарубежные сайты по продаже электроники. Начинал бизнес с открытия ebay аккаунта и уже тогда вопрос стал ребром, т.к. для работы с ebay нужен верифицированный аккаунт PayPal. Я являюсь гражданином Украины, следовательно, никаких шансов открыть свой собственный аккаунт у меня не было, т.к. PayPal ни тогда ни сейчас не работает с Украиной, поэтому пришлось просить друга, который проживает в Великобритании, открыть аккаунт на его имя. Впринципе, открытие аккаунта в Англии является делом обыденным. Все что требуется, это действующий банковский счет, после чего нужно пройти несколько этапов для того чтобы подтвердить что вы владелец этого счета. Так же вы указываете свой адрес, который могут попросить подтвердить. Для этого достаточно будет отправить так называемый Bank Statement, т.е. выписку из банка. Выглядит она примерно так:

image

Читать дальше →

10 способов улучшить свои навыки программирования

Reading time4 min
Views89K

1. Выучить новый язык программирования


Изучение нового языка программирования разовьет новые способы мышления, особенно если новый язык программирования использует парадигмы, с которыми Вы еще не знакомы. Многие из приобретенных способов мышления могут быть применены к языкам, которые уже знаете. Возможно, вы даже полюбите новый для Вас язык программирования настолько, что начнёте использовать его для серьёзных проектов.

Среди языков программирования отличный познавательный эффект и наверстывание опыта дают: Lisp (или Scheme), Форт, PostScript или Factor (стековые языки программирования), Haskell (строго типизированный, чистый функциональный язык) либо OCaml (объектно-ориентированный язык функционального программирования), Пролог (логическое программирование), Erlang (отличные паралельные вычисления).

Читать дальше →

Сравнение эффективности способов запуска веб-приложений на языке Python

Reading time8 min
Views16K
Последнее время в области веб-разработок стал набирать популярность язык программирования Python. Однако, массовому распространение Python мешает проблема эффективного запуска приложений на этом языке. Пока, в большинстве случаев, это удел выделенных или виртуальных серверов. Модульные языки в отличии от монолитного в базовой функциональности php на каждый запрос подгружают как минимум runtime-библиотеку, а как максимум — ещё несколько десятков запрашиваемых пользователем модулей. Поэтому классический подход наподобие mod_php для Python и Perl не очень уместен, а держать приложение постоянно в памяти было дороговато. Но время движется, техника стала мощнее и дешевле, и уже достаточно давно можно спокойно говорить о постоянно запущенных процессах с приложением в рамках массового хостинга.

О чём тут

Время от времени, в сети появляются различные предложения как запустить приложение на Python. Например, недавно хостинг Джино уникально поправил mod_python и предложил хостинг именно с его помощью. Следом за ним, некий хостинг Locum вообще отринул mod_python с его безопасностью (создаётся впечатление, что суть самобытная безопасность — это единственная проблема АйТи на пути к нирване) и провёл победоносное тестирование modwsgi против fastcgi. Комьюнити же, судя по проведённому мною поиску, разрывается между mod_python и FastCGI. Причём, FastCGI обычно имеется ввиду тот, что идёт в поставке Django — flup. Являясь популярным хостингом Python-приложений, мы не смогли пройти мимо и решили внести свою лепту в эту священную войну.
Читать дальше →

Главное – хвост! или Отказ от регистрации 2

Reading time4 min
Views1.4K
Заметка «Отказ от регистрации» взбудоражила мой ум и я часа 2 не мог уснуть (или это была чашка кофе на ночь?..)

Я и раньше читал про «мягкую» регистрацию, или отложенную регистрацию, или «ненавязчивую» регистрацию и тогда я для себя решил, что выходом будет OpenID и всё, что на него похоже. Но при работе над текущим проектом я понял, что это мне совершенно не подходит.

Решение пришло как раз перед сном, а реализацию сделал сегодня утром. Остался доволен.

Но, обо всём по порядку.

Читать дальше →

Многопользовательский чат на BAT

Reading time3 min
Views22K
Был период, когда в универе задали сделать несколько чатов. В зависимости от вариантов, были заданы различные способы взаимодействия программ от сокетов до майлслотов (mailslot). Когда задания были прикончены, остались силы взяться за скрипты BAT. Вот что получилось…



Всё что нужно для запуска:
1. Взять код по ссылке в конце статьи
2. Сохранить код в файл *.bat
3. Положить файл в сетевую папку
4. Запустить файл с разных компов (можно и с одного)

В комментариях предложили использовать совместно с DropBox, но говорят — что работает весьма не быстро.
Читать дальше →

NumPy, пособие для новичков. Часть 1

Reading time19 min
Views245K
NumPyLogoNumPy — это расширение языка Python, добавляющее поддержку больших многомерных массивов и матриц, вместе с большой библиотекой высокоуровневых математических функций для операций с этими массивами.

Первая часть учебника рассказывает об основах работы с NumPy: создании массивов, их атрибутах, базовых операциях, поэлементном применении функций, индексах, срезах, итерировании. Рассматриваются различные манипуляции с преобразованием формы массива, объединение массивов из нескольких и наоборот — разбиение одного на несколько более мелких. В конце мы обсудим поверхностное и глубокое копирование.
Читать дальше →

10 «однострочников», которые произведут впечатление на ваших друзей

Reading time13 min
Views42K
За последнюю неделю появилось несколько топиков с названием «10 однострочников на <MY_LANGUAGE>, которые произведут впечатление на ваших друзей», которые содержат однострочное решение нескольких простых задач, демонстрирующее достоинства и «крутость» любимого языка программирования автора. Я решил перевести их и для сравнения собрать в одном топике. Вся волна началась (вроде как) со Scala.
Итак, поехали!
Читать дальше →

Стартапомания: как перестать искать богатых лохов и сменить галстук на шлепанцы

Reading time5 min
Views1.7K
Как ни странно, значение слова «стартап» за последние годы получило множество различных толкований, не смотря на то, что изначально, в классическом понимании этого слова, стартап – это всего лишь компания-новичок, фирма с короткой жизнью, недавно начавшая вести свою операционную деятельность. Будем придерживаться этого толкования и в данной статье.
Читать дальше →

Тестируйте ПО с Фиксбером

Reading time3 min
Views8.6K
Привет, Хабражители!

Уже довольно давно мы не писали постов о площадке услуг по тестированию ПО Fixber.com, и вот сейчас мы готовы рассказать вам, что же интересного и нового появилось на ней за это время.

Есть как интересные масштабные изменения, так и небольшие, но от этого не менее важные.



Всем кому интересно, добро пожаловать под кат.
Читать дальше →

Kango — фреймворк для создания кроссбраузерных расширений

Reading time4 min
Views8K

Вступление

Kango позволяет создавать расширения для популярных браузеров используя только JavaScript, причем код един для всех браузеров. На данный момент поддерживается Chrome, Firefox, Internet Explorer (в публичном доступе только версия с поддержкой Chrome и Firefox) и ведется работа над поддержкой Opera и Safari. Ниже будет рассмотрено как можно быстро создать простой кроссбраузерный Gmail Checker

Что должно получиться в итоге:



Читать дальше →

Элемент input в html 5, мультиаплоад

Reading time3 min
Views56K
У элемента input в HTML 5 появился атрибут multiple, с помощью которого мы можем выбрать для загрузки несколько файлов. Этот атрибут принимает только одно значение «multiple», в живую будет выглядеть так:

<input type="file" multiple="multiple" name="files[]" />


Обратите внимание на name, мы явно в нем указали, что это массив.

Сразу появляется вопрос, какой браузер это новшество не понимает, ответ легко предсказуем, это семейство Internet Explorer. Начиная с 9 версии и ниже, они не поддерживают этот функционал и просто проигнорируют атрибут, искренне надеюсь что в финальной 10 версии они это поправят.
Кроме того что, мы дали пользователям загрузить сразу много файлов, мы должны позаботиться о них, и дать им возможность загрузит именно те файлы которые нам необходимы. И тут на помощь приходит еще один новый атрибут accept. Который принимает "MIME Media Types".

<input type="file" multiple="multiple" name="files[]" accept="image" />

Читать дальше →

Dropbox — получаем дополнительные 9 Гб за один день

Reading time2 min
Views12K
Сервис Dropbox я начал использовать совсем недавно. Кстати, когда попробовал, долго недоумевал, почему я начал использовать его только сейчас, хотя слышал о нем давно — уж очень удобно все.

Как известно, после регистрации для бесплатного аккаунта доступно пространство в 2 Гб. Это пространство можно увеличить до 11 Гб различными способами. Далее я расскажу несколько подробнее обо всех известных способах, а так же будет небольшой лайфхак.

Читать дальше →

Выпущен Linux Mint 11 «Katya»

Reading time1 min
Views2.9K
Сегодня вышел релиз Linux Mint 11 «Katya».
Release Candidate уже обсуждался на Хабре.
Для тех, у кого установлен RC достаточно установить все обновления 1-го и и 2-го уровня.

Дистрибутив основан на Ubuntu 11.04, ядре 2.6.38. По сравнению с предыдущей версией, OpenOffice заменён на LibreOffice, Rythmbox на Banshee. Подробности о нововведениях версии можно прочитать здесь и здесь. Да, Gnome 2.32, а не 3.0, как планировалось когда-то.
Читать дальше →

Фильм «Жизнь за один день» выходит в прокат в России

Reading time1 min
Views4.7K
2 июня в российский прокат выходит лента «Жизнь за один день», рассказывающая об одном дне из жизни людей на нашей планете. Уникальность фильма заключается в том, что он был составлен из видеороликов, снятых пользователями YouTube 24 июля 2010 года. Режиссером фильма выступил Кевин Макдональд, а продюсером Ридли Скотт. Среди авторов, чьи ролики были отобраны из 80000 присланных, есть и россияне.


Кевин МакДональд так рассказал об этом фильме: «“Жизнь за один день” — прекрасная возможность услышать голоса простых людей, описывающих мир таким, каким они его видят, рассказывающих о своих страхах и радостях. Я всегда знал, что этот проект скажет что-то удивительное в определении нас как вида, определении наших ценностей. Однако я и не предполагал, что результат окажется настолько эмоциональным».

Если вы не успели посмотреть трансляцию фильма на YouTube или хотите снова пережить один день из жизни планеты Земля, приходите и смотрите!

Команда YouTube

Пять способов вызвать функцию

Reading time5 min
Views374K
Мне часто приходится сталкиваться с JavaScript-кодом, ошибки в котором вызваны неправильным понимаем того, как работают функции в JavaScript (кстати, значительная часть такого кода была написана мной самим). JavaScript — язык мультипарадигменный, и в нем имеются механизмы функционального программирования. Пора изучить эти возможности. В этой статье я расскажу вам о пяти способах вызова функций в JavaScript.
Читать дальше →

Класс-клиент goo.gl и настройка API

Reading time4 min
Views36K
UPD: репозиторий теперь на Гитхабе.

Здравствуйте, коллеги!

Помню, в свое время меня очень обрадовала новость, что у гугловской сокращалки урлов появились официальные API. В то время я как раз разрабатывал приложение, которому часто требовалось сокращать ссылки новостных лент. Я как раз прикручивал bit.ly, но испытал соблазн попробовать новый сервис от Гугла. Воспользовавшись документацией, я за несколько часов набросал базовый функционал и встроил скрипт в проект.

С течением времени в скрипт вносились изменения, и, наконец, я решил дополнить код комментариями, написать простую документацию и выложить всё на гуглокод.

Основные возможности и особенности класса от конкурентов:
Читать дальше →

Как привлечь пользователей в ваш стартап

Reading time6 min
Views1.4K
Наиболее частый вопрос, который я слышу от молодых предпринимателей — «Как я заполучил пользователей?»

И вот как я это делаю.

Обо мне

(испытываешь странное чувство от описания себя, но в случае если вы читаете это и удивляетесь, кто же этот парень… на самом деле я всего лишь пытаюсь помочь).

Я сделал блог с 5 миллионами читателей, рекламную биржу которая охватывает больше людей чем Facebook, написал книгу которая была 12-ой на Amazon и сделал еще кучу всяких разных странных вещей, которые популярны и приносят деньги. Я создал новую растущую компанию социальных покупок. Я ангел-инвестор и советник в дюжине разных компаний и одном университете. Я присутствую на нескольких журнальных обложках и тут (оцените количество просмотров и комментарии людей, которые желали бы чтобы их «папочка был так же крут» как я).
Читать дальше →

Эмулятор компьютера с linux на JavaScript

Reading time2 min
Views46K
Никакой серверной части. Только JS: полноценный эмулятор компьютера с линуксом на борту.

bellard.org/jslinux
(внимание, только хром и FF4)

Я долго с ним игрался — это не имитация, линукс ведёт себя как настоящий линукс — компилированные программы работают, ошибки в них вызывают segmentation fault, повреждение корневой файловой системы вызывает бурю возмущения в dmesg и т.д.
Эмулятор PC на JS с линуксом на борту

dd показывает при работе с памятью более чем приличную производительность — более 40 мб/с (не забываем, что это эмулятор, и что это JS в вашем браузере!).

Я никогда не думал, что мы доживём до подобного.

… А теперь начинается оргия:

* С использованием локального хранилища мы можем организовать диски (каждый key-value соответствует одному сектору).
* С использованием web-socket мы можем создать паравиртуализированный драйвер сети с выходом на железный машрутизатор и получить нормальную сеть.
* С использованием существующих технологий (NUMA, DRBD, corosync) можно организовать вычислительный кластер из браузеров.

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

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

Никто не мешает создать паравиртуализированный драйвер видео с помощью canvas, у вас есть webGL, для которого можно написать свой вариант cuda и получить довольно мощную акселерацию вычислений…

Ну и финал — запуск хрома внутри эмулируемой виртуальной машины.

Итак, эмуляция дошла до браузеров…

Плагин для Хабрахабра — сколько новых топиков?

Reading time1 min
Views905
Сделал небольшой плагин, который отображает количество новых хабратопиков:


В настройках можно установить интервал обновления, а так же раздел, в котором проверять обновления: «лента» (захабренные и новые, если есть аккаунт на хабре) и «все».

Импорт сайтов из разных CMS на Drupal

Reading time6 min
Views6.5K
Я думаю, что у каждого, кто использует Drupal в своей работе, периодически возникают задачи переноса сайтов, работающих на других CMS, или просто задачи импорта данных на платформу Drupal.

Такие задачи периодически возникают и у меня, но раньше я весь импорт делал написанием скрипта на php, который просто записывает нужную информацию прямо в БД Drupal. Я, конечно же, знал, что есть механизмы, которые позволяют добавлять данные, используя API Drupal, но как-то разбираться с ними было лень, да и скрипт для записи сразу в БД пишется довольно быстро.

Когда сайт на Drupal достаточно простой и на нем не используются какие-то сложные модули (и их мало), то такой принцип импорта (прямая запись в БД) себя оправдывает. Но что делать, когда нужно перенести данные на очень сложный сайт со множеством модулей и их сложной настройкой?

В этом случае очень сильно поможет знание API Drupal'a, т.к. всю работу по правильному апдейту всех взаимосвязанных таблиц с учетом всех хитрых настроек за нас сделает Drupal.

Как оказалось, использование API Drupal'a не то чтобы просто, а очень просто. Про это и будет сегодняшняя статья.
Читать дальше →

Information

Rating
5,192-nd
Location
Воронеж, Воронежская обл., Россия
Date of birth
Registered
Activity