Как стать автором
Обновить
-1
0
smartking @abiruba

Пользователь

Отправить сообщение

Поём вместе с Sinatra. Часть первая. Первое знакомство

Время на прочтение3 мин
Количество просмотров20K
Доброго времени суток!

Что такое Sinatra


Sinatra — маленький, но довольно интересный DSL (Domain-specific language) фреймворк, написанный на Ruby. В отличие от Ruby on Rails он не следует типичному паттерну MVC (Model — View — Controlller). Sinatra создавался для того, чтобы «программист смог быстро создать веб приложение, написанное на Ruby с минимальными усилиями.

Для того, чтобы воспользоваться Sinatra нам неорбходимо его установить. Сделать это можно следующей командой в RubyGems:

gem install sinatra

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

gem install shotgun

Ну вот и всё! Всё необходимое для работы у нас есть. Настал момент для творчества. Приступим…
Читать дальше →
Всего голосов 36: ↑31 и ↓5+26
Комментарии46

Онлайн-репетитор по Python

Время на прочтение1 мин
Количество просмотров24K
Для курса по программированию MIT разработан интерактивный инструмент Online Python Tutor, он в графическом виде показывает изменение стека и кучи на каждом шаге выполнения кода. Таким образом, онлайновый «наставник» как бы наглядно объясняет студенту работу программы.



В окно редактора можно скопировать любой код или посмотреть несколько уже готовых простеньких примеров (факториал, квадратный корень, последовательность Фибоначчи и т.д.). Навигация осуществляется стрелками на клавиатуре. Студенты, изучающие Python, могут увидеть и лучше понять работу кода.
Всего голосов 88: ↑82 и ↓6+76
Комментарии30

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

Время на прочтение11 мин
Количество просмотров14K
Привет, Хабр.

Сегодня я расскажу о своих достижениях в области моментального изменения страницы — динамической смене языка. Эта штука понадобилась мне совершенно недавно, а так как сторонним реализациям я не доверяю (даже как-то и не нашёл их), то пришлось написать свою. За время её использования (где-то около полугода) я исправил все самые заметные баги (но это не означает, что их там больше не осталось :) ), и теперь представляю рабочую версию.

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

Для того чтобы не путаться, я определю для данной статьи следующий перечень терминов:
Словарь — хранилище ключей, по которым осуществляется доступ к локализации на данном языке. По сути дела представляет собой обычный JavaScript-объект, где свойства — ключи доступа, а их значения — переведенные строки.
Хэш — объект, который является результатом упорядоченного слияния словарей; общий словарь, из которого впоследствии ведётся выборка перевода.

Теперь более детально.
Читать дальше →
Всего голосов 43: ↑36 и ↓7+29
Комментарии27

Улучшаем юзабилити за 5 минут

Время на прочтение4 мин
Количество просмотров7.3K
В этой блогозаписи я намерена поделиться несколькими такими советами по увеличению юзабилити сайта, каждый из которых очень лёгок в реализации. Не все они кросс-браузерны, но всё равно они «глазурь на тортике»: читатель и не заметит, что их нет.

1. Отображайте нажатия кнопок и кнопкоподобных ссылок


Мой излюбленный совет. Когда стиль кнопки задаётся в CSS, или когда для отображения необычной кнопки используется рисунок (либо как фон, либо как элемент <img />), то кнопка не реагирует на нажатие во всех или в некоторых браузерах (зависит от ситуации). Вот какой простой уловкою вы можете дать знать посетителю сайта, что он и впрямь нажал на нечто нажимаемое:

.mybutton:active {
   position: relative;
   top: 1px;
   left: 1px;
}

Этим кодом кнопка смещается на 1 пиксел направо и на 1 пиксел вниз, когда её нажимают. Испробуйте: выглядит весьма убедительно.

Есть другие, не менее быстрые варианты: придать границе свойство inset, указать свойству text-indent значение 1px, изменить направление градиентного фона (что можно сделать быстро, если для этого не придётся прибегнуть ко графическому редактору, то есть если где-то ещё на сайте используется готовый перевёрнутый градиент), или комбинация нескольких из них.

2. Плавные переходы (CSS3 transitions)


Читать дальше →
Всего голосов 206: ↑179 и ↓27+152
Комментарии45

Сети для самых маленьких. Часть вторая. Коммутация

Время на прочтение18 мин
Количество просмотров773K


После скучного рассказа о подключении к кошкам переходим к настройке сети. В этот раз темы будут для новичков сложные, для старичков избитые. Впрочем сетевым аксакалам едва ли удастся почерпнуть что-то новое из этого цикла. Итак, сегодня:
а) аккуратно впитываем теорию о коммутаторах, уровнях сетевой модели, понятии инкапсуляции и заголовков (не пугайтесь — еще не время),
б) собираем спланированную в нулевой части цикла сеть,
в) настраиваем VLAN'ы, разбираемся с access и trunk-портами и тегированными Ethernet-фреймами,
г) соотносим текущие знания со стеком протоколов TCP/IP и моделью OSI (да, наконец-то мы ее коснёмся).



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

Читать дальше →
Всего голосов 92: ↑88 и ↓4+84
Комментарии45

Изучить jQuery за 30 дней

Время на прочтение1 мин
Количество просмотров25K


Каждый программист оказывается в ситуации, когда ему необходимо изучить какую-либо новую технологию или же фреймворк. Если в вашем ToDo листе в графе «Изучить» есть такой компонент, как jQuery, то данный курс для вас.
Курс состоит из 30 видео уроков, длительность каждого из них составляет 15 минут. Чтобы зарегистрироваться на курсе, вам необходимо оставить свой e-mail на странице Learn jQuery in 30 days.

На данный момент в курсе присутствуют следующие темы:
  1. DOM Traversal
  2. Events
  3. DOM Manipulation
  4. Effects
  5. AJAX
  6. Plugin Development


Присоединитесь к 30942 студентам, которые хотят изучить jQuery.

Как подсказывает alphard, курс можно скачать с rutracker'а.
Всего голосов 92: ↑73 и ↓19+54
Комментарии42

Google близка к запуску своего облачного сервиса хранения файлов Google Drive

Время на прочтение1 мин
Количество просмотров1.4K
Поисковый гигант планирует в ближайшие недели серьезно потревожить нервы Dropbox, введя в строй свой новый проект — сервис Google Drive, который будет предназначен для облачного хранения пользовательских файлов.

Никаких особых отличий от уже существующих на рынке решений, таких как DropBox, SkyDrive или Box.net, по всей видимости, не планируется. Вполне традиционно пользователи смогут получить доступ к с своим файлам не только с компьютера, а и с мобильных устройств. Объем предоставляемого дискового пространства пока не известен, однако легко можно предположить, что для массового привлечения новых пользователей предложение поискового гиганта будет весьма заманчивым.

Сервис Google Drive будет бесплатным и для частных лиц, и для компаний, однако же, за дополнительное место на серверах надо будет заплатить пока неизвестную сумму. Также ожидается, что сервис станет частью Google Apps, а не, как можно было предположить, невероятно быстро растущей, по словам самой Google, социальной сети Google+.

Стоит напомнить, что еще в 2007 году Google планировал запуск сервиса G Drive, который должен был позволить хранить музыку и документы в интернете, однако эти планы так и не были реализованы.

[Источник]
Всего голосов 48: ↑39 и ↓9+30
Комментарии70

Почему стоит пользоваться PDO для работы с базой данных

Время на прочтение9 мин
Количество просмотров326K

Перевод статьи Why you Should be using PHP’s PDO for Database Access.

Множество PHP-разработчиков привыкли использовать для работы с базами данных расширения mysql и mysqli. Но с версии 5.1 в PHP существует более удобный способ — PHP Data Objects. Этот класс, сокращенно именуемый PDO, предоставляет методы для работы с объектами и prepared statements, которые заметно повысят вашу продуктивность!

Введение в PDO


«PDO – PHP Data Objects – это прослойка, которая предлагает универсальный способ работы с несколькими базами данных.»

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

Эта статья написана для людей, которые пользуются mysql и mysqli, чтобы помочь им в переходе на более мощный и гибкий PDO.
Читать дальше →
Всего голосов 127: ↑115 и ↓12+103
Комментарии165

Бесплатная электронная книга по гибким методологиям разработки

Время на прочтение2 мин
Количество просмотров51K

Хабравчане, позвольте вам представить мой небольшой и скромный труд (чуть больше 100 страниц) по гибким методологиям разработки. Электронная книга доступна бесплатно для скачивания со следующих сервисов в PDF:

Кроме классического Scrum, в книге также описываются и разнообразные лучшие практики, которые отлично интегрируются в данный управленческий фреймворк для управления продуктом, командой, для организации аналитики и тестирования.
Читать дальше →
Всего голосов 144: ↑136 и ↓8+128
Комментарии79

Онлайн-телефон на PROhq — новый инструмент для фриланса

Время на прочтение3 мин
Количество просмотров3.7K
image

Описание услуги онлайн-телефон на PROhq
Современные компании, занимающиеся организацией различных способов связи, постоянно разрабатывают новые и удобные сервисы, с помощью которых клиент может быть на связи практически постоянно. Так, кроме сотовой связи, существуют и такие интернет-сервисы, с помощью которых можно совершать звонок из сети на любое устройство, способное принять вызов.Такая возможность доступна и пользователям биржи удаленной работы PROhq, которая в результате интеграции с Tipmeet предлагает онлайн-телефон непосредственно на сайте. Данная услуга значительно расширяет возможности каждого зарегистрированного фрилансера, превращая личный кабинет на сайте в современный технологичный офис.
Читать дальше →
Всего голосов 8: ↑4 и ↓40
Комментарии2

Анонимизация и деанонимизация в сети Интернет

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

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

image
Читать дальше →
Всего голосов 52: ↑36 и ↓16+20
Комментарии77

Резервное копирование данных в MySQL

Время на прочтение5 мин
Количество просмотров151K
Резервное копирование базы данных — это такая штука, которую вечно приходится настраивать для уже работающих проектов прямо на «живых» production-серверах.
Подобная ситуация легко объяснима. В самом начале любой проект еще пуст и там просто нечего копировать. В фазе бурного развития головы немногочисленных разработчиков заняты исключительно прикручиванием фишек и рюшек, а также фиксом критических багов с дедлайном «позавчера». И только когда проект «взлетит», приходит осознание, что главная ценность системы — это накопленная база данных, и её сбой станет катастрофой.
Эта обзорная статья — для тех, чьи проекты уже достигли этой точки, но жареный петух ещё не клюнул.
Читать дальше →
Всего голосов 88: ↑84 и ↓4+80
Комментарии52

Аспирантура в Швейцарии, собственный опыт и наблюдения

Время на прочтение7 мин
Количество просмотров35K
В своем посте я хотел бы рассказать об аспирантуре в Европе в области Computer Science — в частности, в Швейцарии, базируясь на собственном опыте прибывания здесь в течении года и будучи PhD студентом. Прежде всего, хотелось бы рассказать больше подробностей о повседневных вопросах, связанных не столько с научной деятельностью, сколько с повседневными заботами — как, что, почему, для чего и что дальше.
Читать дальше →
Всего голосов 49: ↑47 и ↓2+45
Комментарии61

Топ-10 советов о том, как увеличить скорость загрузки страницы

Время на прочтение8 мин
Количество просмотров233K
Я думаю ни для кого не секрет, что скорость загрузки страницы влияет на множество факторов. Если кто-то не в курсе, то вкратце скажу следующее, что скорость загрузки влияет не только на то, дождется ли посетитель, когда загрузится Ваш сайт, но и на SEO оптимизацию. Ведь на сегодняшний день уже многие поисковые системы при ранжировании сайтов, начали учитывать скорость загрузки страницы. Поэтому чем быстрее будет грузиться Ваш сайт, тем больше посетителей Вы можете получить с поисковых систем, а, следовательно, и больше денег на этом заработать.

Поэтому в этой статья я решил собрать топ-10 советов о том, как же можно увеличить скорость загрузки веб-странички и сайта в целом. Статья не претендует на гениальность и рассчитана на новичков.
Читать дальше →
Всего голосов 141: ↑80 и ↓61+19
Комментарии61

Обычная (или не совсем обычная) транслитерация на Python

Время на прочтение7 мин
Количество просмотров40K
Как-то раз возникла необходимость написать транслитерацию на Python — из кириллицы в латиницу. Из слова «ситх» получается «sith», а из «шелест» выходит «shelest».

Казалось бы, чего тут вообще писать — задача едва сложнее print "Hello world". И это отчасти так — но не совсем.

Дело в том, что некоторые буквы в русском языке при транслитерации преобразуются не в одну, а сразу несколько латинских букв: это Ж, Ц, Ч, Ш, Щ, Ю и Я. По сути, если бы правилами транслитерации предполагалось преобразовывать их в одну латинскую букву, то транслитерация русского в английский действительно была бы не намного сложнее той самой простейшей программы.

Но, поскольку правила транслитерации мы менять точно не собираемся, то посмотрим, что получится при использовании обычной транслитерации.

К примеру, фраза «ШАПКА и Юля» преобразуется в «SHAPKA и YUlya», либо в «ShAPKA и Yulya» — в зависимости от того, что задано в таблице транслитерации для «Ш» и «Ю» (иногда задаётся «SH» и «YU», а иногда «Sh» и «Yu»).

То есть регистр следующей буквы в стандартных функциях транслитерации не учитывается, и все буквы в верхнем регистре заменяются по общим правилам. Поэтому в ходе транслитерации для слов «ЧАША» и «Щи» легко получается что-то вроде «ChAShA» или «SCHi», когда реально мы скорее хотели получить «CHASHA» и «Schi».

Тем не менее, все найденные реализации транслитерации из кириллицы в латиницу на Python, как выяснилось, эту особенность не учитывали. Это и многочисленные решения, приведённые на форумах, и библиотека pytils, реализующая транслитерацию в одном из своих модулей.

Значит, напишем свою функцию транслитерации, с блэкджеком и^W^W^W^H^H. :)

Читать дальше →
Всего голосов 36: ↑29 и ↓7+22
Комментарии31
12 ...
141

Информация

В рейтинге
Не участвует
Откуда
Беларусь
Дата рождения
Зарегистрирован
Активность