SitePoint PHP Blog:
Geospatial Search with SOLR and Solarium
November 25, 2014 @ 13:55:56
voice your opinion now!
The SitePoint PHP blog has a new post from Lukas White that gets into the details of combining SOLR searching with Solarium to perform geospatial queries.
In a recent series of articles I looked in detail at Apache's SOLR and Solarium. To recap; SOLR is a search service with a raft of features - such as faceted search and result highlighting - which runs as a web service. Solarium is a PHP library which allows you to integrate with SOLR - whether local or remote - interacting with it as if it were a native component of your application. If you're unfamiliar with either, then my series is over here, and I'd urge you to take a look. In this article, I'm going to look at another part of SOLR which warrants its own discussion; Geospatial search.
He uses a simple example, locating airports near a given location, to give a more "real world" idea of how it all works. He starts by introducing the concept of geospatial searching and the idea of "points" as they relate to a specific location. He then gets into the actual setup of the application, including the SOLR schema configuration and making the queries on the data. The Solarium library allows for simple location queries when given just the "latlong" helper type and the location/distance to use for the starting point. He uses the data from the OpenFlights service to gather the airport data and creates a search form and basic list output of the results from searches on it. If you'd like to see the end result in action, check out this demo website.
Digging in to Laravel's IoC Container
November 25, 2014 @ 12:23:07
voice your opinion now!
NetTuts.com has a new tutorial posted that digs into the Laravel IoC (Inversion of Control) container, one of the key features of the framework making it easy to create and use objects all around your applications.
Inversion of Control, or IoC, is a technique that allows control to be inverted when compared to classical procedural code. The most prominent form of IoC is, of course, Dependency Injection, or DI. Laravel's IoC container is one of the most used Laravel features, yet is probably the least understood.
He starts with an example of basic dependency injection (constructor injection) and how this relates to the Laravel framework's IoC handling (hint: it's all IoC). He includes examples of some built-in Laravel bindings and talks about the difference between shared and non-shared bindings. He also looks at conditional binding, how dependencies are resolved and how you can define your own custom binding implementations. Other topics mentioned include tagging, rebounds, rebinding and extending. He ends the article with a look at how you can use the IoC outside of Laravel too.
Alternatives To MVC
November 25, 2014 @ 11:52:15
voice your opinion now!
Following up on his previous article talking about the MVC design pattern (and the idea of "MVC"), Anthony Ferrara has posted some alternatives to MVC for your consideration. These other options are mostly variants of the typical MVC structure and could be considered "siblings".
Last week, I wrote A Beginner's Guide To MVC For The Web. In it, I described some of the problems with both the MVC pattern and the conceptual "MVC" that frameworks use. But what I didn't do is describe better ways. I didn't describe any of the alternatives. So let's do that. Let's talk about some of the alternatives to MVC...
He starts by restating some of the major issues with the typical MVC implementation (three of them). From there, he covers each of the alternatives with a summary paragraph or three about each:
He talks about the similarities between them, mainly that they're all "triads" of functionality and that they all have the same basic purpose. He also suggests that they're all "pretending" to be application architectures.
If it's not clear where something fits in your application, that's a sign that your application architecture is flawed. Not that you need to introduce some magic in to get it to work. So let's admit that none of these are application architectures... And let's admit that there is a problem we need to solve.
Using Phing to SSH into a Vagrant box
November 25, 2014 @ 10:22:55
voice your opinion now!
In a quick new post to his site Rob Allen shows you how to have Phing SSH into a Vagrant box as a part of the VM creation process. In his case, he uses it to run database migrations.
Now that I've started using migrations, I've discovered a minor irritant. I run this project on a Vagrant VM and have discovered that I keep forgetting to ssh into the vagrant box before running the migrations script. The obvious solution is to automate this and I decided to use Phing to do so.
He walks through the installation of the libssh2 software (if you don't already have it) and the ssh2 PHP extensionSshTask to make the connection as the "vagrant" user and execute the given PHP command.
VG Tech Blog:
Using Local Packages as Composer Dependencies
November 25, 2014 @ 09:16:45
voice your opinion now!
On the VG Tech blog this latest post shows you how to use local packages as dependencies in your Composer-enabled applications.
Composer changed pretty much everything when it comes to including dependencies in PHP projects. No more SVN externals or copying large library folders into your project. This is really great, but there's one thing I've been struggling to find a smooth process for; developing dependencies for your project. When implementing your project, the need for some module, library, service provider or something else will arise, and sometimes you'll have to implement it yourself. So, how to do that?
He starts with a list of three suggestions (including actually having the code in the project or mirroring the package) but suggests the last of the three: using a repository with a relative file system setup. He uses the "repositories" configuration option in the Composer config to define a "vcs" type and gives it a path to the package contents. He ends the post with the resulting output of the Composer install command, showing the package pulled in and being able to commit to it just like any other repo.
Packagist Latest Releases for 11.25.2014
November 25, 2014 @ 08:07:27
voice your opinion now!
Recent releases from the Packagist:
- yan/site-utility-bundle (v1.9.1, v1.9.0)
- joselfonseca/laravel-api-tools (1.0.1)
Some tools for Laravel API development, nothing really new, just wrapers and helper stuff
- ducntq/yii2-app-basic-practical (1.0.1, 1.0)
Yii 2 Basic Practical Application Template
- cloak/peridot-cloak (1.0.1)
- expectation/peridot-expectation (1.2.0)
Expectation for peridot
- believer-ufa/prettyforms (0.1.15)
Helps to make a simple and easy client-server validation for forms
- tbbc/rest-util-bundle (v1.0.0)
Bundle for integrating tbbc/rest-util lib in a Symfony application.
- travi/framework (v0.14.1)
- kassko/data-access (v0.4.0.1-alpha, v0.4.0.0-alpha)
An intelligent mapper witch can give an object representation of inconsistent data like data from some legacy database and manage object cache.
- kassko/data-access-bundle (v0.5.0.0-alpha)
Integrates data-access in Symfony projects.
- bem/bh (220.127.116.11, 18.104.22.168)
Template engine. BEMJSON -> HTML processor. PHP port of https://github.com/bem/bh
- diasbruno/stc-pages (0.1.8, 0.1.7, 0.1.6, 0.1.5, 0.1.4, 0.1.3, 0.1.2, 0.1.1, 0.1.0)
stc pages plugin.
- patricktalmadge/bootstrapper (5.4.0)
Twitter Bootstrap markup generator
- oojs/ui (v0.2.2, v0.2.1)
- oojs/oojs-ui (v0.2.2, v0.2.1)
- expectation/expectation (1.4.1)
expectation library for unit testing
- cloak/cloak (1.4.1)
cloak is a library that takes a code coverage.
- skyzyx/strong-types (1.0.7, 1.0.6, 1.0.5)
Enables strong types for PHP. This allows for tighter validation, especially when accepting input from users.
- opis/events (2.4.1)
Opis Events is a library that can be used for dispatching and intercepting events. This library is builded on top of the Opis Routing library and provides a full range of features like filters and events' priorities.
- uthando-cms/uthando-common (1.8.0)
Common class module for Uthando CMS
- irestful/concretesymfonyrouterepositories (13.11.28)
- uthando-cms/uthando-navigation (1.6.0)
Navigation module for Uthando CMS
- uthando-cms/uthando-twitter (1.2.0)
Twitter module for Uthando CMS
- wazaari/monolog-mysql (v1.0.1)
A handler for Monolog that sends messages to MySQL
- nkt/scalar (0.1.0)
Methods for PHP scalars
- opis/http-routing (2.4.2)
Opis HTTP Routing is a library that can be used to route all types of HTTP request, providing a full range of features, like path filters, domain filters, user defined filters, access filters, custom error handlers for HTTP errors and much more.
- caouecs/bootstrap3 (1.0.0)
Bootstrap 3 for Laravel 4
- wtfzdotnet/tmdb-package (v0.1.3, v0.1.2)
Laravel Package for TMDB ( The Movie Database ) API. Provides easy access to the wtfzdotnet/php-tmdb-api library.
- bradfeehan/desk-php (v1.5.0)
PHP client for Desk.com v2 API based on Guzzle
- desmart/laravel-mailer (1.0.3)
Prevents from sending email on dev/staging environments.
- caouecs/sirtrevorjs (1.4.3, 1.4.2)
Sir Trevor JS in Laravel 4 project
- chencha/pesapal (0.1)
Pesapal Payments Integration
- coandacms/coandacms (0.2.0)
Coanda (A CMS based on Laravel)
- vimeo/ablincoln (0.1.0)
PHP library for designing online experiments
- coandacms/coanda-core (0.2.0)
The core package for Coanda CMS
- sndsgd/log (0.1.0)
A collection of tools for logging data
- saga/dic-module (7.1.2)
This module provides the Dependency Injection Container integration in Drupal 7.
- ciims-modules/install (2.0.6)
The installation module for CiiMS
- meridius/yadup (1.0)
Database updator for Nette/Tracy panel
- elliotchance/concise (v1.5, v1.4.4)
Concise is test framework for using plain English and minimal code, built on PHPUnit.
- cerealean/php-common-utilities (1.0.2)
Commonly used core PHP functionality improved upon and made for quick, easy use
- mayeco/packagistversion (v1.0.0)
- ekino/wordpress-bundle (1.0.4)
A Symfony bundle to link Symfony with Wordpress
- webvariants/handsontable (v0.0.2)
AddOn for SallyCMS, integrating Handsontable
- siftscience/sift-partner-php (0.0.2)
Sift Science Partnership API PHP library
- elnebuloso/phing-commons (7.0.1)
phing commons build stack
- tomaskuba/blabot (v0.1.0)
Exceptionally language faithful generator of dummy text
- appserver-io/synchronizable (0.1.2)
Thread-Safe and synchronizable objects.
- chippyash/builderpattern (1.0.2)
- phpconsole/phpconsole (3.2.1)
A detached logging facility for PHP to aid your daily development routine
- mpratt/embera (1.8.3)
A Oembed consumer library, that gives you information about urls. It helps you replace urls to youtube or vimeo for example, with their html embed code.
- leafo/lessphp (v0.5.0)
lessphp is a compiler for LESS written in PHP.
- mascame/arrayer (v1.1)
Prepares an array to be put in a file. Very useful for configuration files.
- aedart/overload (0.9.1, 0.9.0)
Provides means to dynamically deal with inaccessible properties, by implementing PHP's magic methods; __get(), __set(), __isset(), and __unset()
- ctrl/discourse-sso (v1.0.0)
Discourse SSO for offsite logins
- credibility/dandb-laravel (v0.2.1)
Laravel Wrapper for DandB REST API
- rfd/imagemagick (1.0.0)
RFD ImageMagick Library
- shazam/easy-config (0.1.1)
Reads Yaml config files
- uploadcare/uploadcare-php (v1.2.6)
Uploadcare API binding for PHP
- jirinapravnik/common (1.0.0)
- credibility/dandb (v1.0.2, v0.2.1)
PHP Wrapper for Dun & Bradstreet Credibility Corp. API
- robbiep/cloudconvert-laravel (v1.0.9)
A Laravel wrapper for the CloudConvert API
- kinglozzer/bfgoogleanalytics (1.1.1)
- billforward/bf-php (v5.2014.327)
BillForward PHP Client Library
- uzyn/cakephp-opauth (1.0.8)
Opauth plugin for CakePHP v2.x, allowing simple plug-n-play 3rd-party authentication with CakePHP
- samsonos/php_fs_aws (1.0.0)
SamsonPHP aws file system service
- laravel/homestead (v2.0.6)
A virtual machine for web artisans.
- trntv/yii2-aceeditor (2.0)
Yii2 ajax.org Ace Editor widget
- u-alberta/uoda-client (2.0.3)
A PHP client to interface with the UAlberta Open Data API (UODA)
- elephant418/model418 (v1.2.0)
A library for a simple & explicit model couch
- shpasser/gae-support (1.0.1)
Google App Engine Support for Laravel apps.
- davelip/laravel-database-queue (0.2.3, 0.2.2)
- zenify/doctrine-methods-hydrator (v4.0.0)
Hydrates presenter methods from parameters to entities
- zenify/doctrine-behaviors (v1.2.2)
Port of KnpLabs/DoctrineBehaviors to Nette
- zenify/doctrine-fixtures (v2.0.0)
Doctrine Fixtures, Faker and Alice integration into Nette
- gointegro/hateoas-bundle (v0.9.4)
GOintegro HATEOAS Bundle
- solve/project (v0.1.11)
- [ Solve Project ] standart edition
- appserver-io/doppelgaenger (0.2.0)
Make PHP structure definition clones which look the same but behave differently
- despark/laravel-project-starter (v1.3.1)
How we bootstrap Laravel's core at Despark.
- suncat/mobile-detect-bundle (v0.9.6)
Symfony2 bundle for detect mobile devices, managing mobile view types, redirect to mobile version.
- alrik11es/stupidly-simple-calendar (0.1.1)
An structured calendar generator in array, object or json format
- appserver-io/phar (0.1.1)
Utility package that provides high performance PHAR helper functions.
- simplon/form (0.2.4, 0.2.3, 0.2.2)
Easy form building, validation and follow-up callbacks
- solve/admin (v0.1.8, v0.1.7)
- [ Solve Admin panel ] for standart edition
- graphstory/graph-kit-php (0.0.9)
Graph Story Graph Kit for PHP
- raphizim/protofast (1.0.0, 1.1.0)
Quickly create a HTML mocks without duplicating code
- bugbuster/integrity_check (3.4.3)
Contao CMS integrity check for some files
- hoa/test (22.214.171.124)
The HoaTest library.
- groovey/generator (v1.0.0)
An easy to use generic template generator.
- christian-seiler/stringparser-bbcode (0.3.3, 0.3.2b)
BBCode parser implementation from 2007
- voilab/acedao (0.9.16)
AceDAO, a simple yet powerful query system
- devfactory/variables (1.0.0)
Laravel package to allow site owners to override a specific config files' variables
- uniqby/yii2-smart-layout (0.2)
Smart Layout behavior for Yii framework 2.
- o5/grido (2.0.5)
Grido - DataGrid for Nette Framework
- simplymvc/simplymvc (1.0.3)
- lafourchette/talend-php-sdk (v1.0.0)
Client for the talend administrator server API
- cement/cement (v1.0.0)
Lightweight and extensible framework for PHP.
- purebilling/sdk (1.99.1)
- rap2hpoutre/laravel-log-viewer (v0.1.1, v0.1.0)
- keboola/syrup (1.7.6, 1.7.5)
Syrup - Concentrated extract(or)s
- romanpitak/dotmailer-api-v2-client (v1.0.7)
Client library for the dotMailer v2 (REST) API.
- pragmarx/ci (v0.1.0)
A Continuous Integration Dashboard Package for Laravel
- aciliainternet/component-fragment-cache (0.1.3)
Acilia Component for Fragment Cache
- linfo/linfo (v2.0.2)
App and library for easily parsing and displaying system information of the host, like network/torrents/cpu/memory/usb/pci/sound cards/filesystems/raid array/ipmi/etc.
- terminal42/contao-changelanguage (2.2.7)
ChangeLanguage extension for Contao Open Source CMS
- kayue/kayue-wordpress-bundle (v2.0.0-BETA2)
Support for authenticating WordPress users in Symfony2.
- stnvh/silverstripe-infoboxes (1.1.7, 1.1.6)
Conditional CMS info boxes.
- potsky/pimp-my-log (1.7.1)
Log viewer for your web server
- plati-tech/simple-mvc (2.1)
A Simple MVC framework with component style
- floppy/common (0.1.1)
Floppy is a file storage library. This library contains shared code for FloppyServer, FloppyClient and FloppyBundle libraries.
- tomk79/request (0.1.2)
- tourman/fsm (1.0.4)
Finite State Machine
- nocarrier/hal (0.9.10)
application/hal builder / formatter for PHP 5.3+
- simogeo/filemanager (v1.7.0)
An open-source file manager
- commerceguys/platform-cli (v1.4.3)
- platformsh/cli (v1.4.3)
- ppokatilo/elastica-entity-mapping-bundle (v0.2.2, v0.2.1)
Automatically updates elasticsearch mappings
- da/oauth-server-bundle (v1.1.3)
This is a prototype bundle
- hypejunction/elgg_dropzone (3.0.0)
Drag&Drop File Uploads
- ptachoire/php-dmtx (1.0.0)
Datamatrix r/w based on libdmtx
- bluem/validation (2.0.3)
Simple, stand-alone validation library
- fsi/datasource (1.2.5)
FSi DataSource Component
- hypejunction/hypewall (3.2.2)
Rich status updates
- korotovsky/sso-sp-bundle (0.1.0)
Single-sign-on bundle for Symfony2. Service Provider part.
- korotovsky/sso-idp-bundle (0.1.0)
Single-sign-on bundle for Symfony2. Identity Provider part.
- madeyourday/contao-rocksolid-custom-elements (v1.2.6)
Create your own, nestable content elements using a modular system. End the WYSIWYG chaos with your own content elements.
- gg/valid-hostname (0.1.0)
A tiny hostname only validator
- angry-developer/sugarcrm-api (2.0.0)
A SugarCRM 7 REST API Wrapper
- fritzmg/contao-sharebuttons (1.0.4)
Simple Contao extension to provide share buttons as a module and content element
- thelia/keyword (v2.4.0)
Associate contents, folders, categories and products to one or more keywords
- authbucket/push-symfony-bundle (0.0.4)
- windwalker/filesystem (2.0.0-beta2)
Windwalker Filesystem package
- windwalker/filter (2.0.0-beta2)
Windwalker Filter package
- windwalker/form (2.0.0-beta2)
Windwalker Form package
- windwalker/html (2.0.0-beta2)
Windwalker Html package
- windwalker/io (2.0.0-beta2)
Windwalker IO package
- windwalker/language (2.0.0-beta2)
Windwalker Language package
- windwalker/loader (2.0.0-beta2)
Windwalker Loader package
- windwalker/middleware (2.0.0-beta2)
Windwalker Middleware package
- windwalker/model (2.0.0-beta2)
Windwalker Model package
- windwalker/profiler (2.0.0-beta2)
Windwalker Profiler package
- windwalker/query (2.0.0-beta2)
Windwalker Query package
- windwalker/record (2.0.0-beta2)
Windwalker Record package
- windwalker/registry (2.0.0-beta2)
Windwalker Registry package
- windwalker/compare (2.0.0-beta2)
Windwalker Compare package
- windwalker/console (2.0.0-beta2)
Windwalker Controller package
- windwalker/controller (2.0.0-beta2)
Windwalker Controller package
- windwalker/crypt (2.0.0-beta2)
Windwalker Crypt package
- windwalker/data (2.0.0-beta2)
Windwalker Data package
- windwalker/database (2.0.0-beta2)
Windwalker Database package
- windwalker/datamapper (2.0.0-beta2)
Windwalker DataMapper package
- windwalker/di (2.0.0-beta2)
Windwalker DI package
- windwalker/dom (2.0.0-beta2)
Windwalker Dom package
- windwalker/environment (2.0.0-beta2)
Windwalker Environment package
- windwalker/event (2.0.0-beta2)
Windwalker Event package
- windwalker/framework (2.0.0-beta2)
Rapido de la vento viro.
- windwalker/application (2.0.0-beta2)
Windwalker Application package
- windwalker/authenticate (2.0.0-beta2)
Windwalker Authenticate package
- windwalker/cache (2.0.0-beta2)
Windwalker Cache package
- mollie/opencart (5.2.2)
Mollie module for OpenCart
- elcodi/bamboo-store (v0.3.6)
Bamboo Project, an ecommerce built on Elcodi
- mikehaertl/yii2-apidoc-vim (2.0.0a)
Yii 2 apidoc as Vim helpfiles
- mcamara/laravel-localization (0.15.1)
Easy localization for Laravel 4
- simsite/simsite (v0.16)
- ezsystems/demobundle (v5.4.0-rc4)
Demo bundle for eZ Publish Platform
- monotek/dependency-inject (v1.0.0)
Tried and tested minimal dependency injection for PHP
- kartik-v/bootstrap-popover-x (v1.3.0)
Bootstrap Popover Extended - Popover with modal behavior, styling enhancements and more.
- stadline/js-extension-bundle (1.1.0)
A collection of JS tools
- semantic/ui (1.0.0)
Semantic empowers designers and developers by creating a shared vocabulary for UI.
- sizannia/editor-bundle (1.1.1)
- jms/di-extra-bundle (1.5.0)
Allows to configure dependency injection using annotations
- naonaox1126/vizualizer_twitter (v1.7.1)
Visual Framework in PHP
- trntv/yii2-starter-kit (1.4.2)
Yii 2 Starter Kit Application Template
- ibrows/loggable-bundle (1.0.3)
Extended Loggable Bundle
- soliantconsulting/entity-audit (1.0.1)
Doctrine 2 Entity Auditing
- silex/web-profiler (v1.0.4)
A WebProfiler for Silex
- rexxars/html-validator (1.0.1)
Validates HTML using Validator.nu
- dohzoh/phpspec-fuel (0.2)
fuelphp1.x extension for phpspec
- zfr/zfr-stripe (v2.5.0)
PHP library for interacting with the Stripe REST API
- fabpot/silex-skeleton (v1.1.1)
A pre-configured skeleton for the Silex microframework
- authbucket/oauth2-symfony-bundle (2.4.5)
- keboola/gooddata-writer-php-client (1.9.4)
PHP Client for KBC GoodData Writer
- symfony/framework-standard-edition (v2.6.0-BETA2)
The "Symfony Standard Edition" distribution
- indemnity83/bakery (1.0.2, 1.0.1, 1.0.0)
A delicious CakePHP development environment.
- kartik-v/yii2-widget-switchinput (v1.1.0)
A Yii2 wrapper widget for the Bootstrap Switch plugin to use checkboxes & radios as toggle switchinputes (sub repo split from yii2-widgets)
- yetanotherape/diff-match-patch (v1.0.0)
Port of the google-diff-match-patch (https://code.google.com/p/google-diff-match-patch/) lib to PHP
- sabre/xml (0.1.0)
The Sabre XML parser is the only XML library that you may not hate.
November 2014 Issue Released - Environments
November 24, 2014 @ 13:22:49
voice your opinion now!
php[architect] magazine has released their latest issue today - the November 2014 edition: "Environments".
In this month's issue, we take a look at the environments that PHP code may travel through.
Articles in this month's issue include:
- "PHP Engine Explained: an Introduction to the Zend Virtual Machine" (Julien Pauli)
- "In the Shoes of a Hacker. Creating a Cryptovirus for PHP Apps" (Raul Fraile)
- "Education Station: PHP on Firefox OS" (Matthew Setter)
- "Introduction to Building a Programming Language" (Jacob Mather)
There's also all of the columns you know and enjoy covering Laravel Tips, the latest in the PHP community and a retrospective of the php[world] conference. You can pick up either just this issue or a full subscription from the php[architect] website.
Experimental upgrading to Laravel 5 How I did it
November 24, 2014 @ 12:57:18
voice your opinion now!
In a recent post Dejan Angelov shares the process he went through to upgrade an application to Laravel 5, yet to be released (at least at the time of this post).
Over the past weeks, Taylor introduced many great changes and new features that we'll be able to use in the new version, firstly numbered 4.3 and later 5. According to the framework's six month release cycle, it should had hit stable late this month or in early December. Because of that, I started to play with it and to apply the changes to make my application use it.
However, a couple of days ago, Taylor wrote a blog post on the Laravel's blog saying that because of the importance of this release, the release date will be postponed to January. Considering this, everything you'll read here MUST NOT be applied to applications that are currently in production.
He starts with some of the major differences, including changes in the dependencies required and the removal of the "start.php" file for bootstrapping the application. He talks about the changes in startup and shutdown as well as autoloading. He looks at directory structure changes and the addition of a base namespace. He then gets into how to fix these issues, one at a time, including code and configuration changes that need to be made. This includes updates to the facades, changes for middleware, environment configuration, pagination and routing. There's lots of other changes happening with Laravel 5, so be sure to check out the full post if you're interested in the steps you might need to take when this latest version is released.
The Artisan Files Eric Barnes
November 24, 2014 @ 11:08:54
voice your opinion now!
The Laravel News site has posted their latest interview with a member of the Laravel community (their Artisan Files series). This time they talk with Eric Barnes, the person behind the Laravel Newsletter.
This is a special edition of the Artisan Files series. Over the past few weeks I've had several people ask me to be interviewed and it wasn't something I even considered. For this interview Taylor Otwell volunteered to ask the questions and if you have a question that wasn't asked just leave a comment.
In the interview you'll learn some about Eric including:
- How he got started in development (and involved with Laravel)
- What inspired him to start the Laravel Newsletter
- What applications he considers his "must haves"
- Three things he thinks make for better programmers
- His favorite conference talk
...and much more. Check out the full interview for the answers to these and other questions. Also, be sure to sign up for the newsletter to keep up to date on the Laravel community.
Don't see your event here?
Let us know!