Pull to refresh
-5
0
Send message

Бюджетная рассылка СМС

Reading time8 min
Views48K
Приветствую всех хаброжителей!

Конечно, зализанная тема про рассылку смс сообщений, но как говориться: «много — не мало». Как-то так получилось, что именно она меня постоянно преследует: то одни, то другие добрые люди попросят принять участие (советом, например) в реализации бюджетной рассылки сообщений. И поэтому чтобы не пропадать накопленному добру, оставлю здесь, а вдруг кому-то пригодится…

Итак-с… Опускаем все варианты реализации на базе обычного компа и оси семейства NT. А перейдем сразу к «автономным» системам.

Чем может похвастаться arduino в этом направлении? Отвечу сразу, ОНО работает, но есть нюансы, о которых напишу ниже. Вообщем, имеем китайский вариант arduino 2560 (было перепробовано практически вся линейка) и два дополнительных модуля — сеть W5100 (наиболее стабильный вариант) и GSM SIM 900. Выглядит это все дело как-то так.

image

Задача была следующая:
— устройство должно уметь общаться по http
— отправлять сообщение
— выдавать результат в формате json

Гугл делится всей необходимой информацией, и на выходе получаем следующий код:

Читать дальше →
Total votes 33: ↑24 and ↓9+15
Comments65

Как айтишнику уехать в Германию. Часть 1

Reading time5 min
Views57K
В последние пару дней мне часто приходится отвечать на вопросы, как я нашёл работу в Германии, поэтому я решил объединить весь свой путь (ещё незаконченный) в единый текст и опубликовать здесь, потому как тема мне кажется интересной и актуальной.

Идея уехать жить куда-нибудь за пределы этой страны была давно, но как-то не сказать, что здесь всё было совсем плохо и невыносимо. Однако вернувшись в октябре из двухнедельной поездки по Европе (Барселона, Брюссель, Амстердам и Прага), желание заметно укрепилось. Плюс уже изрядно достали все эти #крымняш, нефть, рубль и великий Пу.

Вариант с Германией мне подсказала знакомая, которая собирается ехать туда учиться. Погуглил, и действительно — для айтишников (я джава-разработчик) всё очень хорошо. Информации на эту тему в интернете полно, не буду лишний раз дублировать (гуглить по ключевому слову bluecard). Если коротко — достаточно желания работодателя платить вам больше, чем 37 000 евро в год.
Читать дальше →
Total votes 63: ↑51 and ↓12+39
Comments152

Оберон в программировании БПЛА

Reading time4 min
Views7.9K
Всем доброго времени суток.

В статьях про Оберон часто упоминается применение Оберона в программировании спутников, ГЭС, АЭС и так далее. Суровые промышленные программные комплексы. Конечно, хотелось бы иметь реальные примеры кода для каждого случая, но это не всегда возможно, и поэтому складывается впечатление, что никаких продуктов как бы нет. Для исправления этой ситуации сегодня хотелось бы рассказать о программировании беспилотников на Обероне.
Читать дальше →
Total votes 25: ↑11 and ↓14-3
Comments104

Автоматизация ресторана: 24 интересных инструмента

Reading time8 min
Views192K


Обновлено: 29 июня 2021 года

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

В сегодняшнем материале вашему вниманию 24 инструмента для автоматизации ресторанного бизнеса. При подготовке обзора я также пытался оценить качество работы служб поддержки компаний и скорость отклика на запросы потенциальных клиентов, информация об этом также представлена в статье.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments33

Самодельный блок управления для дизельного двигателя

Reading time10 min
Views101K


Автомобили уже давно обросли всякой электроникой, так обросли, что просто жуть: в дверях контроллер, в фарах контроллер, в тормозах контроллер, ну и в двигателе, как без него. Обычно, когда речь заходит о блоке управления двигателем (ECU) представляется бензиновый мотор, обвешанный датчиками, исполнительными элементами и жгутами проводов. Блок управления чутко считывает параметры датчиков, корректирует смесь и начало искрообразования. Сложно! Но энтузиасты создают свои блоки управления, пишут альтернативные прошивки чтобы выжать лишнюю «пони», обойти какую-то неисправность или просто для повышения навыков. Причем, как правило, на такой шаг авторов толкают обстоятельства, к примеру недовольство контактной системой зажигания у бензиновых моторов, легкий некомплект электрики и так далее.

Именно о таких обстоятельствах и о дизельном двигателе и пойдет речь.

Итак, постановка задачи:

Дано:
  • Дизельный двигатель с механическим насосом DW8, производства концерна PSA, 2000 г.в. Насос издох от времени.
  • Новый топливный насос, приобретенный по случаю, с электронным управлением опережения впрыска от модификации мотора DW8B (Те самые обстоятельства).
  • Полное отсутствие проводки под электронное управление, самого блока управления.
  • Желание разобраться с нехитрой электроникой насоса, поднять навык, поглубже изучить работу таких насосов.

Требуется: исправный двигатель после «сращения».
Читать дальше →
Total votes 88: ↑87 and ↓1+86
Comments40

Немного о синтаксисе Erlang

Reading time4 min
Views17K
Изначально я планировал выпустить этот опус как дополнение к книге “Learn You Some Erlang”, однако его содержание больше соответствует редакционному материалу, нежели хорошему справочному документу, поэтому я решил просто написать об этом в блоге.

Многие новички в мире Erlang успешно изучают его и начинают играться, не вступая с ним в тесное знакомство. Я прочитал много жалоб именно на синтаксис и эти “козьи шарики” (ant turds — ориг.) — «веселый» способ называть символы ,, ;, .. Например, «Как же они бесят», а также многое другое.

Я упоминал в книге, что Erlang берет свое начало из Prolog. Это дает нам понять, откуда берутся все эти знаки препинания, но это, увы, не заставляет людей проникнуться любовью к подобной пунктуации. И правда, почему-то никто не говорит мне: «А-а! Prolog! Что ж ты раньше не сказал!» Ввиду этого я предлагаю три возможных способа человеческого чтения кода на Erlang, дабы сделать мир добрее.
Читать дальше →
Total votes 25: ↑24 and ↓1+23
Comments17

Как легально получать деньги из-за пределов России

Reading time5 min
Views202K
Дано: заказчик за рубежом, желающий работать с Вами и платить вам евро или доллары.
Найти: оптимальный способ организовать работу с ним, чтобы платить налоги и спать спокойно.

Сразу скажу, что получение денег на пластиковую карту без уплаты налогов может вылиться в серьезные проблемы (про ответственность написано в конце топика). Объяснения, что деньги «от бабушки внучку на мороженное» при суммах больше 10К$ в год уже не прокатывают, особенно если в реквизитах «бабушки» будет стоять что-то вроде «GMBH Star Development» Вероятность того, что возьмут за задницу достаточно высокая и поэтому лучше не рисковать и делать все по Закону, тем более, что ничего сложного в этом нет
Читать дальше →
Total votes 144: ↑142 and ↓2+140
Comments192

Фреймворки JavaScript. Как изучить их по-быстрому

Reading time17 min
Views64K
Здравствуйте, коллеги.

Сегодня мы хотели затронуть такую многогранную и противоречивую тему, как фреймворки JavaScript. За последние несколько месяцев в издательстве неоднократно обсуждались перспективы издания книг и по Angular.js, и по Knockout.js, а книга по Backbone.js у нас выходила в прошлом году. Следующий материал призван помочь разобраться в сильных и слабых сторонах различных фреймворков JavaScript. Возможно, после изучения статьи читателю будет проще ответить на вопросы о том, так ли схожи эти фреймворки, и желает ли он дополнительно изучить какую-то из технологий, упомянутых в этом обзоре. Мы же попросим вас поделиться вашими соображениями о том, нужны ли новые книги по этим фреймворкам, если да — то по каким (высказываемся в комментариях, не стесняемся давать ссылки на книги).
Читать дальше →
Total votes 16: ↑13 and ↓3+10
Comments10

Радикальный подход к разработке приложений

Reading time13 min
Views18K
От переводчика: В 2007 году, в поисках веб-движка я наткнулся на очень интересный и необычный диалект лиспа. И после прочтения нескольких статей я был очарован его принципами. Поскольку моя основная работа далека от веб-программирования, то профессионально я его не использую, но время от времени возвращаюсь к нему и понемногу «штурмую».

За всё время знакомства с этим языком он практически нигде не мелькает, и на русском языке информации о нем почти нет. Попробуем восполнить этот пробел. Несмотря на то, что оригинал статьи датируется 2006-ым годом, тема вполне актуальна.
Большое спасибо за помощь в переводе Надежде Захаровой и замечательному сайту Notabenoid.

Перевод
Total votes 42: ↑37 and ↓5+32
Comments13

Разработка веб-приложений в PicoLisp

Reading time50 min
Views15K
Читатели предыдущей статьи Радикальный подход к разработке приложений могли справедливо заметить, что статья слишком теоретическая. Поэтому спешу восстановить баланс добра и зла теории и практики.

Эта статья раскрывает лишь верхушку айсберга под названием picoLisp. За бортом остались интересные моменты, касающиеся внутренностей базы данных, организация распределенной БД, отладка, функциональный I/O, объектная модель с множественным наследованием, PicoLisp Prolog…

Я всё-таки надеюсь, что отечественные программисты присмотрятся к этому мощному инструменту.

Осторожно, под катом много текста и скобок!

Поехали
Total votes 26: ↑23 and ↓3+20
Comments13

Неизвестный Smalltalk

Reading time10 min
Views31K


Уважаемые читатели хабра. Прежде всего я хочу объяснить, что обзор языка Smalltalk делает в корпоративном блоге FLProg. Дело в том, что и сама программа FLProg и сайт программы написаны на этом замечательном языке. Его возможности и огромная скорость разработки на нём позволяют мне одному поддерживать и постоянно увеличивать функциональность как сайта, так и программы. Если интересно, как мне это удается – прошу под кат.
Подробности
Total votes 58: ↑50 and ↓8+42
Comments190

Тульпа — карманная шизофрения для гиков или реальный воображаемый друг

Reading time9 min
Views1.5M
Скажите, вы бы хотели иметь друга? Любого человека или другое существо, которое будет вашим самым лучшим другом, обладая той внешностью, которая вам нравится, и тем характером который вам необходим, которое не надо будет делить с ее или его друзьями, родителями, собачкой, игрушками или учебой.
А секретаря, который всегда с вами, имеет прямой доступ к вашей памяти, напомнит, подскажет, и подаст нужную идею, напарника для мозгового штурма?
Тогда добро пожаловать под кат.



Тульпа — это стабильная самовнушенная осознанная визуализация, способная к самостоятельным мыслям и действиям, обладающая собственным сознанием. Что характерно, создается она совершенно осознанно, путем целенаправленных действий в течении долгого времени, и позволяет задавать начальный характер и форму по вашему усмотрению.
Это ты сейчас с кем разговаривал? Расшифруй определение.
Total votes 161: ↑83 and ↓78+5
Comments563

Фреймворки портят разработку

Reading time2 min
Views12K
Вступление

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

Сама мысль

Я полагаю, вы согласны с тем, что программирование имеет 2 смысла. Первый — мощный инструмент для решения сложных проблем(иногда простых), второй — творчество. Если с последним всё понятно — вы получаете удовольствие от процесса, придумывая оптимальный алгоритм или создавая что-то новое, то с первым не совсем.
Читать дальше →
Total votes 31: ↑9 and ↓22-13
Comments96

93 видео-лекции по Scala

Reading time4 min
Views38K
В ходе подготовки спецкурса «Scala for Java Developers» под платформу онлайн-обучения UDEMY, я анализирую другие «лекционные» видео. В библиотеке накопилось какое-то количество ссылок на дельных учебные материалы по Scala (видео на английском).

Для большинства видео указано количество просмотров. Надо сделать несколько замечаний:
1. Количество просмотров не является главным критерием качества и полезности видео, но этот может служить каким-то указателем на ценность.
2. Здесь не все популярное видео, что я встречал, а лишь то, что ценно по моему личному мнению.
3. Если кто-то знает еще хорошее видео — пишите, добавлю в списки.


Читать дальше →
Total votes 21: ↑19 and ↓2+17
Comments5

Systemd за пять минут

Reading time4 min
Views623K
Наша компания занимается администрированием веб-серверов на базе CentOS. Довольно часто наши клиенты используют веб-приложения на базе python, ruby или java. Для автозапуска подобных приложений есть готовые шаблоны для написания стартап-скриптов. Но прогресс не стоит на месте, вышел уже второй релиз CentOS 7 и, следуя старой традиции «не ставить dot-zero релизы на продакшен», мы начинаем предлагать клиентам сервера на базе CentOS 7.1 (1503).

В CentOS7, так же как и в его родителе RHEL7, используется systemd — менеджер системы и служб для Linux, совместимый со скриптами инициализации SysV и LSB. systemd обеспечивает возможности агрессивной параллелизации и много всего прочего.

image

Огромный монстр с множеством возможностей, гибкими настройками и мегабайтами документации…

Но что делать, если стоит задача быстро-быстро, вот прямо вчера, сделать автозапуск некоего сервиса?
Давайте выжмем из документации минимально необходимый набор информации для создания простых старт-стоп скриптов.
Знакомство с systemd
Total votes 70: ↑66 and ↓4+62
Comments58

Ватерблок за 20 копеек и разгон с двумя кубиками льда

Reading time3 min
Views25K
Добрый день товарищи!

Решил написать о создании ватерблока СВО своими руками. Тема для данного ресурса несколько не обычная, хардкорная. Выглядит процесс не столь эстетично как опыты с Arduino. Так что попросил бы понять.

Действо это разумеется экономически не оправдано, однако… сделанное своими руками лично мне приятнее. Ватерблок я делал с прицелом на GPU, хотя тестировать буду на CPU.


Читать дальше →
Total votes 37: ↑34 and ↓3+31
Comments37

Тройка полезных монад

Reading time4 min
Views47K
Внимание: перед тем как читать текст ниже, вы уже должны иметь представление о том, что такое монады. Если это не так, то прежде прочитайте вот этот пост!

Перед нами функция half:


И мы можем применить её несколько раз:
half . half $ 8
=> 2


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


half x = (x `div` 2, "Я только что располовинил  " ++ (show x) ++ "!")


Что ж, отлично. Но что будет если вы теперь захотите применить half несколько раз?
half . half $ 8


Вот то, что мы хотели бы, чтобы происходило:


Спойлер: автоматически так не сделается. Придётся всё расписывать ручками:
finalValue = (val2, log1 ++ log2)
    where (val1, log1) = half 8
          (val2, log2) = half val1


Фу! Это ни капли не похоже на лаконичное
half . half $ 8


А что, если у вас есть ещё функции, имеющие лог? Напрашивается такая схема: для каждой функции, возвращающей вместе со значением лог, мы бы хотели объединять эти логи. Это побочный эффект, а никто не силён в побочных эффектах так, как монады!
Читать дальше →
Total votes 63: ↑58 and ↓5+53
Comments7

Нормализация отношений. Шесть нормальных форм

Reading time8 min
Views1.4M
В данной теме я затрону 6 нормальных форм и методы приведения таблиц в эти формы.

Процесс проектирования БД с использование метода НФ является итерационным и заключается в последовательном переводе отношения из 1НФ в НФ более высокого порядка по определенным правилам. Каждая следующая НФ ограничивается определенным типом функциональных зависимостей и устранением соответствующих аномалий при выполнении операций над отношениями БД, а также сохранении свойств предшествующих НФ.
Читать дальше →
Total votes 37: ↑22 and ↓15+7
Comments14

Зоопарк Алгебрaических Типов Данных

Reading time8 min
Views24K
В этой статье мы попытаемся рассмотреть всё разнообразие Алгебраических Типов Данных.

Надо сказать, задача это достаточно неподъёмная, и понять человеку, если он ранее с Алгебраическими Типами не имел дело — не очень просто.
АТД были впервые использованы в языке Hope, но основную популярность они приобрели благодаря языкам ML, такими как Standart ML, OCaml, F#, и языку Haskell.
Ныне АТД в той или иной мере поддерживаются в значительно большем количестве языков: Scala, Rust, Nemerle, Racket,…
АТД — это универсальный тип данных. С помощью него можно представить большинство типов данных.
АТД называются алгебраическими, потому что их можно представить как некую алгебраическую композицию типов его составляющих. Это знание даёт своё преимущество: понимая свойства алгебраической композиции, можно посчитать какой тип необходим для построения тех или иных данных.
Будем рассматривать типы на основе языка Haskell, однако подобного с лёгкими изменениями можно добиться в других языках с поддержкой АТД.
Читать дальше →
Total votes 43: ↑38 and ↓5+33
Comments34
1

Information

Rating
Does not participate
Registered
Activity