Как стать автором
Обновить
1057.02

Программирование *

Искусство создания компьютерных программ

Сначала показывать
Период
Уровень сложности

Пора ли переходить на Swift?

Время на прочтение5 мин
Количество просмотров21K
Сегмент мобильной разработки регулярно предлагает участникам рынка новый инструментарий. О том, стоит ли использовать такую новую для программирования под iOS концепцию, как дженерики, а заодно о том, пора ли переходить на Swift, мы поговорили с Максимом Соколовым, специалистом по мобильной разработке компании Avito.


— Расскажите, пожалуйста, в двух словах о себе и своем опыте работы со Swift.

— На текущий момент я работаю в компании Avito разработчиком мобильных приложений для iOS. В мобильной разработке я около 5 лет, а до нее занимался различными направлениями, в частности, веб-сайтами, бэкэндом и desktop-приложениями.
Swift мы начали использовать в Avito больше полугода назад, когда вышла вторая версия языка, накопилась обратная связь от сообщества разработчиков. Ранее в работе мы использовали Objective-C, но теперь весь новый код пишем на Swift.

— Некоторые разработчики отзываются о Swift, как о весьма «сыром» языке, не подходящим пока для крупных проектов. Можете ли вы подтвердить или опровергнуть это мнение?

— У Swift, безусловно, есть недостатки, в частности, связанные со средой разработки. Xcode время от времени падает, отключается подсветка синтаксиса или компилятор отказывается компилировать код. Упомянутые недостатки нельзя назвать причиной отказа от разработки больших проектов на Swift. Сталкиваясь с проблемами — мы находили решение. И мы уже отправили в продакшн достаточно объемный проект, написанный на этом языке.
Читать дальше →

Вебинар «Работа в компании или магистратура: раскрываем плюсы и минусы для разработчика»

Время на прочтение1 мин
Количество просмотров5.9K
Карьерный рост в IT — какой путь выбрать? 26 мая на этот вопрос подробно ответит руководитель группы разработки в прошлом, а сейчас ведущий преподаватель и научный сотрудник Университета Иннополис Василий Артемьев.

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

Прозрачная связь серверов на java и nodejs посредством Vert

Время на прочтение3 мин
Количество просмотров2.5K
Давным-давно, в далекой га…… начиналось всё с одного сервера, написанного на java. Данный сервер реализовывал полный спектр задач:

1. Коммуникация с “железками” — получение замеров, статусной информации, телеметрия, конфигурирование инфраструктуры и т.п.;
2. Realtime обработка поступивших данных;
3. Агрегирование полученных данных;
4. Высокоуровневый интерфейс с клиентским софтом на базу RMI (клиент в те стародавние времена тоже был на java/netbeans rcp).
Читать дальше →

INTEL представляет релиз исходного кода прошивки Arduino 101

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

Мы рады представить Вам в целях изучения и хака исходный код реал-тайм операционной системы (RTOS), которым снабжен Arduino 101 и Genuino 101.


Пакет содержит полный BSP (Пакет Поддержки Плат) для Curie процессора на 101. Это позволит Вам изменять и компилировать ядро операционной системы и прошивки в целях управления обновлениями и загрузчиками. (Будьте осторожны с этим, так как использование некорректного загрузчика может закирпичить борт и потребуется JTAG программист для реанимации).


Прошивка работает на чипах x86 в Curie модуле и взаимодействует с ядром ARC(который управляет вашими Arduino скетчами) используя эти колбэки.
На данный момент x86 обеспечивает Bluetooth Low Energy (BLE) и USB, разгружая ARC ядро.
Вы можете использовать код, который реализует этот функционал в качестве начальной точки ваших кастомных фич.

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

Производственный календарь на Python

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

Предисловие



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

Чтобы не откладывать ознакомление с данным модулем просто наберите в командной строке:
pip install prod-cal


Гарантирую что проект будет работать на Python 2.7 и Windows 7, т. к. на этой конфигурации он разрабатывался.

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

Главная цель данной статьи разобрать устройство данного модуля и наметить перспективы для его развития сообществом.

Чтобы не плодить календарей в моём календаре можно использовать все методы стандартного модуля calendar.Calendar.
Читать дальше →

Альтернатива родному модулю технической поддержки в JIRA

Время на прочтение2 мин
Количество просмотров5.6K
В Alconost мы делаем видеоролики о сервисах и приложениях. За 4 года мы перещупали сотни IT-продуктов, среди которых встречаются интересные разработки, достойные поста на Хабре. Например, недавно мы сделали ролик о плагине HelpDesk for JIRA для компании «Тимлид».

Чем интересен этот проект? Тем, что он прямо конкурирует с родным модулем саппорта для «Джиры», который, кстати, сам по себе довольно неплохой, но дорогой (например, 5 юзеров — $1500). Получается, что плагин решает ту же проблему, что и «материнский» продукт, только дешевле.

Кстати, а вот и ролик, который мы сделали:



Чуть больше информации про HelpDesk for JIRA — под катом.
Читать дальше →

Итоги 2015: IT-индустрия

Время на прочтение5 мин
Количество просмотров9.5K
Эксперты и руководители компаний назвали основные тренды 2015 в IT-индустрии. Какие стартапы, технологии и тенденции оказались наиболее заметными в России и в мире, и чего ожидать в будущем?



Ключевые события и тренды


“Взлет” сервиса Periscope – одно из самых заметных событий уходящего года, которое уже успело повлиять на сферу онлайн-маркетинга и вызвать резонанс в связи с угрозой частной жизни. Не менее явными тенденциями оказались развитие интернета вещей, виртуальной реальности и популяризация Онлайн рекрутинга. Также долгоиграющими трендами предположительно станут автоматизация мессенджеров и совершенствование технологии blockchain.
Читать дальше →

Анализируй это или о качестве программного обеспечения

Время на прочтение6 мин
Количество просмотров6.8K
Почти всю свою сознательную карьеру разработчика, руководителя проектов, консультанта по процессам разработки я оставался в плену очень распространенного и простого заблуждения. Если программа выполняет требуемые функции, претензий к стабильности и производительности нет, то это «нормальная» программа. Прошу прощения за несколько утрированную формулировку, но так оно и есть, если разобраться.

За определениями термина «качество программного обеспечения» не грех обратиться к стандартам. Несколько определений из разных стандартов удобно приведены на одной странице wiki. И что же?! В фокусе способности программы удовлетворять потребностям Заказчика.
Читать дальше →

Веб-платформа на Java за 30 минут

Время на прочтение8 мин
Количество просмотров230K
Опытные разработчики могут не читать дальше, так-как эта статья рассчитана скорее на новичков, но всё-же я был бы очень рад, если бы кто-нибудь оставил конструктивную критику в мой адрес или указал на ошибки.

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

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

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

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

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

Для тех, кто заинтересовался:
Читать далее

Еще один разбор пузырьковой сортировки

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

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

Зачем в наши дни нужна сортировка пузырьком?
Она ведь практически самая медленная.
У нее самый высокий (квадратичный) алгоритм сложности.

Но! Она самая простая в реализации и весьма наглядная, и часто используется в образовательных целях или на собеседованиях джуниоров/интернов.
Кроме того, с небольшими модификациями, можно достичь интересных результатов.
Новичков в программировании и заинтересовавшихся — прошу под кат.

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

Среда разработки andriod приложений App Inventor 2 и ее применение в сообществе Arduino

Время на прочтение2 мин
Количество просмотров53K
Часть 1. Что такое App Inventor 2?
Начать хочется с того, что на habrahabr и geektimes есть несколько статей о предыдущей версии App Inventor. Вот они:
Google App Inventor отдадут в Open Source
MIT открыл Google App Inventor в бета-версии
App Inventor — создание Android-приложений для каждого: Урок 1
Чтение XML файла с помощью App Inventor

Эта версия App Inventor (beta) проработала с 2011 по 2015 годы, но сейчас ее поддержка прекращена. С 2014 работает версия App Inventor 2, которая несовместима с предыдущей. До 2011 года существовала версия Google App Inventor в рамках Google Labs
Читать дальше →

Применение SpeechKit Cloud API для озвучивания погоды и новостей от Yandex

Время на прочтение9 мин
Количество просмотров14K
Добрый день! В данной статье хотелось бы рассказать о том, как можно сделать на сайте «Голосовой погодный и новостной информер», который бы, например при выборе города не только показывал, но и рассказывал фактический прогноз погоды, а так же произвольную новость. На самом деле этот скрипт разрабатывался для информирования в системе «Умный Дом», но может быть с легкостью переделан под любой сайт, имеющий на хостинге поддержку PHP, что и было сделано для этой статьи. В примере для синтеза речи, будет использоваться технология SpeechKit Cloud API от компании Yandex и XML парсер Yandex погоды и новостей, написанные на PHP.

Что понадобится для реализации:
  • Web сервер с поддержкой PHP (можно локальный типа Денвера).
  • Ключ Yandex SpeechKit (для некоммерческих проектов можно получить бесплатно).
  • Если ключ не дают без наличия у Вас сайта, то создать сайт можно на Hostinger.ru.
  • Список ID городов.

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

Принцип работы:
  • Отправляем запрос на получение mp3 файла, для выбранного города.
  • Парсим XML файл, получая необходимые параметры.
  • Корректируем окончания слов, для постановки правильного произношения.
  • Устанавливаем параметры генерации mp3 файла (голос, тембр, формат файла, язык, текст).
  • Генерируем mp3 файл.
  • Создаем объект Audio HTML 5 и воспроизводим файл.

Скрипт с формой для выбора городов index.html
<!DOCTYPE html>
<html lang="ru">
<head>
<title>Тест SpeechKit Cloud API от компании Yandex.</title>
<meta charset="utf-8">
</head>
<body>
<script language="javascript" type="text/javascript">
function Get_Weather()
{
   var tts_text=document.getElementById('weather').value;
   console.log(tts_text);
	var response="weather.php?&q="+encodeURI(tts_text); //путь до mp3 файла
	var audio = document.getElementById("gameMusic");
		if (audio)
		{
			audio.parentNode.removeChild(audio);
		}
	
		// создаём новый элемент audio
		audio = document.createElement("audio");
		audio.setAttribute("id", "gameMusic");
		audio.setAttribute("autoplay", "true");
		//audio.setAttribute("loop", "false");
	
		var mp3 = document.createElement("source");
		mp3.setAttribute("src", response);
		mp3.setAttribute("type", "audio/mpeg");
	
		audio.appendChild(mp3);
		audio.play();
		document.body.appendChild(audio);
}
function Get_News()
{
   var tts_text=document.getElementById('news').value;
   console.log(tts_text);
	var response="news.php?&q="+encodeURI(tts_text); //путь до mp3 файла
	var audio = document.getElementById("gameMusic");
		if (audio)
		{
			audio.parentNode.removeChild(audio);
		}
	
		// создаём новый элемент audio
		audio = document.createElement("audio");
		audio.setAttribute("id", "gameMusic");
		audio.setAttribute("autoplay", "true");
		//audio.setAttribute("loop", "false");
	
		var mp3 = document.createElement("source");
		mp3.setAttribute("src", response);
		mp3.setAttribute("type", "audio/mpeg");
	
		audio.appendChild(mp3);
		audio.play();
		document.body.appendChild(audio);
}
</script>
<h1><span>Тест SpeechKit Cloud API от компании Yandex.</span></h1>
<h2>Погода</h2>
<select size="1" onclick="Get_Weather();" id="weather"> 
			 <option disabled>Выберите город</option> 
			 <option value="27612">Москва</option> 
			 <option value="34880">Астрахань</option>
			 <option value="26063">Санкт-Петербург</option>
			 <option value="25913">Магадан</option>
</select>
<h2>Новости</h2>
<select size="1" onclick="Get_News();" id="news"> 
			 <option disabled>Выберите город</option> 
			 <option selected value="Astrakhan">Астрахань</option> 
				<option  value="Volgograd">Волгоград</option>
				<option  value="Krasnodar">Краснодар</option>				
				<option  value="Moscow">Москва</option>
				<option  value="Saratov">Саратов</option>
</select>
</body>
</html>


Горда можно добавлять путём установки новых параметров option в элементе select.

Скрипт генерации mp3 файла для погоды weather.php
<?php
	 $id=$_GET["q"]; // id города
	 $url="http://export.yandex.ru/weather-ng/forecasts/".$id.".xml"; // url xml файла 
    $xml = simplexml_load_file($url); // интерпретируем XML-файл в объект
    //параметры:
    $city=$xml['city']; //город
    $temp=$xml->fact->temperature; // температура
    $weather_type=$xml->fact->weather_type; // тип погоды
    $humidity=$xml->fact->humidity; // влажность
    $wind_direction=$xml->fact->wind_direction; // направление ветра
    $wind_speed=$xml->fact->wind_speed; // скорость ветра
    $pressure=$xml->fact->pressure; // давление
       
   
	$znak="плюс";
	if($wind_direction=="e") {	$wind_direction_text="восточный";}
	if($wind_direction=="w") {	$wind_direction_text="западный";}
	if($wind_direction=="s") {	$wind_direction_text="южный";}
	if($wind_direction=="n") {	$wind_direction_text="северный";}
	if($wind_direction=="se") {	$wind_direction_text="юго-восточный";}
	if($wind_direction=="ne") {	$wind_direction_text="северо-восточный";} 
	if($wind_direction=="sw") {	$wind_direction_text="юго-западный";}
	if($wind_direction=="nw") {	$wind_direction_text="северо-западный";} 
												
	$minus_arry=preg_match("/(-)/", $temp, $minus_out);
	if (!empty($minus_out[1]))
	{ $znak="минус";
		$temp=str_replace("-","",$temp);
	}
							
	 //градус
  	if(	$temp=="1" or $temp=="21" or $temp=="31" or $temp=="41" or $temp=="51" or $temp=="61" or $temp=="71" or $temp=="81" or $temp=="91" or $temp=="101") 
  	{
  			$text="градус";
  	} 
  	else 
  	{
	//градуса	
  	if(   $temp=="2"  or $temp=="3"  or $temp=="4"
  			or $temp=="22" or $temp=="23" or $temp=="24" 
  			or $temp=="32" or $temp=="33" or $temp=="34" 
  			or $temp=="42" or $temp=="43" or $temp=="44" 
  			or $temp=="52" or $temp=="53" or $temp=="54"
  			or $temp=="62" or $temp=="63" or $temp=="64" 
  			or $temp=="72" or $temp=="73" or $temp=="74" 
  			or $temp=="82" or $temp=="83"	or $temp=="84" 
  			or $temp=="92" or $temp=="93" or $temp=="94"
  			or $temp=="102" or $temp=="103"
  		) {$text="градуса";} else {$text="градусов";}  											
  						
  	}
  									
  									
  									
  	//процент
  			
  	if(	$humidity=="1" or $humidity=="21" or $humidity=="31" or $humidity=="41" or $humidity=="51" or $humidity=="61" or $humidity=="71" or $humidity=="81" or $humidity=="91" or $humidity=="101") 
  	{
  		$humidity_text="процент";
  	} 
  	else 
  	{
		//процента	
  		if(   $humidity=="2"  or $humidity=="3"  or $humidity=="4"
  				or $humidity=="22" or $humidity=="23" or $humidity=="24" 
  				or $humidity=="32" or $humidity=="33" or $humidity=="34" 
  				or $humidity=="42" or $humidity=="43" or $humidity=="44" 
  				or $humidity=="52" or $humidity=="53" or $humidity=="54"
  				or $humidity=="62" or $humidity=="63" or $humidity=="64" 
  				or $humidity=="72" or $humidity=="73" or $humidity=="74" 
  				or $humidity=="82" or $humidity=="83" or $humidity=="84" 
  				or $humidity=="92" or $humidity=="93" or $humidity=="94"
  				or $humidity=="102" or $humidity=="103"
  		) {$humidity_text="процента";} else {$humidity_text="процентов";}  											
  								
  	}	
  									
  									
  	 //миллиметр
  	if(	$pressure=="701" or $pressure=="721" or $pressure=="731" or $pressure=="741" or $pressure=="751" or $pressure=="761" or $pressure=="771" or $pressure=="781" or $pressure=="791" or $pressure=="801") 
  	{
  		$pressure_text="милиметр ртутного столба";
  	} 
  	else 
  	{
		//миллиметра	
  		if(   $pressure=="702" or $pressure=="703" or $pressure=="704"
  				or $pressure=="722" or $pressure=="723" or $pressure=="724" 
  				or $pressure=="732" or $pressure=="733" or $pressure=="734" 
  				or $pressure=="742" or $pressure=="743" or $pressure=="744" 
  				or $pressure=="752" or $pressure=="753" or $pressure=="754"
  				or $pressure=="762" or $pressure=="763" or $pressure=="764" 
  				or $pressure=="772" or $pressure=="773" or $pressure=="774" 
  				or $pressure=="782" or $pressure=="783" or $pressure=="784" 
  				or $pressure=="792" or $pressure=="793" or $pressure=="794"
  				or $pressure=="802" or $pressure=="803"
  			) {$pressure_text="милиметра ртутного столба";} else {$pressure_text="милиметров ртутного столба";}  											
  							
  	}
  	$say_text="Сейчас в городе ".$city." ".$weather_type.". Tемпература воздуха ".$znak." ".$temp." ".$text.". Влажность ".$humidity." ".$humidity_text.". Ветер ".$wind_direction_text." ".$wind_speed." метров в секунду. Атмосферное давление ".$pressure." ".$pressure_text." !";
	$qs = http_build_query(array("format" => "mp3","lang" => "ru-RU","speaker" => "jane","key" => "SpeechKit_Cloud_API_Key","emotion" => "good", "text" => $say_text)); // параметры запроса
	$ctx = stream_context_create(array("http"=>array("method"=>"GET","header"=>"Referer: \r\n")));
	$soundfile = file_get_contents("https://tts.voicetech.yandex.net/generate?".$qs, false, $ctx); // запрос на генерацию mp3 файла
 	echo($soundfile);
?>


В скрипте нужно изменить SpeechKit_Cloud_API_Key на полученный Вами ключ.
Скрипт генерации mp3 файла для новостей news.php
<?php
$city=$_GET['q'];
	 
$data_file="http://news.yandex.ru/".$city."/index.rss"; // адрес xml файла 
$xml = simplexml_load_file($data_file); // раскладываем xml на массив

$number= rand(1,13); //генерируем порядковый номер новости

$news=$xml->channel->item[$number]->description; //новость
$title=$xml->channel->item[$number]->title; //заголовок
    

$content_news = trim(preg_replace('/\s{2,}/', ' ', $news));//удаляем весь хлам
$content_title = trim(preg_replace('/\s{2,}/', ' ', $title));//удаляем весь хлам

$text=$content_title." - ".$content_news;
$search = array('"','"',' ',')','(');
$replace   = array('');

$text = str_replace($search, $replace, $text);
$qs = http_build_query(array("format" => "mp3","lang" => "ru-RU","speaker" => "jane","key" => "SpeechKit_Cloud_API_Key","emotion" => "good", "text" => $text)); // параметры запроса
$ctx = stream_context_create(array("http"=>array("method"=>"GET","header"=>"Referer: \r\n")));
$soundfile = file_get_contents("https://tts.voicetech.yandex.net/generate?".$qs, false, $ctx); // запрос на генерацию mp3 файла
echo($soundfile);    
?>


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

OData REST API — мелкие хитрости (часть 2)

Время на прочтение1 мин
Количество просмотров5.2K
Продолжаем серию постов об особенностях использования протокола OData (см. предыдущий пост).
Читать дальше →

Ближайшие события

Entity Framework или почему я реализую Repository

Время на прочтение4 мин
Количество просмотров22K
Абстракции? Кому нужны абстракции?
EF наикрутейшая ORM от MS. habrahabr.ru/post/157267 это действительно круто. Разработать такую систему очень затратно по всем направлениям. CodeFirs вещь, знания проектирования БД, да какой там! Не нужны сами знания SQL – и это круто. Но так ли все радужно?
Julie Lerman может много рассказать msdn.microsoft.com/en-us/magazine/ff898427.aspx
image
Ничего не напоминает?
Читать дальше →

Пишем систему логирования в InterSystems Caché

Время на прочтение13 мин
Количество просмотров3.2K
Monet impression sunrise

Введение


В предыдущей статье мы рассмотрели основные варианты использования макросов, теперь перейдём к написанию более обширного примера, использующего макросы. Писать будем систему логирования.
Читать дальше →

Метод обучения программированию: «конспектирование»

Время на прочтение3 мин
Количество просмотров45K
Эта статья для тех, кто задумался или только начал изучать программирование. В ней я бы хотел поделиться выбранным мною способом изучения программирования, который заключается в конспектировании базовых принципов. Способ имеет один существенный недостаток — существенные затраты времени. Однако, у него есть и плюсы.
Читать дальше →

Wolfram Language (Mathematica) на русском языке… или продвинутое задание функций

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

Скачать пост в виде документа Mathematica, который содержит весь использованный код, можно здесь.

Одним из самых важных навыков в работе с системой Mathematica, является задание функций, которые имели бы самый разный вид, и зависели бы от разного количества переменных (от буквально ни одной переменной до бесконечного их количества), при этом некоторые переменные могли бы иметь значения, которые используются по умолчанию, если не вводятся их конкретные значения, другие имели бы вид опций, как у многих встроенных в Mathematica функций, или имели бы строгие ограничения на свой тип…

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

Мне хотелось бы отметить, что в версии 10.1 языка Wolfram Language (Mathematica) начался процесс русификации интерфейса, документации и предсказательного интерфейса. Для ряда языков, например, китайского, процесс полной локализации уже практически завершен. При этом, более того, даже сервис Wolfram|Alpha скоро сможет работать на китайском.

WolframLanguageInRussian)rAdvancedFunctionSetting_1.gif
Читать дальше →

О программировании на 1С Предприятие 8

Время на прочтение14 мин
Количество просмотров312K
Если пишешь ты на СИ
Будь хоть трижды ламер
Про такого говорят:
«Он — крутой программер!»
(Фидошные песни — «Что Такое Suxxx и Что Такое Rulezzz»)

Предисловие


Поводом к написанию данной статьи послужило негативное отношение профессионального сообщества к указанной платформе и программистам.

Как программист, выбравший 1С, считаю данное мнение необоснованным. Платформа 1С — далеко не идеал, но, на мой взгляд, — это лучший, а главное — отечественный продукт!

И уж тем более — неадекватно судить о способностях программиста по тому языку, на котором он пишет.

В данной статье я опишу те преимущества, которые нашел для себя в программе. Статья получится практически рекламой, поэтому сразу дисклеймер:
  • Прямого отношения к фирме 1С я не имею;
  • Данная статья не является заказной, и написана исключительно на добровольной основе;
  • В некоторых случаях высказано личное мнение, которое может не совпадать…;
  • Вся статья, за исключением пролога — авторская, любые совпадения — случайность;
  • Речь пойдет о платформе 1С Предприятие 8.2 (в настоящее время — актуальна версия 8.3, но я её ещё не изучал — очень много работы на 1С 8.2). Однако, большая часть сказанного применима как к платформе 8.3, так и к более ранним версиям, а часть — и к версии 7.7.

Итак, приступим.
Читать дальше →

Какой цикл быстрее? Тестируем 1С

Время на прочтение3 мин
Количество просмотров26K
Занимаюсь программированием 1С уже несколько лет, и тут посетила мысль — «А не пройти ли какой-нибудь обучающий курс, вдруг в знаниях есть какие-то пробелы, о которых раньше даже и не подозревал»? Сказано-сделано. Сижу, слушаю курс, дохожу до циклических операторов и тут вторая мысль (да, не часто они у меня появляются)«А какой цикл быстрее»? Надо бы проверить.
Итак, я нашел пять способов, как можно организовать цикл средствами 1С.
Читать дальше →

eBay API: шаг второй

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

Публикация навеяна этой статьей — «eBay API: Первые шаги» и теоретически может стать её продолжением. Она пригодится тем, кто пытался начать работать с eBay API, не нашел где спросить, что делать и плюнул на это занятие. Или спросил, не дождался ответа и в итоге все равно плюнул.

На истину ни в какой инстанции не претендую и с радостью приму советы по преодолению багов, которые преодолеть так и не удалось.



Прежде всего, хочется оставить небольшую ремарку: начать работать с eBay API быстро — не получится. Катастрофическое количество недосказанностей и нестыковок в документации, недоработки и баги в самом механизме API, неявности и неоднозначности использования комбинаций условий запросов заставляют тестировать каждый шаг по отдельности. И тестировать неоднократно: то, что вчера прекрасно работало, сегодня будет возвращать ошибку, а завтра продолжит работать как ни в чем не бывало.

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

Вклад авторов