by Agus Kurniawan
11. February 2019 00:12
This book helps readers who want to learn Pycom WiPy 3.0 development with Python programming language.
Table of Content
1. Preparing Development Environment
1.1 Pycom WiPy 3.0 Boards
1.2 Electronics Components
1.2.1 Arduino Starter Kit
1.2.2 Fritzing
1.2.3 Cooking-Hacks: Arduino Starter Kit
1.2.4 Arduino Sidekick Basic kit v2
1.2.5 Grove - Starter Kit for Arduino
1.2.6 DFRobot - Arduino Kit for Beginner v3
1.3 Development Tools
1.4 Testing
2. Setting Up Pycom WiPy 3.0
2.1 Getting Started
2.2 Updating Firmware for Expansion Board
2.2 Connecting MicroPython Boards to Computer
2.3 Flashing The Latest Pycom WiPy 3.0 Firmware
2.4 Development Tools
2.5 Python programming
2.6 Hello Pycom WiPy 3.0: Blinking LED
2.6.1 Wiring
2.6.2 Writing Program Using Serial/UART Tool
2.7 Connecting to Existing WiFi
2.8 Auto-Connect to WiFi on WiPy Booting
3. GPIO Programming
3.1 Getting Started
3.2 Wiring
3.3 Writing a Program
3.4 Testing
4. PWM and Analog I/O
4.1 Getting Started
4.2 Demo Analog Output (PWM) : RGB LED
4.2.1 Wiring
4.2.2 Writing Program
4.2.3 Testing
4.3 Demo Analog Input: Working with Potentiometer
4.3.1 Wiring
4.3.2 Writing Program
4.3.3 Testing
4.4 Demo Analog Output
5. Working with I2C
5.1 Getting Started
5.2 Writing Program
5.3 Writing Program
5.4 Testing
6. Working with UART
6.1 Getting Started
6.2 Wiring
6.3 Writing a Program
6.4 Testing
7. Working with SPI
7.1 Getting Started
7.2 Wiring
7.3 Writing a Program
7.4 Testing
8. Working with SD Card
8.1 Getting Started
8.2 Preparation
8.3 Writing Program
8.4 Testing
9. Working with Bluetooth
9.1 Getting Started
9.2 Demo: BLE Scanning
9.3 Demo iBeacon
10. Working with DHT Module
10.1 Getting Started
10.2 Wiring
10.3 Writing MicroPython Program
10.4 Testing
11. Building IoT Application
11.1 Getting Started
11.2 Hardware Wiring
11.3 Developing Program
11.4 Testing
How to Buy
You can get this book on the following online store.
Lulu, http://www.lulu.com/shop/agus-kurniawan/pycom-wipy-30-development-workshop/ebook/product-23979900.html
Google Play Book, https://play.google.com/store/books/details?id=20iHDwAAQBAJ
Amazon Kindle, https://www.amazon.com/dp/B07NKY1QN5
Kobo, https://www.kobo.com/de/en/ebook/pycom-wipy-3-0-development-workshop
Apple iBookstore, http://itunes.apple.com/us/book/isbn9780359419654
by Agus Kurniawan
9. February 2019 19:14
This book helps readers to get started with Azure SQL Database for administering and developing.
Table of Content
1. Setting up Azure SQL Database
1.1 Azure SQL Database
1.2 Requirements
1.3 Pricing Scheme
1.4 Creating Azure SQL Database
1.5 Exploring Azure SQL Server and Database Instance
2. Administering Azure SQL Database
2.1 Getting Started
2.2 Managing Azure SQL Database
2.3 Connecting to Azure SQL Database
2.3.1 sqlcmd
2.3.2 Microsoft SQL Server Management Tool (Windows)
2.3.3 Azure Data Studio
2.4 Performing Transaction-SQL (T-SQL)
2.4.1 Querying using sqlcmd
2.4.2 Querying with SQL file using sqlcmd
2.4.3 Querying using Microsoft SQL Server Management Studio
2.4.4. Querying using Azure Data Studio
2.4.5 Querying using Azure Web Query Editor
3. Developing Applications for Azure SQL Database
3.1 Getting Started
3.2 C# and .NET Core
3.3 PHP
3.4 Node.js
4. Developing Azure App Service with Azure SQL Database
4.1 Getting Started
4.2 Creating Azure Web App
4.3 Building ASP.NET Core
4.4 Deploying and Testing ASP.NET Core to Azure Web App
5. Export and Import SQL Database
5.1 Getting Started
5.2 Preparation
5.3 Export Database
5.4 Import Database
How to Buy
You can get this book on the following online store,
Lulu, http://www.lulu.com/shop/agus-kurniawan/administering-and-developing-azure-sql-database/ebook/product-23978674.html
Google Play Book, https://play.google.com/store/books/details?id=RiuHDwAAQBAJ
Amazon Kindle, https://www.amazon.com/dp/B07NJQM619
Kobo, https://www.kobo.com/de/en/ebook/administering-and-developing-azure-sql-database
Apple iBookstore, http://itunes.apple.com/us/book/isbn9780359417070
a813211d-4bc8-4824-bd7a-8d5242235d29|1|5.0
Tags:
Books | Database
by Agus Kurniawan
4. February 2019 02:11
This book helps you to accelerate your learning in Kotlin programming. Some program samples are provided to give your insight in programming.
Table of Content
1. Development Environment
1.1 Installation
1.2 Development Tools
1.3 Kotlin Shell
1.4 Running Kotlin Application from Files
2. Kotlin Programming Language
2.1 Common Rule
2.2 Variables
2.3 val and var
2.4 Comment
2.5 print and println
2.6 Arithmetic Operations
2.7 Mathematical Functions
2.8 Increment and Decrement
2.9 Getting Input from Keyboard
2.10 Kotlin Operators
2.10.1 Comparison Operators
2.10.2 Logical Operators
2.10.3 Bitwise Operators
2.10.4 Testing All
2.11 Decision Control: if
2.12 Decision Control: when
2.13 Iteration - for, while and do..while
2.14 break, continue and pass
2.15 Date & Time
3. Collections and Generics
3.1 Basic Array
3.2 Multi Types Array
3.3 Generic Array
4. Functions and Lambdas
4.1 Creating A Simple Function
4.2 Function with Parameters and Returning Value
4.3 Function with Default Values on Parameters
4.4 Nested Function
4.5 Recursion Function
4.6 Testing
4.7 Lambda Functions
4.8 Function Types
5. Kotlin Object Oriented
5.1 Creating Classes
5.2 Constructor
5.3 Class Fields
5.4 Getter and Setter
5.5 Class Functions
5.6 Write them All
5.7 Inheritance
5.8 Overriding Properties and Methods
5.9 Overloading Operators
5.10 Interfaces
5.11 Abstract Classes
5.12 Data Classes
5.13 Enum Classes
6. Kotlin Libraries
6.1 Kotlin Libraries
6.2 import Libraries
6.3 Access External Libraries
7. String Operations
7.1 Getting Started
7.2 Concatenating Strings
7.3 String To Numeric
7.4 Numeric to String
7.5 String Parser
7.6 Check String Data Length
7.7 Copy Data
7.8 Upper and Lower Case Characters
7.9 Testing A Program
8. File Operations
8.1 Getting Started
8.2 Writing Data Into A File
8.3 Reading Data From A File
9. Error Handling
9.1 Error Handling
9.2 Raising Exceptions
9.4 Custom Exception
10. Building Own Kotlin Libraries
10.1 Creating Simple Module
11. Concurrency
11.1 Getting Started
11.2 Threading
11.3 Kotlin Coroutines
11.4 Synchronization
11.5 Channel
12. Encoding
12.1 Getting Started
12.2 Encoding Base64
12.3 Hexadecimal
13. Hashing
13.1 Getting Started
13.2 Hashing
How to Buy
You can get this book on the following online store,
Lulu, http://www.lulu.com/shop/agus-kurniawan/practical-kotlin-programming/ebook/product-23971423.html
Google Play Book, https://play.google.com/store/books/details?id=GTOGDwAAQBAJ
Kobo, https://www.kobo.com/de/en/ebook/practical-kotlin-programming
Amazon Kindle, https://www.amazon.com/dp/B07NCN7751
Apple iBookstore, http://itunes.apple.com/us/book/isbn9780359404476
cda66688-e2ae-4ac8-bafa-b0f59509f3f8|1|5.0
Tags:
Books | Java
by Agus Kurniawan
29. January 2019 04:15
This book was written to help anyone who wants to get started with Ubuntu Core for Raspberry Pi 3. It describes all the basic elements of the Ubuntu Core with step-by-step approach.
Table of Content
1. Introduction to Raspberry Pi 3 and Ubuntu Core
1.1 Raspberry Pi 3
1.2 Getting Hardware
1.3 Ubuntu Core
1.4 Testing
2. Preparing Ubuntu Core for Raspberry Pi 3
2.1 Getting Started
2.2 Preparation
2.2.1 Register to Ubuntu One
2.2.2 Setting up SSH Key for Linux and Mac
2.2.3 Setting up SSH Key for Windows
2.2.4 Setting MicroSD Card
2.3 Download Ubuntu Core
2.4 Flashing Ubuntu Core into MicroSD Card
2.4.1 Flashing using dd
2.4.2 Flashing using Win32DiskImager
2.4.3 Flashing using Etcher
2.5 Plugin microSD card to Raspberry Pi 3
3. Powering Up, Running, and Configuring Ubuntu Core
3.1 Put Them All!
3.2 First Configuration
3.3 Access Ubuntu Core via SSH
3.3.1 Accessing Ubuntu Core via Linux and Mac
3.3.2 Accessing Ubuntu Core via Windows
3.4 Rebooting
3.5 Shutdown
3.6 Reboot and Shutdown in Classic Mode
4. Accessing Ubuntu Core over SFTP
4.1 Getting Started
4.2 Configuring FileZilla
4.3 Testing
5. Raspberry Pi Programming for Ubuntu Core
5.1 Getting Started
5.2 Install Development Platform Runtimes
5.3 Python
5.4 C/C++
5.5 Node.js
5.6 Exit from Classic Mode
6. Ubuntu Core Programming with snap
6.1 Getting Started
6.2 Create snap project
6.3 Build a snap project
6.4 Running
6.5 What's Next?
7. GPIO Programming for Ubuntu Core
7.1 Introduction to GPIO
7.2 Installing Python Library for GPIO and GPIO Tools
7.3 Accessing GPIO
7.4 Demo
7.5 Further Reading
How to Buy
You can get this book on the following online store.
Lulu, http://www.lulu.com/shop/agus-kurniawan/getting-started-with-ubuntu-core-for-raspberry-pi-3/ebook/product-23964600.html
Google Play Book, https://play.google.com/store/books/details?id=Q3qFDwAAQBAJ
Amazon Kindle, https://www.amazon.com/dp/B07N6LT9PC
Kobo, https://www.kobo.com/de/en/ebook/getting-started-with-ubuntu-core-for-raspberry-pi-3
by Agus Kurniawan
20. January 2019 23:18
I finished my new book about Building Wireless Sensor Networks with ESP32 LoRa. This book helps you to develop WSN applications with ESP32 over LoRa network.
Table of Content
1. Preparing Development Environment
1.1 ESP32 LoRa
1.2 Development Tools
1.3 Testing
2. Set up ESP32 LoRa
2.1 Getting Started
2.2 Installing Arduino Sketch
2.3 ESP32 LoRa Board Driver
2.4 Connecting ESP32 LoRa Board to Computer
2.5 Setting up Heltec Wifi LoRa 32
2.6 Hello ESP32 LoRa: Blinking LED
2.6.1 Writing Program
2.6.2 Compiling and Uploading Program
2.7 Updating and Erasing Program
2.8 What's Next?
3. Sending and Receiving Data over ESP32 LoRa
3.1 Getting Started
3.2 Writing LoRa Sender
3.3 Writing LoRa Receiver
3.4 Testing
4. Handling LoRa Receiver Interrupt
4.1 Getting Started
4.2 Writing LoRa Sender
4.3 Writing Interrupt LoRa Receiver
4.4 Testing
5. Broadcast Messages over LoRa Network
5.1 Getting Started
5.2 Developing LoRa Broadcast Node 1
5.3 Developing LoRa Broadcast Node 2
5.4 Testing
6. Building WSN Application Based ESP32 LoRa
6.1 Getting Started
6.2 Developing Sensor Node
6.2.1 Wiring
6.2.2 Writing Program
6.3 Developing Sensor Sink
6.4 Testing
How to Buy
You can get this book on the following online store:
Lulu, http://www.lulu.com/shop/agus-kurniawan/building-wireless-sensor-networks-with-esp32-lora/ebook/product-23955151.html
Google Play Book, https://play.google.com/store/books/details?id=_mWEDwAAQBAJ
Amazon Kindle, https://www.amazon.com/dp/B07MYL5S85
Kobo, https://www.kobo.com/en/ebook/building-wireless-sensor-networks-with-esp32-lora
Apple iBookstore, http://itunes.apple.com/us/book/isbn9780359372317
by Agus Kurniawan
30. December 2018 12:53
This book helps you to get started Arduino development with ESP32 boards.
Table of Content
1. Preparing Development Environment
1.1 ESP32
1.2 Electronics Components
1.2.1 Arduino Starter Kit
1.2.2 Fritzing
1.2.3 Cooking-Hacks: Arduino Starter Kit
1.2.4 Arduino Sidekick Basic kit v2
1.2.5 Grove - Starter Kit for Arduino
1.2.6 DFRobot - Arduino Kit for Beginner v3
1.3 Development Tools
1.4 Testing
2. Sketch Programming
2.1 Getting Started
2.2 Arduino Hardware Driver
2.3 Setting up Arduino for ESP32
2.4 Hello World for ESP32 Board
2.5 Basic Sketch Programming
2.6 Digital I/O
3. Working with UART- Serial Communication
3.1 Getting Started
3.2 Serial Communication
4. Working with Analog Input and PWM
4.1 Getting Started
4.2 Analog I/O: Reading Analog (ADC)
4.3 PWM
4.3.1 ESP32 PWM
4.3.2 Controlling RGB LED Color
4.3.3 Writing Arduino Sketch
5. Working with SPI
5.1 Getting Started
5.2 Wiring
5.3 Writing a Program
5.4 Testing
6. Working with I2C
6.1 Getting Started
6.2 Writing Program
6.3 Writing Program
6.4 Testing
7. ESP32 WiFi Networking and IoT Application
7.1 Getting Started
7.2 Scanning WiFi Hotspot
7.3 Connecting to a WiFi Network
7.4 Building a Simple IoT Application
7.4.1 Wiring
7.4.2 Writing Program
7.4.3 Testing
8. Working with EEPROM
8.1 Getting Started
8.2 Demo
How to Buy
You can get this book on the following online book store:
Lulu, http://www.lulu.com/shop/agus-kurniawan/arduino-sketch-for-esp32-development-workshop/ebook/product-23930421.html
Google Play Book, https://play.google.com/store/books/details?id=eNWBDwAAQBAJ
Amazon Kindle, https://www.amazon.com/dp/B07MDNX1Z6
Kobo, https://www.kobo.com/de/en/ebook/arduino-sketch-for-esp32-development-workshop
Apple iBookStore, http://itunes.apple.com/us/book/isbn9780359324491
by Agus Kurniawan
16. December 2018 16:16
This book helps you to get started with NodeMCU development on ESP32 boards. Several simple projects in this book can accelerate your learning.
Table of Content
1. Preparing Development Environment
1.1 NodeMCU
1.2 Electronics Components
1.2.1 Arduino Starter Kit
1.2.2 Fritzing
1.2.3 Cooking-Hacks: Arduino Starter Kit
1.2.4 Arduino Sidekick Basic kit v2
1.2.5 Grove - Starter Kit for Arduino
1.2.6 DFRobot - Arduino Kit for Beginner v3
1.3 Development Tools
1.4 Testing
2. Setting Up NodeMCU for ESP32
2.1 Getting Started
2.2 Connecting ESP32 board to Computer
2.3 Building NodeMCU Firmware for ESP32 Boards
2.4 Configuring and Flashing NodeMCU Project for ESP32
2.5 Flashing NodeMCU Firmware
2.5.1 Windows Platform
2.5.2 Linux and OS X Platforms
2.6 Development Tools
2.7 Hello NodeMCU: Blinking LED
2.7.1 Wiring
2.7.2 Writing Program Using Serial/UART Tool
2.7.3 Uploading Lua Script File to NodeMCU Board
3. Lua Programming Language
3.1 Preparing Development Environment
3.2 Common Rule
3.3 Variables
3.3.1 Declaring Variable
3.3.2 Assigning Variables
3.3.3 Demo
3.4 Comment
3.5 Arithmetic Operations
3.6 Mathematical Functions
3.7 Increment and Decrement
3.8 Comparison Operators
3.9 Logical Operators
3.10 Decision - if..then
3.11 Iteration - for
3.12 Iteration - while
3.13 Iteration - repeat
3.14 break and do
3.15 Array
3.16 Functions
3.17 Lua Modules
4. GPIO Programming
4.1 Getting Started
4.2 Wiring
4.3 Writing a Program
4.4 Testing
5. PWM and Analog Input
5.1 Getting Started
5.2 Demo Analog Output (PWM) : RGB LED
5.2.1 Wiring
5.2.2 Writing Program
5.2.3 Testing
5.3 Demo Analog Input: Working with SparkFun Electret Microphone Breakout
5.3.1 Wiring
5.3.2 Writing Program
5.3.3 Testing
6. Working with I2C
6.1 Getting Started
6.2 Writing Program
6.3 Writing Program
6.4 Testing
7. Working with UART
7.1 Getting Started
7.2 Wiring
7.3 Writing a Program
7.4 Testing
8. Working with SPI
8.1 Getting Started
8.2 Wiring
8.3 Writing a Program
8.4 Testing
9. Connecting to a Network
9.1 Connecting to a WiFi Hotspot
9.2 Building a Simple Web Server
How to Buy
You can get this e-book on the following online store:
Google Play Book, https://play.google.com/store/books/details?id=LVx_DwAAQBAJ
Amazon Kindle, https://www.amazon.com/dp/B07LDK4FFK
Lulu, http://www.lulu.com/shop/agus-kurniawan/nodemcu-for-esp32-development-workshop/ebook/product-23914069.html
Kobo, https://www.kobo.com/de/en/ebook/nodemcu-for-esp32-development-workshop
Apple iBookStore, http://itunes.apple.com/us/book/isbn9780359295753
by Agus Kurniawan
10. December 2018 02:22
This book explores how to work ACKme Mackerel AMW004 Development. I use terminal command and Python to develop programs on ACKme Mackerel AMW004 board.
Table of Content
1. Preparing Development
1.1 ACKme Mackerel AMW004
1.2 Electronic Components
1.3 Development Tools
2. Set up Development and Testing Environment
2.1 Getting Started
2.2 Connecting to Computer
2.3 Executing Commands on ACKme Mackerel AMW004
2.4 Updating Firmware
3. GPIO Programming
3.1 Getting Started
3.2 Digital I/O
3.3 Python Programming for ACKme Mackerel AMW004
4. Working with ADC and PWM
4.1 Getting Started
4.2 Working with ADC
4.3 Working with PWM
4.3.1 ACKme Mackerel AMW004 PWM
4.3.2 Controlling RGB LED Color
4.3.3 Writing Program
5. WiFi Networking
5.1 Getting Started
5.2 Connecting to Existing WiFi
6. Building Internet of Things Application
6.1 Getting Started
6.2 Accessing RESTful Server
6.3 Building RESTful own Server
How to buy
You can get this book on the following online store.
Amazon Kindle, https://www.amazon.com/dp/B07L7QF8GK
Lulu, http://www.lulu.com/shop/getting-started-with-ackme-mackerel-amw004-development/ebook/product-23905433.html
Kobo, https://www.kobo.com/de/en/ebook/getting-started-with-ackme-mackerel-amw004-development
Google Play, https://play.google.com/store/books/details?id=eBR-DwAAQBAJ
Apple iBookStore, http://itunes.apple.com/us/book/isbn9780359281664
by Agus Kurniawan
19. November 2018 11:58
This book helps readers to get started with IOIO-OTG board development using Java. The title book is IOIO-OTG Development Workshop. I hope this book is hopeful for you.
Table of Content
1. Preparing Development Environment
1.1 IOIO-OTG
1.2 Electronic Components
1.2.1 Arduino Starter Kit
1.2.2 Fritzing
1.2.3 Cooking-Hacks: Arduino Starter Kit
1.2.4 Arduino Sidekick Basic kit
1.3 Testing
2. Setting up Development Environment
2.1 Getting Started
2.2 IOIO-OTG Driver
2.3 Setting up Development Environment
2.4 Hello World for IOIO-OTG
2.4.1 Creating Project
2.4.2 Writing Program
2.4.3 Compiling and Running
2.5 Upgrading/Reflashing IOIO-OTG Firmware
3. Working with Digital Input/Output
3.1 Getting Started
3.2 Demo: Digital I/O
3.2.1 Wiring
3.2.2 Creating Project
3.2.3 Writing Program
3.2.4 Compiling and Running
4. Working with Analog Input and PWM
4.1 Getting Started
4.2 Demo: Analog Input
4.2.1 Wiring
4.2.2 Creating Project
4.2.3 Writing Program
4.2.4 Compiling and Running
4.3 Demo: PWM
4.3.1 IOIO-OTG PWM
4.3.2 Controlling RGB LED Color
4.3.3 Creating Project
4.3.4 Writing Program
4.3.5 Compiling and Running
5. Serial Communication
5.1 Getting Started
5.2 Demo: Serial Communication
5.2.1 Wiring
5.2.2 Creating Project
5.2.3 Writing Program
5.2.4 Compiling and Running
6. Working with SPI
6.1 Getting Started
6.2 Wiring
6.2.1 Creating Project
6.2.2 Writing Program
6.2.3 Compiling and Running
7. Working with I2C
7.1 Getting Started
7.2 Wiring
7.3 Creating Project
7.4 Writing Arduino Program
7.5 Writing IOIO-OTG Program
7.6 Compiling and Running
How to Buy
You can get this book on the following online store:
Lulu, http://www.lulu.com/shop/agus-kurniawan/ioio-otg-development-workshop/ebook/product-23877401.html
Amazon Kindle, https://www.amazon.com/dp/B07KNXX311
Google Play Book, https://play.google.com/store/books/details?id=J7V6DwAAQBAJ
Kobo, https://www.kobo.com/de/en/ebook/ioio-otg-development-workshop
Apple iBookStore, http://itunes.apple.com/us/book/isbn9780359235483
by Agus Kurniawan
21. October 2018 18:19
My new book about Arduino MKR WIFI 1010 Development Workshop explores how to work with Arduino MKR WIFI 1010.
Table of Content
1. Setting up Development Environment
1.1 Arduino MKR WIFI 1010
1.2 Electronic Components
1.2.1 Arduino Starter Kit
1.2.2 Fritzing
1.2.3 Cooking-Hacks: Arduino Starter Kit
1.2.4 Arduino Sidekick Basic kit
1.3 Unboxing
1.4 Testing
2. Sketch Programming
2.1 Getting Started
2.2 Arduino Hardware Driver
2.3 Setting up Arduino MKR WIFI 1010
2.4 Hello World for Arduino MKR WIFI 1010
2.5 Basic Sketch Programming
2.6 Digital I/O
2.7 Serial Communication
2.8 Analog I/O: Reading Analog (ADC)
2.9 PWM
2.9.1 Arduino MKR WIFI 1010 PWM
2.9.2 Controlling RGB LED Color
2.9.3 Writing Arduino Sketch
2.10 What's Next?
3. Working with SPI
3.1 Getting Started
3.2 Wiring
3.3 Writing a Program
3.4 Testing
4. Working with I2C
4.1 Getting Started
4.2 Writing Program
4.3 Writing Program
4.4 Testing
5. Arduino WiFi Networking
5.1 Getting Started
5.2 Adding WiFiNINA Library
5.3 Scanning WiFi Hotspot
5.4 Connecting to a WiFi Network
5.5 Building a Simple IoT Application
5.5.1 Wiring
5.5.2 Writing Program
5.5.3 Testing
6. Working with Internal RTC and Sleep Mode
6.1 Getting Started
6.2 Adding RTC Library
6.3 Demo: Simple RTC
6.4 Demo: Connecting to Network Time Protocol (NTP) Server
6.5 Demo: Sleep and Wake up
How to Buy
You can get this book on the following online store:
Amazon Kindle, https://www.amazon.com/dp/B07J4FJNFB
Google Play Book, https://play.google.com/store/books/details?id=rIBxDwAAQBAJ
Lulu, http://www.lulu.com/shop/agus-kurniawan/arduino-mkr-wifi-1010-development-workshop/ebook/product-23827169.html
Apple iBookStore, http://itunes.apple.com/us/book/isbn9780359140978
Kobo, https://www.kobo.com/de/en/ebook/arduino-mkr-wifi-1010-development-workshop