Pull to refresh

Практический AJAX: что делать с закладками

Website development *
Примечание: ниже перевод статьи «Ajax Best Practices: Don't Break Bookmarks», посвященной решениям, позволяющим пользователям корректно добавлять в закладки страницы сайта, сделанного при помощи AJAX-методов. Я постарался дополнить ее по мере сил, опираясь на обсуждение предыдущей статьи из серии.

Статья является второй из серии (здесь первая), посвященной устранению критики, которую сейчас так много адресуют использованию AJAX, и обзорам методов, которые помогут сделать ваш сайт чуточку лучше.
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Views 2.7K
Comments 16

Запросы к JavaScript

Lumber room
Есть необходимость: передавать параметры непосредственно JavaScript.
Мы можем передавать параметры через GET, POST, но при передаче этих параметров просто будет загружаться новая страница, т.е. если в кеше браузера есть

some.so/index.php?id=2

а мы запрашиваем

some.so/index.php?id=3

то сервер для нас сгенерирует новую страницу, он не будет брать из кеша some.so/index.php?id=2 (и правильно будет делать).

Таже самая ситуация и с POST, поэтому говорить о том, что методами GET и POST можно передать параметры яваскрипту конечно можно, но это будет не совсем правдой. Т.к. параметры передаются на сервер, там генерируется новый контент, а там можно что угодно делать. Хоть напрямую GET переменные брать из window.location.href, хоть как-то серверным языком каждый раз заново генерить JavaScript. а это всё только имитация запросов к JavaScript.

Однако, есть один символ в стандарте URL, который нам поможет.

Читать дальше →
Total votes 9: ↑7 and ↓2 +5
Views 1.4K
Comments 25

Парсинг GET-запроса в PHP (приколы автоматического парсинга)

Lumber room
Сегодня решил разобраться, как PHP определяет ключ в массив $_GET для параметров, поступивших соответственно методом GET. Честно говоря, такой алогичности в работе этого механизма увидеть я не ожидал. Хотя в целом, почему так получилось, понятно…
Читать дальше →
Total votes 22: ↑15 and ↓7 +8
Views 1.5K
Comments 10

Практический AJAX: что делать с кнопкой «назад» в браузерах

Website development *
Translation
Примечание: статья посвящена обзору проблемы неработающей кнопки «назад» в браузере при использовании AJAX-методов для передачи содержания страниц от сервера к клиенту. В статье рассматриваются основные принципы работы AJAX и возможные пути решения заявленной проблемы. Курсивом даны мои комментарии.

Эта статья является первой из ряда материалов (вторая статья посвящена работе с закладками), направленных на устранение части критики, которую адресуют сейчас AJAX, и предоставляющих обзор полезных методов, которые помогут сделать ваши приложения и веб-страницы, использующие технику AJAX, немного лучше.
Читать дальше →
Total votes 34: ↑28 and ↓6 +22
Views 16K
Comments 27

Getters/Setters getting real

PHP *
Достаточно много видел разных вариантов реализации возможностей которые есть в обычных ОО языках (Delphi, Java, ActionScript) — и которых частенько не хватает php. А именно get & set методы.

В данном топике предлагаю очень простую и эффективную реализацию, которая не содержит ничего лишнего и в тоже время прекрасно реализовывает get/set функционал, позволяющий скрыть сами переменные и в тоже время сделать их read only, write only || read-write.

Читать дальше →
Total votes 18: ↑8.5 and ↓9.5 -1
Views 7K
Comments 50

Типы HTTP-запросов и философия REST

Website development *
Этот пост — ответ на вопрос, заданный в комментарии к одной из моих статей.

В статье я хочу рассказать, что же из себя представляют HTTP-методы GET/POST/PUT/DELETE и другие, для чего они были придуманы и как их использовать в соответствии с REST.
Читать дальше →
Total votes 84: ↑78 and ↓6 +72
Views 758K
Comments 111

Кроссбраузерные аксессоры в JavaScript

JavaScript *

В своём фреймворке AtomJS я активно использую аксессоры — геттеры и сеттеры:

Foo = atom.Class({
    get bar () {
        return this._bar;
    },
    set bar (bar) {
        this._bar = bar;
    }
});


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

Читать дальше →
Total votes 57: ↑50 and ↓7 +43
Views 6.6K
Comments 31

Приводя в порядок POSTs в ASP.NET MVC

ASP *
Translation
В топике описывается один из профессиональных приёмов разработки ASP.NET MVC приложений, который позволяет значительно сократить количество повторяющегося кода в обработчиках POST действий форм. Несмотря, на то, что я узнал о нём ещё во времена первого издания ASP.NET MVC In Action и первой mvcConf, стиль изложения Jimmy Bogard мне показался очень простым и я решил опубликовать вольный перевод для тех, кто ещё не использует этот подход на практике.

Если вы это не используете, тогда мы идем к вам!
Total votes 12: ↑8 and ↓4 +4
Views 6.6K
Comments 1

Google помогает небольшим компаниям начать бизнес в интернете

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

Google представил новую инициативу Get Your Business Online, которая позволяет компании за несколько шагов перенести свой бизнес в интернет, решив на одном сервисе все вопросы, связанные с созданием самого сайта, выбором доменного имени и хостингом. Вчера новый сервис был запущен для Техаса и, как утверждается в рекламном ролике, весь процесс от создания сайта до его публикации будет занимать не более 60 минут (ощущения легковесности процесса не возникает). Конечно, все это бесплатно целый год, по прошествии которого компания может приобрести домен за 2$ в месяц и хостинг за 4.99$ за тот же период, а может и отказаться от продолжения услуги. Также Google обеспечивает поддержку пользователей сервиса в течении 30 дней бесплатно по электронной почте и вдобавок выдает в кредит 75$ для участия в AdWords.

Рекламный ролик Get Your Business Online:


Узнать подробности
Total votes 38: ↑33 and ↓5 +28
Views 699
Comments 17

GridFS vs SQL Server vs Local

.NET *C# *Web services testing *
Sandbox

Для дотошных


В последнее время в среде разработчиков серверных приложений часто возникают споры о том, как лучше управлять фалами и какая технология обеспечивает более быстрые чтение/запись файлов. В сети стали появляться статьи и статейки о сравнительной производительность локальной файловой системы и GridFS. Или о хранении файлов в реляционной базе как BLOB против хранения на жёстком диске в файловой системе. Вот и я решил ввязаться в этот противостояние. Сегодня мы будем сравнивать производительность и накладные расходы MongoDB 2.6.7 x64 GridFS против MS SQL Server Express 2012 v11.0.5058.0 x64 против NTFS. Для эксперимента была использована платформа Windows 7 x64 SP1 на AMD Athlon(tm) II X2 250 Processor 3.00 GHz c 4ГБ ОЗУ 1033 MHz и HDD 600 Gb SATA 6Gb/s Western Digital VelociRaptor 10000rpm 32Mb. После каждого теста компьютер перезапускался, а базы обнулялись. Производительность будем рассматривать на примере файлового сервера на C# под .NET 4.5, код которого прикреплён к статье.
Читать дальше →
Total votes 10: ↑7 and ↓3 +4
Views 5.7K
Comments 2

Подводные камни .load() и .get()

jQuery *
Sandbox
Очень часто возникает потребность в подключении каких-либо шаблонов или какого-либо контента из другого файла. К сожалению, не все могут воспользоваться функцией inlude в PH из-за ограниченности возможностей хостинга. Отсюда возникает потребность к обращению AJAX функций .load() и .get().
Читать дальше →
Total votes 16: ↑4 and ↓12 -8
Views 9.8K
Comments 13

Интересные международные мероприятия сентября

Growth Hacking *
Каждый месяц по всему миру происходят десятки, если не сотни, IT-ориентированных конференций, выставок и других мероприятий.

В очередной раз мы собираем все наиболее интересные международные даты этого месяца для того, чтобы представить читателям «Мегамозга» в одном месте.
Читать дальше →
Total votes 9: ↑9 and ↓0 +9
Views 2.1K
Comments 2

Работа с сервлетами для чайников. GET / POST

Programming *Java *
Tutorial


В прошлой статье Создание сервлетов для чайников. Пошаговое руководство я описал, как создать сервлеты и попытался объяснить, как это работает. В этой статье мы научим наши сервлеты работать с UI через HTTP-запросы GET и POST.

На самом деле, этих запросов намного больше, но для чистоты эксперимента мы разберём только два основных.

  • GET — обрабатывает адресную строку, которая получается при вызове сервлета. Например, site.com/example?action=test&id=10&admin=true
  • POST — обрабатывает загруженный контент (картинку, файл, строки, объектные данные), в общем, всё, что можно передать через HTTP

В Java-сервлете запросы POST и GET обрабатывают соответствующие методы doPost(); и doGet().
Читать дальше →
Total votes 9: ↑5 and ↓4 +1
Views 81K
Comments 6

Эффект кобры. Кейлоггер на eBay и запрет на копипаст пароля

Information Security *


Во времена Британской империи у англичан возникла маленькая проблема на Индийском субконтиненте — кобры. Оказалось, что повсюду чертовски много этих рептилий. А ещё выяснилось, что они ядовиты. Это не нравилось колонистам, некоторые из них умирали. Поэтому британские власти придумали отличный выход. За каждую убитую кобру туземцам стали выплачивать небольшое вознаграждение. Казалось бы, проблема решена.

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

Оттуда пошло выражение эффект кобры. Ситуация, когда принятое для исправления проблемы решение не исправляет эту проблему, а ведёт к прямо противоположному результату.
Читать дальше →
Total votes 30: ↑25 and ↓5 +20
Views 22K
Comments 84

Забавные компьютерные ошибки

History of IT
Следующие забавные и интересные компьютерные (а по сути — человеческие) ошибки когда-то имели место и оставили свой след в мифологии информационных технологий.

Паук смерти


Эта уже старая (примерно 8 лет давности) история прекрасно иллюстрирует, как легко тотальное головотяпство может всё испортить. Джош Брекмэн работал в компании, которая получила крупный заказ на разработку системы управления содержимым для сайта государственной структуры. CMS была нужна для того, чтобы работники могли редактировать контент на сайте. У заказчика уже был крупный сайт, поэтому для переноса старого контента потребовалось какое-то время. Через несколько месяцев новый сайт был готов к запуску.

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

Злостным хакером оказался не кто-то из-за океана — из Китая, России, Индии или ещё какого-нибудь известного своими недружелюбными хакерами государства. Это был googlebot.com. Нет, компания Google не занимается и занималась взломом сайтов госаппарата для того, чтобы вот так глупо нахулиганить. Как выяснилось позже, участия человека не было в принципе. Вот, что произошло на самом деле:
Читать дальше →
Total votes 87: ↑87 and ↓0 +87
Views 39K
Comments 34

Рецепты PostgreSQL: cURL: get, post и… email

PostgreSQL *
Tutorial
Для приготовления cURL в PostgreSQL нам понадобится сам postgres и его расширение pg_curl. (Я дал ссылки на свой форк postgres, т.к. делал некоторые изменения, которые пока не удалось пропихнуть в оригинальный репозиторий. Можно также воспользоваться готовым образом.)
Читать дальше →
Total votes 15: ↑12 and ↓3 +9
Views 8.5K
Comments 10

Postman — Автотестирование метрики в AppMetrica

API *Mobile App Analytics *
Sandbox

1. Введение


Недавно встала задачка периодически проверять, все ли события в мобильном приложении работают корректно, передаются ли в AppMetrica.

Подробности интеграции я опущу, имеется в виду, что она уже есть в МП.

Для проверки нашел два варианта:

  • через web интерфейс
  • через API

Если одно-два события можно посмотреть на web интерфейсе, то, когда их десятки и сотни, без API уже не обойтись.

На всякий случай поясню, что можно конечно же сделать свой бэк, и будет всё работать быстро и надежно, но это дорого в плане разработки и поддержки в дальнейшем, поэтому в этой статье постараюсь описать, как можно построить такую систему минимальными усилиями и с минимальным кодированием.
Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views 2.8K
Comments 2

Односторонние S7-коммуникации в Simatic. Как организовать обмен ПЛК-ПЛК, программируя и загружая только один ПЛК?

Industrial Programming *
Tutorial

S7-соединения, применяемые для обмена информацией между устройствами серии S7-300, 400, 1200, 1500, являются конфигурируемыми. Это означает, что необходимо явно указать устройствам, кто с кем общается. В общем случае эти соединения являются двунаправленными (двухсторонними или же bilaterally), т.е. добавление конфигурируемого соединения происходит для обоих ПЛК, что приводит к необходимости прогрузки обоих ПЛК. Это не вызывает особенных проблем, если оба ПЛК находятся в ведомстве службы АСУТП предприятия, и для обоих ПЛК есть на руках актуальное прикладное ПО. Но встречаются и частные случаи — необходимо наладить обмен между «старым» S7-300 и «новым» S7-1500, причем, исходники старой программы утрачены. Ну, или эксплуатация просто боится трогать ПЛК. Или эксплуатации просто нет, задача организации обмена «висит» на интеграторе «новой» системы, что приводит к предыдущему условию — трогать ППО неизвестной системы никому особо не хочется.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Views 9.2K
Comments 4

5 фразовых глаголов с get и 33 их значения, или Почему студенты не любят английский

EnglishDom corporate blog Learning languages

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

Мы решили запустить новую рубрику и рассказывать про фразовые глаголы весело. Чтобы не зубрить их, а нормально запоминать на примерах из фильмов и сериалов.

И начнем со слова «get». По нашему опыту, студенты делают во фразовых глаголах с ним огромное количество ошибок. Так что не будем затягивать, поехали!

Читать далее
Total votes 32: ↑22 and ↓10 +12
Views 75K
Comments 20

Как Excel и VBA помогают отправлять тысячи REST API запросов

High performance *API *Development for Office 365 *IOT Visual Basic for Applications *
Sandbox

Работая в IoT-сфере и плотно взаимодействуя с одним из основных элементов данной концепции технологий – сетевым сервером, столкнулся вот с какой проблемой (задачей): необходимо отправлять много запросов для работы с умными устройствами на сетевой сервер. На сервере был реализован REST API с оболочкой Swagger UI, где из графической оболочки можно было отправлять только разовые запросы. Анализ сторонних клиентов, типа Postman или Insomnia показал, что простого визуального способа поместить в скрипт массив из необходимого перечня идентификаторов устройств (или любых других элементов сервера), для обращения к ним – не нашлось.

Так как большая часть работы с выгрузками и данными была в Excel, то решено было вспомнить навыки, полученные на учебе в университете, и написать скрипт на VBA, который бы мою задачку решал.

Необходимо было:

·      получать информацию по устройствам с различными параметрами фильтрации (GET);

·      применять изменения в конфигурации по устройствам: имя, профиль устройства, сетевые лицензии и пр. (PUT);

·      отправлять данные для конфигурации и взаимодействия с устройствами (POST).

И сегодня я расскажу вам про то, как с помощью Excel, пары формул и самописных функций на VBA можно реализовать алгоритм, отправляющий любое необходимое количество REST-API запросов с использованием авторизации Bearer Token.

Данная статья будет полезная тем, кто воспользуется данным решением под Windows, но еще больше она будет полезна тем людям, которые хотят использовать данное решение на MacOS (с Excel x64). Как вы уже догадались, ниже будут рассмотрены два варианта реализации под разные системы, так как с MacOS есть нюанс.

Читать далее
Total votes 9: ↑7 and ↓2 +5
Views 9.7K
Comments 4
1