This project demonstrates how Vega and Vega-Lite can be used in custom visuals in PowerBI. This custom visual is not intended for daily use. Think of it as a hello world for Vega and Vega-Lite in PowerBI custom visuals.
The open PowerBI with developer mode enabled and create a developer visual.
Contributing
This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.
When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
Go program that allows you to generate DuckDuckGo email aliases from the command line.
Setup and Usage
Create a Duck Address if you don’t already have one
Run generate-ddg config to complete the initial setup.
Config key names can also be set as environment variables (capitalized and - replaced with _)
.env is loaded
Run generate-ddg
In some cases, this may error if DuckDuckGo suspects you are a bot. If this happens, try to login normally (through DuckDuckGo) and when the magic link/phrase is sent to your email, run the program again with --otp "<phrase>".
The config files will be stored in <XDG_CONFIG_HOME>/generate-ddg/. The directory is dependent on your OS:
The program will generate a new email alias and print it to the console.
Installation
Binary
Download the latest release from the releases page, ensuring you download the correct binary for your system.
Execute the binary from the command line! Optionally, you can move it to a directory in your PATH.
For example, on Linux, if you’ve downloaded generate-ddg_linux_amd64 to your Downloads directory:
mv ~/Downloads/generate-ddg_linux_amd64 /usr/local/bin/generate-ddg
chmod +x /usr/local/bin/generate-ddg
generate-ddg # Run it!
Building from source
Ensure you have Go installed on your system.
git clone https://github.com/slashtechno/generate-ddg.git
cd generate-ddg
go install
They have a feature wherein you can input the API token for DuckDuckGo (retrieved from DevTools’ Network tab) allowing you to generate aliases from within the Bitwarden.
Chameleody: Music Player with most features which other music players have and more original features. I haven’t finished it yet. But, It is enough ready to use.
Original Features that I am going to add and which is the reason I am developing and loving this project:
Ability to add every information about the song: mood, genre, version, age added; also will be added bpm, singer’s voice,
Ability to add smart templates, which later you can use for smart search and smart shuffle.
It is like “Version : Original – 100%, Remix – 60%, Cover – 20%, Instrumental – 0%”. And for all other classifications
When you will use it to searching it will show all bigger than 0% or only 100%. If You use it for smart shuffle, I think you understand how it will work
Why I am doing this:
Everyone uses shuffle in music players, But I wanted a smarter one, I used a 5-star classification of AIMP, but it wasn’t enough. Your specifications are changeable of your situation, mood. Sometimes you are sad, sometimes you energized, sometimes you are just only what to hear NightCore remixes, sometimes you want calm, dreaming songs.
Final Project requirements:
Link to a repository (30 pts max)✅
Use of data storage (DB, Cloud or SharedPreferences) (20 pts max)✅ SharedPreferences, Room. (Also Firebase will be added, now there is only json file)
Design and representation (figma design first is welcome) (20 pts max)✅ link
Wise use of libraries and frameworks (20 pts max)✅ gradle Glide; Room; Coroutines; Lifecycle, Palette and Media from androidx
Clean code (10 pts max)❌
BONUS POINTS FOR (20 pts):
Projects related to our University❌
Projects which use Dagger, Glide other tools✅ Used Glide for all cover art displays and getting a palette of cover art in the player window
Submit link to repository:
commit history elder than 1 week (10 pts)✅
apk in releases (5 pts)✅ will be
screenshots, name and short description (15 pts)✅ will be
Screenshots of UI
Main window
Player window
UI colors of Player will change according to song’s art’s color
Player has four tabs
Lyrics
Cover art
General info
Mood classification
Screenshots of misc capabilities
App icon
Logo
Asking for permission
Searching songs
Sorting songs list
Notification
Player has four shuffle types, on the left of play button, on the right new feature which has not implemented
Repeat one, when next or prev pressed it will work like a Repeat All
Repeat All
Shuffle All
Smart shuffle, this one doesn’t implemented yet. It is going to be one of the original features
With SwiftUI currently, Apple has not provided a decimal keypad for watchOS. Nor have they provided the ability to switch input types on a TextField() for watchOS. This is my kinda dirty fix.
Apple Watch 44mm
Apple Watch 38mm
Installation Instructions
WatchOS also has a weird issue with Swift Packages where you have to manually add the framework to the Watch Extension.
File > Swift Packages > add Package Dependecy...
paste https://github.com/ApplebaumIan/SwiftUI-Apple-Watch-Decimal-Pad.git into the search bar. Once installed navigate to your Xcode Project and select the General tab. Select your watchOS Extension target and scroll to Frameworks, Libraries, and Embedded Content click the + button and add SwiftUI Apple Watch Decimal Pad framework.
You should now be able to add import SwiftUI_Apple_Watch_Decimal_Pad to the top of your desired Swift file.
Create new book (requires authenticated user with ‘book:create’ authority set in JWT token as Authorization header)
[POST] http://localhost:9090/api/v1/books
{
"author": "J. K. Rowling",
"title": "Harry Potter and the Order of the Phoenix",
"isbn": "054579143X",
"pages": "576",
"hardTop": "true",
"ebook": "false",
"imageUrl": "https://m.media-amazon.com/images/I/51bZujlJxlL._SX422_BO1,204,203,200_.jpg"
}
Update a book by ISBN (requires authenticated user with ‘book:update’ authority set in JWT token as Authorization header)
{
"author": "J. K. Rowling",
"title": "Harry Potter and the Prisoner of Azkaban",
"isbn": "9780439554923",
"imageUrl": "https://m.media-amazon.com/images/P/1408855674.01._SCLZZZZZZZ_SX500_.jpg"
"pages": "576"
}
Partially update a book by ISBN (requires authenticated user with ‘book:update’ authority set in JWT token as Authorization header)
Get My-Books with optional pagination (by default returns first 10 results) (requires authenticated user with ‘book:read’ (default) authority set in JWT token as Authorization header)
[GET] http://localhost:9090/api/v1/my-books
Add new book by ISBN to My-Books (requires authenticated user with ‘book:read’ (default) authority set in JWT token as Authorization header)
Get Wishlist with optional pagination (by default returns first 10 results) (requires authenticated user with ‘book:read’ (default) authority set in JWT token as Authorization header)
[GET] http://localhost:9090/api/v1/wishlist
Add new book by ISBN to Wishlist (requires authenticated user with ‘book:read’ (default) authority set in JWT token as Authorization header)
Reset access token using refresh token stored in Local Storage after login (if using endpoints manually – refresh token should be sent as Authorization header & new access token in ‘Authorization’ header is returned)
Hello! This is a python program that is used for notifying Stock Trading News via SMS. I’ve referenced this from Angela’s 100 Days of Python Udemy Course. There are a few things that you will need to do in order to make this API work.
an Example of a Stock Trading News Section is right here. Let’s take Tesla for example:
What we want is a reproduction of this, but on an SMS.
The idea here is that we want to compare the closing prices of a certain company’s stock (In this case, it is Tesla) to the day before yesterday (y3) and yesterday (y2).
If there is a difference in closing stock price, then depending on the situation, a news article will pop up in your SMS messanger (or in any phone number you specify it to).
You will need to import a few libraries like so to get this python applicaiton running.
The request library is used for getting data and information from external APIs, and also establish connections with.
You will also need to install the twilio rest library to connect python/your environment.
The links for all the APIs:
A passcode entry field for macOS similar to Apple’s two-factor authentication field.
About
The control is made up of multiple groups of passcode ‘cells’. Each cell holds a single ‘character’, and you define groups of cells using a group separator. The pattern you define provides the layout — containing # for a passcode cell and - for a group separator.
For example, to create a passcode of six characters split evenly into two groups of three cells, you set the passcode pattern to "###-###"
The font to use when displaying the character in a cell
padding (CGSize)
The padding to use between the character and the edge of its cell
edgeInsets (NSEdgeInsets)
The padding to use between the cells and the bounds of the control
isEnabled (Bool)
Enable or disable the control (observable)
Validations
There are two methods of validation
allowableCharacters (String)
This settings on the control allows you to specify a string containing the characters that are allowed within the control. By default, this is 0123456789.
characterValidatorBlock
For more complex validations, you can specify a callback block which can be used to validate each character
It takes a string element and returns either a value transformed string element (for example, uppercased), or nil if the presented character isn’t valid for the control.
// A validator block which allows numbers and case-insensitive A-F characters
self.passcode.characterValidatorBlock ={ element inletvalidChars="0123456789ABCDEF"lets= element.uppercased() // Always check against uppercase
if validChars.contains(s){ // If the validChars contains the uppercased char...
return s.first // ... return the uppercased version
}returnnil // Unsupported char, ignore by returning nil
}
Values
You can bind to these member variables to receive updates as the control content changes.
isValidPasscode (Bool)
Is the passcode entered a valid passcode (ie. all the values are specified)
isEmpty (Bool)
Are there no values specified yet
passcodeValue (String)
If the passcode is valid, the passcode value as a string, otherwise nil.
Delegate (DSFPasscodeViewHandling)
You can attach a delegate to receive messages back from the view if binding is not your thing.
Called when the content of the passcode view changes.
func passcodeView(
_ view:DSFPasscodeView, // The passcode view
updatedPasscodeValue passcode:String) // The valid passcode as a string of characters
Called ONLY when the passcode is valid and complete.
func passcodeView(
_ view:DSFPasscodeView, // The passcode view
didTryInvalidCharacter invalidChar:String?, // The invalid character, or nil for a special key
atIndex index:Int) // The passcode cell index where the attempt failed
Called if the user presses an unsupported character or key in a passcode cell.
Known issues
Xcode has been broken for many years regarding support for @IBDesignable/@IBInspectable. Whilst this control provides support, Xcode’s support for @IBDesignable for a control provided from a package is completely broken.
If you copy the DSFPasscodeView source files directly into your project the Designables work as expected (FB8358478).
License
MIT. Use it and abuse it for anything you want, just attribute my work. Let me know if you do use it somewhere, I’d love to hear about it!
MIT License
Copyright (c) 2021 Darren Ford
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
A passcode entry field for macOS similar to Apple’s two-factor authentication field.
About
The control is made up of multiple groups of passcode ‘cells’. Each cell holds a single ‘character’, and you define groups of cells using a group separator. The pattern you define provides the layout — containing # for a passcode cell and - for a group separator.
For example, to create a passcode of six characters split evenly into two groups of three cells, you set the passcode pattern to "###-###"
The font to use when displaying the character in a cell
padding (CGSize)
The padding to use between the character and the edge of its cell
edgeInsets (NSEdgeInsets)
The padding to use between the cells and the bounds of the control
isEnabled (Bool)
Enable or disable the control (observable)
Validations
There are two methods of validation
allowableCharacters (String)
This settings on the control allows you to specify a string containing the characters that are allowed within the control. By default, this is 0123456789.
characterValidatorBlock
For more complex validations, you can specify a callback block which can be used to validate each character
It takes a string element and returns either a value transformed string element (for example, uppercased), or nil if the presented character isn’t valid for the control.
// A validator block which allows numbers and case-insensitive A-F characters
self.passcode.characterValidatorBlock ={ element inletvalidChars="0123456789ABCDEF"lets= element.uppercased() // Always check against uppercase
if validChars.contains(s){ // If the validChars contains the uppercased char...
return s.first // ... return the uppercased version
}returnnil // Unsupported char, ignore by returning nil
}
Values
You can bind to these member variables to receive updates as the control content changes.
isValidPasscode (Bool)
Is the passcode entered a valid passcode (ie. all the values are specified)
isEmpty (Bool)
Are there no values specified yet
passcodeValue (String)
If the passcode is valid, the passcode value as a string, otherwise nil.
Delegate (DSFPasscodeViewHandling)
You can attach a delegate to receive messages back from the view if binding is not your thing.
Called when the content of the passcode view changes.
func passcodeView(
_ view:DSFPasscodeView, // The passcode view
updatedPasscodeValue passcode:String) // The valid passcode as a string of characters
Called ONLY when the passcode is valid and complete.
func passcodeView(
_ view:DSFPasscodeView, // The passcode view
didTryInvalidCharacter invalidChar:String?, // The invalid character, or nil for a special key
atIndex index:Int) // The passcode cell index where the attempt failed
Called if the user presses an unsupported character or key in a passcode cell.
Known issues
Xcode has been broken for many years regarding support for @IBDesignable/@IBInspectable. Whilst this control provides support, Xcode’s support for @IBDesignable for a control provided from a package is completely broken.
If you copy the DSFPasscodeView source files directly into your project the Designables work as expected (FB8358478).
License
MIT. Use it and abuse it for anything you want, just attribute my work. Let me know if you do use it somewhere, I’d love to hear about it!
MIT License
Copyright (c) 2021 Darren Ford
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.