Pull to refresh
1
0
Александр @Funcraft

User

Send message

Информационный поток на Google+ о Ruby, Rails, Sinatra

Reading time1 min
Views2.3K


I18n.locale = :ru — это новости о Ruby/Rails и связанных технологиях на Google+.

UPDATE: черзе год после вышеописанных событий, мы открыли (в дополнение к G+) и рассылку CodingDead. И вот зачем.
Из описания:
1-3 сообщения в день, безопасная для просмотра в офисе информация, не исползуется для рекламы или спама *.
* Оставляем за собой право на нецензурную брань в комментарих к статьям типа: ‘Why Ruby / Rails / #{your_favorite_gem} sucks‘, a также право на рекламу опенсорс технологий и событий Rails-собщества

Selenium: работаем с элементами страницы, используя @FindBy и PageFactory

Reading time4 min
Views104K
В этой статье будет рассмотрена возможность использования аннотации @FindBy для поиска элементов на странице, а так же создание своих классов для работы с элементами и контейнерами вроде форм, таблиц и т.д.
Читать дальше →

Коллизии в 512-битных блоках MD5

Reading time2 min
Views21K
Голландский исследователь Марк Стивенс (Marc Stevens) обнародовал подробности успешной атаки на MD5 (PDF) и выложил программу на C++ для поиска коллизий в пределах одного 512-битного блока данных.
Читать дальше →

Проектирование алгоритмов поисковых систем — путь к успеху проектирования сайтов и оптимизации

Reading time4 min
Views2.9K

Вступление


Самый простой способ разработки методик продвижения и развития сайта в конкретных ПС – это разработка собственной ПС.
Я не говорю о реализации сложных алгоритмов, нам нужны абстрагированные решения. Можно просто представить упрощенную модель алгоритма и работать с ней. При этом важно постараться получить все сопутствующие параметры. Например, примерное время на реализацию, нагрузку на сервера и время работы алгоритмов. Измерив эти параметры, можно получить множество дополнительной информации и использовать ее в своих целях.
Читать дальше →

JavaScript. Оптимизация: опыт, проверенный временем

Reading time10 min
Views42K

Предисловие


Давно хотел написать. Мысли есть, желание есть, времени нету… Но вот нашлось, так что привет, Хабра.
Здесь я собрал все идеи, которые помогали и помогают в разработке веб-приложений. Для удобства я разбил их на группы:
  1. Память
  2. Оптимизация операций
  3. Выделение критических участков
  4. Циклы и объектные свойства
  5. Немножко о DOM
  6. DocumentFragment как промежуточный буфер
  7. О преобразованиях в объекты
  8. Разбитие кода
  9. События перетаскивания
  10. Другие советы

Сейчас речь не пойдёт ни о каких библиотеках. Я постараюсь передать знания о механизмах самого языка, а не их реализациях в библиотеках.

Память

Хоть это и не должно волновать клиентского программиста, но не забываем, что память всё-таки не бесконечна и когда-нибудь может закончиться, например, когда запущено несколько массивных программ: офис, графический редактор, компиляция большой программы и др. Несмотря на то, что приведенный пример тривиален, у меня действительно такое случилось, хоть и не из-за браузера, но он тоже сыграл свою роль: 1,3 Гб оперативы (отладчик, около 30 вкладок), начались тормоза по перегрузке страниц ОП в файл подкачки.
Чтобы уменьшить расход памяти, я предлагаю несколько способов:
Читать дальше →

ЛитТайм.ру – лента книжных новинок

Reading time3 min
Views885
Здравствуйте, друзья. Вроде бы стоит взять пафосную ноту и рассказать о своем мега-проекте, но не получается. Я хочу просто рассказать вам о своем проекте, которым занимался почти 3 года (историю оставлю на потом). Точнее о его первой готовой ступени – ленте выходящих в разных издательствах книг. Пишу потому, что уже кому-то из вас она уже может оказаться полезной. Итак, LitTime.ru

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

Аутентификация в OpenVPN c помощью Рутокен ЭЦП

Reading time4 min
Views33K
image
OpenVPN — кроссплатформенное, гибкое и удобное решение для организации VPN. Для допуска в виртуальную сеть, построенную на базе OpenVPN, клиент должен авторизоваться. В OpenVPN это можно сделать 3 способами:
  • по логину и паролю
  • по ключу и сертификату в файлах
  • по ключу и сертификату на «борту» криптографического USB-токена или смарт-карты
Последний способ является наиболее безопасным. В топике будет описана авторизация в OpenVPN с помощью криптографического USB-токена Рутокен ЭЦП. Рутокен ЭЦП надежно защищен PIN-кодом от несанкционированного доступа и блокируется при исчерпании попыток ввода PIN-кода, поэтому злоумышленник не попадет в VPN даже в случае кражи токена. Кроме того, в Рутокен ЭЦП аппаратно реализованы алгоритмы ГОСТ и RSA, поэтому аутентификация производится «на борту» токена. Благодаря этому закрытый ключ никогда не покидает токен и его невозможно украсть из оперативной памяти компьютера с помощью троянов.

В топике будет показано, как развернуть тестовый VPN, а также корпоративный УЦ на базе open source приложения XCA. С помощью УЦ будет создан ключ и сертификат сервера OpenVPN и произведена инициализация токена клиента. Затем настроим клиент OpenVPN таким образом, чтобы пользователь мог авторизоваться в OpenVPN с помощью Рутокен ЭЦП.
Читать дальше →

Где хранить пользовательские настройки

Reading time2 min
Views3K
Когда-то, во времена Вседозволенности и Хаоса программы хранили настройки пользователей где-придётся. Многие держали одну копию настроек на всю систему. Со временем все ОС обзавелись нормальными профилями пользователей, начали ограничивать доступ к системным папкам и всех программистов стали с яслей учить хранить настройки пользователя в папке (ветке) его профиля. Казалось бы, на том и сказочке конце. Но нет. Есть случаи, когда этот подход не работает. Я продемонстрирую это на примере ошибки (именно архитектурной ошибки, а не банального бага в следствии опечатки) в одном из приложений Google.
Читать дальше →

Использование vkontakte js api для полуавтоматической публикации сообщений из rss лент

Reading time4 min
Views24K

Введение


Данный пост я решил написать после прочтения Автоматическое оповещение читателей о новостях с помощью ВКонтакте. Часть 4, и решить в нем проблему с «access token», путем использования iframe приложений и js api.
После прочтения данной статьи, любой желающий сможет ходить по воде, ловить пули зубами создать iframe приложение, которое умеет публиковать записи на стене группы или пользователя из rss ленты.

Код и буквы

Когда нужен RVM, а когда достаточно rbenv

Reading time2 min
Views17K
В данной статье я не буду вдаваться в подробности работы RVM и rbenv. Информации по данным штуковинам хватает на просторах интернета. Здесь же я хочу попытаться раскрыть вопрос: когда стоит использовать rbenv, а когда нет?

Цель


Для этого давайте для начала разберемся для чего же создавался RVM, а для чего rbenv. Для этого достаточно взглянуть на возможности обоих систем.
Читать дальше →

Доступ к буферу обмена операционной системы из веб-приложения

Reading time5 min
Views25K
Возможно, вам понадобится использование буфера обмена операционной системы прямо со страницы веб-приложения в браузере. Немного изучив информацию можно обнаружить, что сделать это напрямую со страницы HTML средствами javascript невозможно в связи с политикой безопасности, конкретно, запись в него может быть использована в нехороших целях злоумышленниками. Обходных путей несколько, о них можно найти много ссылок и примеров.
Читать дальше →

Смена изображений

Reading time4 min
Views5.9K
Как то раз на просторах интернета наткнулся на одну замечательную галерею — адрес забыл, но идея ее осталась в памяти. И вот на один из сайтов понадобилась какая то нестандартная смена картинок (затухание и сьезжание уже приелись) И вот я вспомнил про нее.



Суть в чем? Чтобы изображение открывалось по частям (квадратам, полосам итп.) при чем не просто появлялось а чтоб все это было напичкано эффектами.

Ну чтож, приступим.
Читать дальше →

50 советов для разработки безупречного дизайна iOS приложения

Reading time12 min
Views58K
Привожу перевод статьи Ника Карсона. В статье собраны вместе, как мне кажется, основные правила построения интерфейса для iOS приложений.

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

2. Ориентируйтесь на устройство при создании приложений: учтите не только размер экрана, но и где и когда устройство используется. Больше всего iPad используется для развлечений между 8-11 часами вечера, перед сном, тогда как iPhone — в очереди на автобус или в кофейне. Учтите различные сценарии использования при разработке приложений – включая и то, как далеко устройство расположено от лица пользователя.

3. Рассматривайте ваше приложение поэкранно. Определите, каковы основные задачи, которые достигаются при использовании данного активного экрана, и затем сделайте так, чтобы пользователь мог решить их, используя минимальное количество дополнительных опций, кнопок и других элементов управления. Избегайте слишком большой функциональной нагрузки на активный экран, в особенности на мобильных устройствах.

4. Разработка программ для мобильных телефонов или планшетов значительно отличается от разработки веб-приложений и даже приложений для стандартного рабочего стола, — каждый элемент занимает на экране определенное место, и это правило необходимо неукоснительно соблюдать. Рассматривайте это скорее как преимущество, чем ограничение: фиксированные шаблоны помогут лучше контролировать размер и расположение каждого элемента, видимого пользователю.

5. При адаптации приложения к экранам различных размеров, помните, что при значительном его изменении – например, от iPhone к iPad – способ использования устройства также изменится. Если размеры ограничены, используйте основные функции приложения, при их увеличении – можно включить любые дополнительные функции, которые не вошли в более сжатую версию, так как у вас появляется возможность обыграть дополнительное пространство.

За остальными 45-ю — добро пожаловать подкат.
Читать дальше →

Демонстрация дизайна — как преподнести работу так, чтобы она вызвала аппетит

Reading time4 min
Views32K
Меня просто бесит, когда менеджер проекта отправляет макет дизайна — письмом, с припиской «Вот, нарисовали. Смотрите. Ждем ваших замечаний». Убил бы.

Такой менеджер, по сути, ломает весь кайф. Он похож на официанта, который, вместо того, чтобы эффектно сорвать крышку с серебряного блюда и устроить обещанное fire-шоу, бесцеремонно грохает поднос на скатерть и бросает рядом спички. Типа, дальше сами разбирайтесь. А в глазах у него читается недвусмысленное: «Штоп вы подавились».


— Это возмутительно! И вот почему:


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

CSS3 с погружением

Reading time7 min
Views36K
CSS3 видели и пробовали все, кого он мог заинтересовать. И закругленные уголки и падающие тени мы уже можем генерировать без лишнего труда.

Но это только поверхностный уровень. Мне пришлось разобраться с новыми возможностями браузеров более подробно, чтобы ответить на возникшие вопросы типа: насколько кроссбраузерны градиенты со множеством цветовых переходов, где и как можно применять сразу несколько теней к блоку, для каких конкретно браузеров применяются префиксы свойств и т.п.

Кроме того, меня интересовала поддержка CSS3 на мобильных платформах, неизученные возможности CSS3, а также генераторы, которые создают кроссбраузерный код. Я попробовал восполнить некоторые пробелы и собрать полезную информацию для тех, кто еще только готовится к погружению.

Браузеры, поддерживающие свойства перечислены в виде CSS комментариев. Генераторы и инструменты чаще всего могут выполнять сразу несколько функций, поэтому в таких случаях я указывал их только там, где они, по-моему, справляются лучше всего.
Читать дальше →

IT образование в рф: реальность или миф?

Reading time5 min
Views20K
Сегодня фраза ит технологии стала настолько модной и часто употребляемой, что даже президент, который всегда славился консервативностью и будто бы принципиальным нежеланием следить за тем, что происходит в стране, пропагандирует их как основу будущего страны. Ведь, по его словам, без них не будет ни производства, ни хорошего образования и вообще ничего хорошего. Это, конечно, все правильно, но существует и другая сторона медали. А есть ли кому эти технологии внедрять и поддерживать? Кто будет их разрабатывать?

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

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

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

Слайдинг в двух — нет, в четырех направлениях

Reading time4 min
Views4.7K
На Хабре не раз встречались статьи про слайдинг экранов под Android ViewPager, ViewPagerIndicator. Я хочу предложить вариант слайдинга в четырех направлениях.


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

Конструктор по созданию уроков JS, Ruby и Python

Reading time1 min
Views2.6K
Стартап Codecademy уже неоднократно упоминался на Хабре в связи с интерактивными обучающими курсами по JavaScript. К настоящему моменту на сайте пара десятков уроков, это совсем мало, ведь каждый урок можно пройти за несколько минут. В общем, они приняли очевидное решение и выпустили конструктор уроков Course Creator.



Course Creator — инструмент для создания и публикации собственных уроков по программированию. Если раньше уроки писали штатные или приглашённые эксперты (с помощью примерно такого же инструментария), то теперь сделать это может любой желающий. Никакой модерации нет, после создания урока автор сразу получает ссылку, которую может распространять на своё усмотрение, в общем, как на Youtube. Вдобавок к JavaScript, поддерживаются также языки программирования Ruby и Python.

Среди всей массы контента UGC модераторы Codecademy будут выбирать достаточно хорошие уроки для размещения на сайте в главном разделе, так что общее качество контента не пострадает.

Документация по Course Creator

Прокачиваем DropBox аккаунт почтой в зоне .EDU за 15 минут

Reading time2 min
Views92K


Многие из нас имеют аккаунт в сервисе Dropbox, о данном сервисе написано много статей и лайф-хаков, но сегодня я хочу вам показать, как можно заполучить заветный e-mail в зоне .edu за 15 минут.

Интересно? Добро пожаловать под кат.

Information

Rating
Does not participate
Location
Казань, Татарстан, Россия
Date of birth
Registered
Activity