Блог

Эмулятор Андроида под Windows

Это правда, что для Windows нет нормального эмулятора и все, что есть - платное? Просто на работе парень, который мне подчиняется пришел и сказал, что нужно купить лицензию какого-то эмулятора, который стоит $300 в год. Бесплатно можно использовать только в не коммерческих целях, а мы то коммерческая организация и нарушим закон, если будем пользоваться. Проект короткий и покупать ради него не вижу смысла. 

Сообщения Notifications на андроиде

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

У меня есть Apple Developer аккаунт и я быренько набросал приложение для iPhone и уже оттестировали его. А вот для андроида я никогда не писал и особо не планирую. Есть ли какой-то быстрый способ проверить - доходят мои сообщения для телефонов этой платформы? 

Восстановление удаленных данных в SQL Server

У нас на работе парень (извинюсь, но он из Индии) запустил update без указания секции where прямо на боевой базе данных. Результат - записи всей таблицы обновились, хотя ему нужно были изменить только одну. Ну со всеми бывает, надеюсь, что будет редко и меня обойдет.

Самое обидное, что он делал все по правилам - открыл транзакцию, запустил обновление, увидел, что изменено 11 тысяч строк вместо одной и почему-то проигнорировал и закомитил данные. Только потом увидел свой косяк.

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

Денвер на английском

Сегодня на работе кинули клич о том, как можно использовать Windows для PHP разработки. Когда я последний раз это делал, то использовал Денвер, но это было много лет назад. Решил попробовать найти его и установить и столкнулся с проблемой - он на русском и на мою английскую версию Windows установить не получилось, потому что там задают какие-то вопросы в консоли, которые я просто не могу прочитать, я вижу только бред из каракуль. 

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

Существует ли англоязычная версия? Если ли что-то англоязычное, на подобии Денвера? 

Поддержка зоопарка при программировании

Меня, как Web программиста стало сильно раздражать  разнообразие различных версий IE. В любой документации при заказе клиентом сайта я вижу, что мои сайты должны поддерживать последнюю версию Chrome, последнюю версию Firefox и Internet Explorer 8, 9 и 10. Я понимаю своих клиентов, потому что они не хотят расстраивать своих посетителей, которые не могут или не хотят переходить на новые версии браузеров от Microsoft. Но я не понимаю саму MS. 

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

Та же песня и с Андроидом. Я не представляю, как программисты поддерживают огромное количество разных вариаций, которые не совместимы друг с другом? 

Язык программирования Hack

Компания Facebook выпустила собственный язык программирования, который они назвали Hack. Достаточно громкое название. 

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

С точки зрения простоты - программисту все равно нужно думать о типах данных и понимать, какие они бывают и как работают, иначе просто и быть не может. Так что отсутствие необходимости писать тип не дает особо преимуществ. 

Как получить выборку с 6 до 6 вечера

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

select convert(varchar(10), StartDate, 102)  as StartDate, count(*)
from TableName
group by convert(varchar(10), StartDate, 102)
order by 1 desc

WCF или ASP.NET Web API

Блин, ну что Microsoft не спится. Был WCF, работал отлично и можно было создавать даже REST сервисы. Но вдруг появляется ASP.NET Web API. Постоянно у них там что-то меняется полностью в корне и потом переделывай свои приложения. Я понимаю, что новые их технологии супер пупер и их нужно любить и целовать, но реально, уже задолбался изучать, что они там нового создали. 

Пошел читать, что это за зверь ASP.NET Web API и зачем он вообще нужен и почему не смогли обойтись WCF. Я уверен, что новый ASP.NET Web API крутой, но просто уже такой зоопарк технологий, что голова раскалывается. 

Тип данных при поиске в базе данных

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

Не все еще перешли на Unicode и некоторые до сих пор используют varchar, хотя давно уже пора перейти на nvarchar. Проблема в том, что Dapper в качестве строк использует как раз nvarchar, а Transact-SQL оказывается не очень дружит с преобразованиями строк.

Отступы в CSS

Больше всего ненавижу, когда WEB программисты пишут что-нибудь подобное в самом начале своего CSS файла:

html, body, div, h1, h2, h3, h4, h5, h6, ul, ol, dl, li, dt, dd, p, pre, form, table, th, td, img {

margin: 0;

padding: 0;

}

Самое страшное в этом списке - это тэг <p>. Он был создан для того, чтобы у него были отступы и убивать их в самом начале CSS, а потом переопределять в каждом файле - самоубийство.

О блоге

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

Обратная связь

Без проблем вступаю в неразборчивые разговоры по e-mail. Стараюсь отвечать на письма всех читателей вне зависимости от страны проживания, вероисповедания, на русском или английском языке.

Пишите мне