| max_write_lock_count                                   |<PHONE_NUMBER>3709551615                                                                                |
| metadata_locks_cache_size                              | 1024                                                                                |
| min_examined_row_limit                                 | 0                                                                                |
| multi_range_count                                      | 256                                                                                |
| myisam_data_pointer_size                               | 6                                                                                |
| myisam_max_sort_file_size                              |<PHONE_NUMBER>853727232                                                                                |
| myisam_mmap_size                                       |<PHONE_NUMBER>3709551615                                                                                |
| myisam_recover_options                                 | OFF                                                                                |
| myisam_repair_threads                                  | 1                                                                                |
| myisam_sort_buffer_size                                | 8388608                                                                                |
| myisam_stats_method                                    | nulls_unequal                                                                                |
| myisam_use_mmap                                        | OFF                                                                                |
| net_buffer_length                                      | 16384                                                                                |
| net_read_timeout                                       | 30                                                                                |
| net_retry_count                                        | 10                                                                                |
| net_write_timeout                                      | 60                                                                                |
| new                                                    | OFF                                                                                |
| old                                                    | OFF                                                                                |
| old_alter_table                                        | OFF                                                                                |
| old_passwords                                          | 0                                                                                |
| open_files_limit                                       | 65535                                                                                |
| optimizer_prune_level                                  | 1                                                                                |
| optimizer_search_depth                                 | 62                                                                                |
| optimizer_switch                                       | index_merge=on,index_merge_union=on,index_merge_sort_union=on,index_merge_intersection=on,engine_condition_pushdown=on,index_condition_pushdown=on,mrr=on,mrr_cost_based=on,block_nested_loop=on,batched_key_access=off,materialization=on,semijoin=on,loosescan=on,firstmatch=on,subquery_materialization_cost_based=on,use_index_extensions=on,hash_join=on,hash_join_cost_based=on |
| optimizer_trace                                        | enabled=off,one_line=off                                                                                |
| optimizer_trace_features                               | greedy_search=on,range_optimizer=on,dynamic_range=on,repeated_subselect=on                                                                                |
| optimizer_trace_limit                                  | 1                                                                                |
| optimizer_trace_max_mem_size                           | 16384                                                                                |
| optimizer_trace_offset                                 | -1                                                                                |
| performance_schema                                     | OFF                                                                                |
| performance_schema__auto__                             | ON                                                                                |
| performance_schema_accounts_size                       | 100                                                                                |
| performance_schema_digests_size                        | 10000                                                                                |
| performance_schema_events_stages_history_long_size     | 10000                                                                                |
| performance_schema_events_stages_history_size          | 10                                                                                |
| performance_schema_events_statements_history_long_size | 10000                                                                                |
| performance_schema_events_statements_history_size      | 10                                                                                |
| performance_schema_events_waits_history_long_size      | 10000                                                                                |
| performance_schema_events_waits_history_size           | 10                                                                                |
| performance_schema_hosts_size                          | 100                                                                                |
| performance_schema_max_cond_classes                    | 80                                                                                |
| performance_schema_max_cond_instances                  | 44160                                                                                |
| performance_schema_max_digest_length                   | 1024                                                                                |
| performance_schema_max_file_classes                    | 50                                                                                |
| performance_schema_max_file_handles                    | 32768                                                                                |
| performance_schema_max_file_instances                  | 92616                                                                                |
| performance_schema_max_mutex_classes                   | 200                                                                                |
| performance_schema_max_mutex_instances                 | 307090                                                                                |
| performance_schema_max_rwlock_classes                  | 40                                                                                |
| performance_schema_max_rwlock_instances                | 122430                                                                                |
| performance_schema_max_socket_classes                  | 10                                                                                |
| performance_schema_max_socket_instances                | 2050                                                                                |
| performance_schema_max_stage_classes                   | 150                                                                                |
| performance_schema_max_statement_classes               | 177                                                                                |
| performance_schema_max_table_handles                   | 12000                                                                                |
| performance_schema_max_table_instances                 | 25000                                                                                |
| performance_schema_max_thread_classes                  | 50                                                                                |
| performance_schema_max_thread_instances                | 2130                                                                                |
| performance_schema_session_connect_attrs_size          | 512                                                                                |
| performance_schema_setup_actors_size                   | 100                                                                                |
| performance_schema_setup_objects_size                  | 100                                                                                |
| performance_schema_users_size                          | 100                                                                                |
| pid_file                                               | /rdsdbdata/log/mysql-3306.pid                                                                                |
| plugin_dir                                             | /rdsdbbin/oscar-5.6.10a.200340.0/lib/plugin/                                                                                |
| port                                                   | 3306                                                                                |
| preload_buffer_size                                    | 32768                                                                                |
| profiling                                              | OFF                                                                                |
| profiling_history_size                                 | 15                                                                                |
| protocol_version                                       | 10                                                                                |
| proxy_user                                             |                                                                                |
| pseudo_slave_mode                                      | OFF                                                                                |
| pseudo_thread_id                                       | 1243049                                                                                |
| query_alloc_block_size                                 | 8192                                                                                |
| query_cache_limit                                      | 1048576                                                                                |
| query_cache_min_res_unit                               | 4096                                                                                |
| query_cache_size                                       | 464717824                                                                                |
| query_cache_type                                       | ON                                                                                |
| query_cache_wlock_invalidate                           | OFF                                                                                |
| query_prealloc_size                                    | 8192                                                                                |
| rand_seed1                                             | 0                                                                                |
| rand_seed2                                             | 0                                                                                |
| range_alloc_block_size                                 | 4096                                                                                |
| read_buffer_size                                       | 262144                                                                                |
| read_only                                              | OFF                                                                                |
| read_rnd_buffer_size                                   | 524288                                                                                |
| relay_log                                              | /rdsdbdata/log/relaylog/relaylog                                                                                |
| relay_log_basename                                     | /rdsdbdata/log/relaylog/relaylog                                                                                |
| relay_log_index                                        | /rdsdbdata/log/relaylog/relaylog.index                                                                                |
| relay_log_info_file                                    | relay-log.info                                                                                |
| relay_log_info_repository                              | TABLE                                                                                |
| relay_log_purge                                        | ON                                                                                |
| relay_log_recovery                                     | ON                                                                                |
| relay_log_space_limit                                  |<PHONE_NUMBER>                                                                                |
| report_host                                            |                                                                                |
| report_password                                        |                                                                                |
| report_port                                            | 3306                                                                                |
| report_user                                            |                                                                                |
| require_fk_checks_for_ddl                              | OFF                                                                                |
| rpl_stop_slave_timeout                                 | 31536000                                                                                |
| secure_auth                                            | ON                                                                                |
| secure_file_priv                                       | /tmp/                                                                                |
| server_audit_cw_upload                                 | OFF                                                                                |
| server_audit_events                                    |                                                                                |
| server_audit_excl_users                                |                                                                                |
| server_audit_incl_users                                |                                                                                |
| server_audit_logging                                   | OFF                                                                                |
| server_audit_mode                                      | 0                                                                                |
| server_audit_query_log_limit                           | 1024                                                                                |
| server_id                                              |<PHONE_NUMBER>                                                                                |
| server_id_bits                                         | 32                                                                                |
| server_uuid                                            | a6fcc956-b599-3a04-b4d8-d26ad2fc3901                                                                                |
| session_track_system_variables                         |                                                                                |
| sha256_password_private_key_path                       | private_key.pem                                                                                |
| sha256_password_public_key_path                        | public_key.pem                                                                                |
| skip_external_locking                                  | ON                                                                                |
| skip_name_resolve                                      | ON                                                                                |
| skip_networking                                        | OFF                                                                                |
| skip_show_database                                     | OFF                                                                                |
| slave_allow_batching                                   | OFF                                                                                |
| slave_checkpoint_group                                 | 512                                                                                |
| slave_checkpoint_period                                | 300                                                                                |
| slave_compressed_protocol                              | OFF                                                                                |
| slave_exec_mode                                        | STRICT                                                                                |
| slave_load_tmpdir                                      | /rdsdbdata/tmp/                                                                                |
| slave_max_allowed_packet                               |<PHONE_NUMBER>                                                                                |
| slave_net_timeout                                      | 3600                                                                                |
| slave_parallel_workers                                 | 0                                                                                |
| slave_pending_jobs_size_max                            | 16777216                                                                                |
| slave_rows_search_algorithms                           | TABLE_SCAN,INDEX_SCAN                                                                                |
| slave_skip_errors                                      | OFF                                                                                |
| slave_sql_verify_checksum                              | ON                                                                                |
| slave_transaction_retries                              | 10                                                                                |
| slave_type_conversions                                 |                                                                                |
| slow_launch_time                                       | 2                                                                                |
| slow_query_log                                         | OFF                                                                                |
| slow_query_log_file                                    | /rdsdbdata/log/slowquery/mysql-slowquery.log                                                                                |
| socket                                                 | /tmp/mysql.sock                                                                                |
| sort_buffer_size                                       | 262144                                                                                |
| sql_auto_is_null                                       | OFF                                                                                |
| sql_big_selects                                        | ON                                                                                |
| sql_buffer_result                                      | OFF                                                                                |
| sql_log_bin                                            | ON                                                                                |
| sql_log_off                                            | OFF                                                                                |
| sql_mode                                               |                                                                                |
| sql_notes                                              | ON                                                                                |
| sql_quote_show_create                                  | ON                                                                                |
| sql_safe_updates                                       | OFF                                                                                |
| sql_select_limit                                       |<PHONE_NUMBER>3709551615                                                                                |
| sql_slave_skip_counter                                 | 0                                                                                |
| sql_warnings                                           | OFF                                                                                |
| ssl_ca                                                 | /rdsdbdata/rds-metadata/ca-cert.pem                                                                                |
| ssl_capath                                             |                                                                                |
| ssl_cert                                               | /rdsdbdata/rds-metadata/server-cert.pem                                                                                |
| ssl_cipher                                             | AES256-SHA:AES128-SHA:DES-CBC3-SHA:ADH-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:EDH-DSS-DES-CBC3-SHA:ADH-AES256-SHA:DHE-RSA-AES256-SHA:DHE-DSS-AES256-SHA:ADH-AES128-SHA:DHE-RSA-AES128-SHA:DHE-DSS-AES128-SHA:HIGH                                                                                |
| ssl_crl                                                |                                                                                |
| ssl_crlpath                                            |                                                                                |
| ssl_key                                                | /rdsdbdata/rds-metadata/server-key.pem                                                                                |
| storage_engine                                         | InnoDB                                                                                |
| stored_program_cache                                   | 256                                                                                |
| sync_binlog                                            | 1                                                                                |
| sync_frm                                               | ON                                                                                |
| sync_master_info                                       | 10000                                                                                |
| sync_relay_log                                         | 10000                                                                                |
| sync_relay_log_info                                    | 10000                                                                                |
| system_time_zone                                       | UTC                                                                                |
| table_definition_cache                                 | 20000                                                                                |
| table_open_cache                                       | 6000                                                                                |
| table_open_cache_instances                             | 4                                                                                |
| thread_cache_size                                      | 11                                                                                |
| thread_concurrency                                     | 10                                                                                |
| thread_handling                                        | multiple-connections-per-thread                                                                                |
| thread_stack                                           | 262144                                                                                |
| time_format                                            | %H:%i:%s                                                                                |
| time_zone                                              | SYSTEM                                                                                |
| timed_mutexes                                          | OFF                                                                                |
| timestamp                                              |<PHONE_NUMBER>.786174                                                                                |
| tmp_table_size                                         | 16777216                                                                                |
| tmpdir                                                 | /rdsdbdata/tmp/                                                                                |
| transaction_alloc_block_size                           | 8192                                                                                |
| transaction_allow_batching                             | OFF                                                                                |
| transaction_prealloc_size                              | 4096                                                                                |
| tx_isolation                                           | REPEATABLE-READ                                                                                |
| tx_read_only                                           | OFF                                                                                |
| unique_checks                                          | ON                                                                                |
| updatable_views_with_limit                             | YES                                                                                |
| user_disable_external_log                              | OFF                                                                                |
| version                                                | 5.6.10                                                                                |
| version_comment                                        | MySQL Community Server (GPL)                                                                                |
| version_compile_machine                                | x86_64                                                                                |
| version_compile_os                                     | Linux                                                                                |
| wait_timeout                                           | 28800                                                                                |
| warning_count                                          | 0                                                                                |
+--------------------------------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
474 rows in set (0.002 sec)

What’s happening when this bug occurs?
This is the rough gist of archivematicaClient.py where the bug occurs:
def write_task_results_callback():
    with transaction.atomic():
        for job in jobs:
            # update stuff in the database based on job

This tracks with the idea that it’s related to the number of files in the task, assuming there's a 1-to-1 correspondence of jobs to tasks. The more stuff is happening in that atomic transaction, the more likely it is that we hit a limit and the connection fails.

Anything in the RDS logs?
In the RDS console (https://eu-west-1.console.aws.amazon.com/rds/home?region=eu-west-1#database:id=archivematica-instance-0;is-cluster=false;tab=logs-and-events), the only logs I can find are error logs with names like error/mysql-error-running.log.
They're all empty and contain no useful information.

This ticket might be of interest here Alex: https://github.com/archivematica/Issues/issues/956 it's a little finicky to change, but I believe it will help if your settings are not already this high.

@ross-spencer Ooh, I don't have those settings. Redeploying with those and sending a large-ish package through, fingers crossed! 🤞

@ross-spencer That seems to make the transfers more reliable, but now the dashboard is frequently unusable.
(And the transfer still fails at “Move submission documentation into objects directory”, with the error Error("Destination path '/var/archivematica/sharedDirectory/watchedDirectories/workFlowDecisions/metadataReminder/AAUNAM_2254-b33e12b7-2b48-44fa-bec7-ed3372f620af/objects/submissionDocumentation/transfer-AAUNAM_2254-69a1887f-6f11-4d0d-89c6-17ab959de21e' already exists",))
Any ideas?

Hmm, not off the top of my head, slow-down and workflow failures can be related, but aren't always.
In 1. are all your previous transfers still visible on the dashboard? I wonder if that will have an effect on 3. too.
For 2. and the submission documentation failure, that seems like it could be a few things. Helen worked on a move_or_merge script that helped out a lot. Are you running a version of the code with those changes in? Which phase of the work is this during, transfer, or ingest?
We might need to continue picking this apart as you already are. I can put this ticket into our support/ops channel in Slack too to see if anyone has an instinct.

@ross-spencer We do indeed have every past transfer in the dashboard!
I think we have the move_or_merge script changes, but I’ll have to double-check tomorrow. The failing phase is in ingest, I think.
We had a chat about this today; I’m going to try sending the big transfer packages (>30k files in some cases) as ISO disk images to see if that goes us over the initial hurdle. (This is uncatalogued material, so not having file-level identification/analysis isn't so bad – and the catalogued material is broken into small enough packages that it shouldn't be an issue.) I’ll let you know how that goes.
Long-term it would be great to fix this properly, but I’ve been promising Archivematica to the archivists for a while, and would like to give it to them ASAP :)

It is recommended to clear those transfers, for example, see here. We have docs. It might take a bit of work and a few API calls, but it can be automated via the API too: api docs. It could potentially be done periodically. That would help the dashboard/front-end issue up to a point. You can then retrieve information in future from the database if needed, though once you have your AIPs you should be good. The rationale for this is that it takes time to pull this information out of the database each time the Dasboard is reloaded, and there is not DB index on the Jobs table either. There will be in 1.11.
Good luck with the ISO packages and getting this over to the Archivists.
I'll keep pondering on the submission docs issue/failing microservice in Ingest. We'll see if we can spot something as we continue to probe our qa/1.x branch.

I think this may be related:
https://stackoverflow.com/questions/26958592/django-after-upgrade-mysql-server-has-gone-away
https://github.com/artefactual/archivematica/blob/stable/1.10.x/src/MCPClient/lib/settings/common.py#L232-L236

I haven't seen this in a week (with Ross's increased connections and using ISO disk images), so tentatively closing until it rears its head again.


No Wifi working on Raspberry Pi 4 Model B

I have a new Raspberry Pi 4 Model B.  The unit came with a pre-flashed card with the OS installed and I was able to complete setup with no problem.  I can connect to my wifi with no issues.  By the way, my router is a Google Nest.  After flashing beta5 onto another 2GB SD card, as instructed, I modified the wpa_supplicant.conf file with the appropriate settings. Initially, I did not attempt the set the bssid, but in subsequent attempts I did include it.
Looking at the /etc/wpa_supplicant/wpa_supplicant.conf on the working image that came with the Pi, it is identical to the one I see in the same location on the beta5 image.  It is also identical to the *-wlan0.conf file, too.  These files were edited with either vi or the Mac OS TextEdit apps, both of which should create compatible files.
No matter what I've tried, there is an error during the boot process -- "Dependency failed for WPA supplicant daemon (interface-specific version).
I see no PICOBREW SSID being broadcast, nor can I connect to http://raspberrypi/.

likely what happened is the wireless interface is "soft blocked"
since you have a display could you attach a keyboard and login (pi:raspberry)
when you login run this command and see what the output is:
rfkill list all
if there is a soft block on the wlan0 interface run the following command (which does happen at first boot, but there might be a race condition)
rfkill unblock wifi wlan

likely what happened is the wireless interface is "soft blocked"
since you have a display could you attach a keyboard and login (pi:raspberry)
when you login run this command and see what the output is:
rfkill list all
if there is a soft block on the wlan0 interface run the following command (which does happen at first boot, but there might be a race condition)
rfkill unblock wifi wlan

Thanks Trevor, but the output shows NO for both soft and hard blocked.
On Tue, Jan 26, 2021, 5:42 PM Trevor Mack<EMAIL_ADDRESS>wrote:

likely what happened is the wireless interface is "soft blocked"
since you have a display could you attach a keyboard and login
(pi:raspberry)
when you login run this command and see what the output is:
rfkill list all
if there is a soft block on the wlan0 interface run the following command
(which does happen at first boot, but there might be a race condition)
rfkill unblock wifi wlan
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-767903021,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVHHDARLMXRFKSZR2I3S35HPHANCNFSM4WUIZ42Q
.

Thanks Trevor, but the output shows NO for both soft and hard blocked.
On Tue, Jan 26, 2021, 5:42 PM Trevor Mack<EMAIL_ADDRESS>wrote:

likely what happened is the wireless interface is "soft blocked"
since you have a display could you attach a keyboard and login
(pi:raspberry)
when you login run this command and see what the output is:
rfkill list all
if there is a soft block on the wlan0 interface run the following command
(which does happen at first boot, but there might be a race condition)
rfkill unblock wifi wlan
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-767903021,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVHHDARLMXRFKSZR2I3S35HPHANCNFSM4WUIZ42Q
.

What about the output of the following? When running sudo commands you may be prompted for a password it is raspberry
sudo networkctl status wlan0
sudo systemctl status wpa_supplicant@wlan0

What about the output of the following? When running sudo commands you may be prompted for a password it is raspberry
sudo networkctl status wlan0
sudo systemctl status wpa_supplicant@wlan0

I posted this on GitHub. When responding, which is best--email or GitHub?
Thanks for your hard work on this and your assistance with my issue. I saw
something about Beta6 being uploaded. Should I try that one?
Thanks again,
Craig
On Tue, Jan 26, 2021, 7:11 PM Trevor Mack<EMAIL_ADDRESS>wrote:

What about the output of the following? When running sudo commands you
may be prompted for a password it is raspberry
sudo networkctl status wlan0
sudo systemctl status wpa_supplicant@wlan0
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-767938308,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVHEYA53XTQUKXRVTJ3S35R5PANCNFSM4WUIZ42Q
.

I posted this on GitHub. When responding, which is best--email or GitHub?
Thanks for your hard work on this and your assistance with my issue. I saw
something about Beta6 being uploaded. Should I try that one?
Thanks again,
Craig
On Tue, Jan 26, 2021, 7:11 PM Trevor Mack<EMAIL_ADDRESS>wrote:

What about the output of the following? When running sudo commands you
may be prompted for a password it is raspberry
sudo networkctl status wlan0
sudo systemctl status wpa_supplicant@wlan0
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-767938308,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVHEYA53XTQUKXRVTJ3S35R5PANCNFSM4WUIZ42Q
.

@hairrell it can't hurt, https://github.com/chiefwigms/picobrew_pico/releases/tag/v0.0.1-beta6 is where you will find the assets. Make sure to choose the option that works with your specific setup (this release there are now 3 different images to choose from).

@hairrell it can't hurt, https://github.com/chiefwigms/picobrew_pico/releases/tag/v0.0.1-beta6 is where you will find the assets. Make sure to choose the option that works with your specific setup (this release there are now 3 different images to choose from).

Using a very old 2GB card.  The new image is too large.  Looks like I'll
have to splurge for a new 16GB card.
On Wed, Jan 27, 2021 at 1:48 PM Trevor Mack<EMAIL_ADDRESS>wrote:

@hairrell https://github.com/hairrell it can't hurt,
https://github.com/chiefwigms/picobrew_pico/releases/tag/v0.0.1-beta6 is
where you will find the assets. Make sure to choose the option that works
with your specific setup (this release there are now 3 different images to
choose from).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-768534590,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVCGQRAVKR5OGLEMWN3S4BU2HANCNFSM4WUIZ42Q
.

Using a very old 2GB card.  The new image is too large.  Looks like I'll
have to splurge for a new 16GB card.
On Wed, Jan 27, 2021 at 1:48 PM Trevor Mack<EMAIL_ADDRESS>wrote:

@hairrell https://github.com/hairrell it can't hurt,
https://github.com/chiefwigms/picobrew_pico/releases/tag/v0.0.1-beta6 is
where you will find the assets. Make sure to choose the option that works
with your specific setup (this release there are now 3 different images to
choose from).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-768534590,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVCGQRAVKR5OGLEMWN3S4BU2HANCNFSM4WUIZ42Q
.

FWIW, I have the same exact problem with Beta6 on a Raspberry Pi 2.
This is my first attempt at loading the server.
Does the router need to be 2.4GHz?
Echo the thanks for all the work on this.  Connection to the dying mother ship has been spotty of late.

FWIW, I have the same exact problem with Beta6 on a Raspberry Pi 2.
This is my first attempt at loading the server.
Does the router need to be 2.4GHz?
Echo the thanks for all the work on this.  Connection to the dying mother ship has been spotty of late.

As far as I know, the Broadcom chipsets the Pi’s use cannot do wireless bridging over 5 GHz. That is why you must connect it to a 2.4 GHz access point and then it creates a secondary (bridged) 2.4 GHz SSID. It does this on the same channel even which is why you have to be careful about putting the PicoBrew devices closer to the Pi than to your main AccessPoint. A lot of AccessPoints do not allow for separate SSIDs for 2.4 and 5 GHz. My old Netgear Nighthawk router did, my new Netgear Orbi’s do not. However, using a WiFi analyzer or looking at the advanced options in macOS or Windows, you can often find the BSSID (broadcasting MAC address) of the 2.4 GHz band for your AccessPoint. You can enter this into the Pi’s WiFi setup so that it connects to that specific SSID/band.

As far as I know, the Broadcom chipsets the Pi’s use cannot do wireless bridging over 5 GHz. That is why you must connect it to a 2.4 GHz access point and then it creates a secondary (bridged) 2.4 GHz SSID. It does this on the same channel even which is why you have to be careful about putting the PicoBrew devices closer to the Pi than to your main AccessPoint. A lot of AccessPoints do not allow for separate SSIDs for 2.4 and 5 GHz. My old Netgear Nighthawk router did, my new Netgear Orbi’s do not. However, using a WiFi analyzer or looking at the advanced options in macOS or Windows, you can often find the BSSID (broadcasting MAC address) of the 2.4 GHz band for your AccessPoint. You can enter this into the Pi’s WiFi setup so that it connects to that specific SSID/band.

I had entered a 5GHz SSID.  I’ll try the 2.4GHz and see if that fixes things.
thanks,
Mark

I had entered a 5GHz SSID.  I’ll try the 2.4GHz and see if that fixes things.
thanks,
Mark

Tried the 2.4GHz in the SSID in the wpa_supplicant file and get still get the same exact errors as the screen shots above. And ran the same rkill and networkctl commands with the exact same result as above.

Tried the 2.4GHz in the SSID in the wpa_supplicant file and get still get the same exact errors as the screen shots above. And ran the same rkill and networkctl commands with the exact same result as above.

I had success using ps_server_latest_beta6.zip.  I can both see the
PICOBREW ssid and connect to http://raspberrypi/.
Thanks for your help, Trevor.
On Wed, Jan 27, 2021 at 7:25 PM mjc090<EMAIL_ADDRESS>wrote:

Tried the 2.4GHz in the SSID in the wpa_supplicant file and get still get
the same exact errors as the screen shots above. And ran the same rkill and
networkctl commands with the exact same result as above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-768691935,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVBNJ4VWLCH2C5HSFGLS4C4IPANCNFSM4WUIZ42Q
.

I had success using ps_server_latest_beta6.zip.  I can both see the
PICOBREW ssid and connect to http://raspberrypi/.
Thanks for your help, Trevor.
On Wed, Jan 27, 2021 at 7:25 PM mjc090<EMAIL_ADDRESS>wrote:

Tried the 2.4GHz in the SSID in the wpa_supplicant file and get still get
the same exact errors as the screen shots above. And ran the same rkill and
networkctl commands with the exact same result as above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-768691935,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVBNJ4VWLCH2C5HSFGLS4C4IPANCNFSM4WUIZ42Q
.

I found the PICOBREW network to be flaky with respect to the Zymatic.  It
seemed to come and go.  When moving between menu choices via the control
panel on the Zymatic, it would often display "reconnecting wifi" for 30-60
seconds and eventually move onto the next menu item.  After connecting the
pi to the Zymatic with an ethernet cable, it was much better.
Incidentally, I did not seem to lose a connection to the http://raspberrypi/
server via my primary wifi network.
On Wed, Jan 27, 2021 at 9:57 PM Craig Hairrell<EMAIL_ADDRESS>wrote:

I had success using ps_server_latest_beta6.zip.  I can both see the
PICOBREW ssid and connect to http://raspberrypi/.
Thanks for your help, Trevor.
On Wed, Jan 27, 2021 at 7:25 PM mjc090<EMAIL_ADDRESS>wrote:

Tried the 2.4GHz in the SSID in the wpa_supplicant file and get still get
the same exact errors as the screen shots above. And ran the same rkill and
networkctl commands with the exact same result as above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-768691935,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVBNJ4VWLCH2C5HSFGLS4C4IPANCNFSM4WUIZ42Q
.

I found the PICOBREW network to be flaky with respect to the Zymatic.  It
seemed to come and go.  When moving between menu choices via the control
panel on the Zymatic, it would often display "reconnecting wifi" for 30-60
seconds and eventually move onto the next menu item.  After connecting the
pi to the Zymatic with an ethernet cable, it was much better.
Incidentally, I did not seem to lose a connection to the http://raspberrypi/
server via my primary wifi network.
On Wed, Jan 27, 2021 at 9:57 PM Craig Hairrell<EMAIL_ADDRESS>wrote:

I had success using ps_server_latest_beta6.zip.  I can both see the
PICOBREW ssid and connect to http://raspberrypi/.
Thanks for your help, Trevor.
On Wed, Jan 27, 2021 at 7:25 PM mjc090<EMAIL_ADDRESS>wrote:

Tried the 2.4GHz in the SSID in the wpa_supplicant file and get still get
the same exact errors as the screen shots above. And ran the same rkill and
networkctl commands with the exact same result as above.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-768691935,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVBNJ4VWLCH2C5HSFGLS4C4IPANCNFSM4WUIZ42Q
.

WiFi with the Pi (regardless of model) has a significant dependency on location/distance from your main router & Picobrew unit.  Not sure if you're on the facebook group, but I highly recommend using ethernet if possible (Z/Zymatic).  Using WiFi, the PICOBREW AP broadcasts on the same channel as your router (that's just how its setup, since it's a single WiFi chipset), and could be overpowered.  If using WiFi, keep the pico & pi close (couple feet) and a lot farther than your router

WiFi with the Pi (regardless of model) has a significant dependency on location/distance from your main router & Picobrew unit.  Not sure if you're on the facebook group, but I highly recommend using ethernet if possible (Z/Zymatic).  Using WiFi, the PICOBREW AP broadcasts on the same channel as your router (that's just how its setup, since it's a single WiFi chipset), and could be overpowered.  If using WiFi, keep the pico & pi close (couple feet) and a lot farther than your router

Thanks Pete. It's good to understand why it's happening. Makes sense. I
don't see using ethernet as any real problem.
On Wed, Jan 27, 2021, 10:31 PM Pete<EMAIL_ADDRESS>wrote:

WiFi with the Pi (regardless of model) has a significant dependency on
location/distance from your main router & Picobrew unit. Not sure if you're
on the facebook group, but I highly recommend using ethernet if possible
(Z/Zymatic). Using WiFi, the PICOBREW AP broadcasts on the same channel as
your router (that's just how its setup, since it's a single WiFi chipset),
and could be overpowered. If using WiFi, keep the pico & pi close (couple
feet) and a lot farther than your router
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-768792214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVDWCHMI26EZ5VDFJTLS4DSDDANCNFSM4WUIZ42Q
.

Thanks Pete. It's good to understand why it's happening. Makes sense. I
don't see using ethernet as any real problem.
On Wed, Jan 27, 2021, 10:31 PM Pete<EMAIL_ADDRESS>wrote:

WiFi with the Pi (regardless of model) has a significant dependency on
location/distance from your main router & Picobrew unit. Not sure if you're
on the facebook group, but I highly recommend using ethernet if possible
(Z/Zymatic). Using WiFi, the PICOBREW AP broadcasts on the same channel as
your router (that's just how its setup, since it's a single WiFi chipset),
and could be overpowered. If using WiFi, keep the pico & pi close (couple
feet) and a lot farther than your router
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/chiefwigms/picobrew_pico/issues/223#issuecomment-768792214,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AEMNTVDWCHMI26EZ5VDFJTLS4DSDDANCNFSM4WUIZ42Q
.

@mjc090 a RaspberryPi 2 are you sure it has a wireless interface? RPi 2B did not have WiFi from what I remember because Pico devices communicate over WiFi we require a wireless interface to setup the server successfully.
If you are only going to hardwire to it, I would encourage you to get familiar with the command line so you can set that up as that isn't the recommended path ATM.

@mjc090 a RaspberryPi 2 are you sure it has a wireless interface? RPi 2B did not have WiFi from what I remember because Pico devices communicate over WiFi we require a wireless interface to setup the server successfully.
If you are only going to hardwire to it, I would encourage you to get familiar with the command line so you can set that up as that isn't the recommended path ATM.

https://en.m.wikipedia.org/wiki/Raspberry_Pi#Specifications agrees with my memory on the lack of a wireless interface on the Pi 2
Ca you double check there is a indeed a wireless interface (you likely will need to have an adapter for WiFi capabilities)?

https://en.m.wikipedia.org/wiki/Raspberry_Pi#Specifications agrees with my memory on the lack of a wireless interface on the Pi 2
Ca you double check there is a indeed a wireless interface (you likely will need to have an adapter for WiFi capabilities)?

@hairrell also with beta6 there is a working wireless configuration experience from the get go. No more needing to edit the wpa_supplicant.conf file directly during flash time.
You can use the PICOBREW AP and browse to http://<IP_ADDRESS>/setup (initial load of screen may fail with an internal server error, simply retry) and with this experience if your router doesn't split 2.4 and 5.0 using the BSSID this experience will force the Pi to only make an association with the 2.4ghz broadcasted network signal.

@hairrell also with beta6 there is a working wireless configuration experience from the get go. No more needing to edit the wpa_supplicant.conf file directly during flash time.
You can use the PICOBREW AP and browse to http://<IP_ADDRESS>/setup (initial load of screen may fail with an internal server error, simply retry) and with this experience if your router doesn't split 2.4 and 5.0 using the BSSID this experience will force the Pi to only make an association with the 2.4ghz broadcasted network signal.

My Pi 2 has a wifi dongle.  I loaded the basic PI operating system and it all worked allowing connection to my local network and out to the interwebs.  When I re-image with the Picoserver, I keep getting the errors show above.  I’ll try to gather more info today.
thanks,
Mark

My Pi 2 has a wifi dongle.  I loaded the basic PI operating system and it all worked allowing connection to my local network and out to the interwebs.  When I re-image with the Picoserver, I keep getting the errors show above.  I’ll try to gather more info today.
thanks,
Mark

So I am having the same issue....with a standard o/s for raspberrypi, I can connect to it via wifi with tigervpc....when i load any of the picobrew loads, I get no wifi and never see the picobrew network.  I have changed the wpa and added a bssid....nothing is working.
Ideas??


[WIP] Experiment with Adam Chlipala's variant record suggestion

Adam said:

At first, I couldn't see anything hardware-specific about your method
(in Lava and Cava) of writing down circuit generators. There is the
well-known duality between record and variant types, and your encoding
with type classes is basically the record version (instances being the
records) of writing out the same syntax trees with GADTs (variant
version), which is quite natural in Coq.  I imagine you will find it
impossible to prove key metatheorems about generic circuits, e.g. where
you need to instantiate a generator with two different instances and
know that the results are related.

I'm trying to understand exactly what Adam means when he says "variant version". Here I've tried to sketch an
alternative to our typeclass version which uses an inductive data-type instead. Is this what Adam means?
Or does he really mean a Record type?

Yes, my interpretation is similar -- "record" means defining a record type or class (class in Coq is just record plus typeclass inference, so I don't think there's a difference whether we do Record or Class) and then creating instances of that record/class for different interpretations. I'm not familiar with the term "variant types" to describe it, but the rest of the context seems to imply using a single underlying structure, interpreted in two different ways, to get the different interpretations of the circuit that we want.

Its not obvious to me that he would mean this structure with fields containing references (nats) vs the actual inductive structure. For example in Koika:
https://github.com/mit-plv/koika/blob/37a4d8b1fe9b4b9a131e193281ebd33b28ce1c35/coq/CircuitSyntax.v#L25
Or my example of reifying from the Acorn monad to an inductive structure (with an example evaluation method):
https://github.com/project-oak/silveroak/pull/825/files#diff-b4a03022b46b8decadfecad67ef4f2a3600ffad0302f103a7f96242e9dfa1ee5R58
I'm constructing the inductive CavaDeep instances in my example from the Acorn monad class to follow the Acorn design. Terms could instead be written directly with and evaluated with denotation function as above, or as in my arrow examples last year e.g. investigations/Arrow/CircuitSemantics.v

I wrote a sketch of how I understood Adam's comment, and took the liberty to push it to Satnam's cava2 branch (file AcornGADT.v), so that it appears on this PR as well and can be discussed together.
It contrasts with the typeclass-based approach as follows:

Instead of starting with a typeclass with one method per circuit component kind, we start with a GADT (Inductive Acorn) indexed over the SignalType that it produces, with one inductive constructor per circuit component kind.
Instead of providing different instances of the same typeclass, we provide different interpretation functions for the same Inductive. In this example, they are Simulation.interp and Netlist.interp.

Note that this is just a quick sketch to illustrate the concept, and important questions (eg, how to feed input into such circuits) are left as an exercise :wink:

I think this has been implemented in Cava2, so I guess we can close this?


Refactor color palettes and add a fix.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

9 of 9 (100.0%)  changed or added relevant lines in 2 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 100.0%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
726

Relevant Lines:
726

💛  - Coveralls


Document behavior when adding or overwriting

With an existing archive testing123.zip, if I mark a file xyz.txt currently not in the archive and then execute pack-dired-do-pack, specifying testing123.zip as the target, xyz.txt is added to the testing123.zip archive. This is the expected behavior, from my perspective.
If I perform the analogous steps with testing123.tar.gz, the testing123.tar.gz archive file is populated only with xyz.txt after the operation is complete. The files formerly archived in testing123.tar.gz are no longer in the archive.
Suggestions:

provide the user will the opportunity to be warned prior to overwriting a file or removing file(s) from an archive (at the minimum, make the warning an option/configurable -- e.g., with pack-warn-before-overwrite-p or something along those lines)

the behavior will be consistent across archive/compression formats. From my perspective, it seems desirable to have a file added to a tar.gz archive in the same manner as a zip archive. If not, perhaps this should be documented for the end-user.

Thanks!
I'm not aware of that behavior of zip archives...

I updated so that now :pack-append command can be defined in pack-program-alist.
I separated this from :pack command because tar uses different command for creating new archives and appending to existing archives.
pack-pack command now simply fails when the target archive file already exists and no :pack-append command is defined.


Overlay of Path and HLine doesn't work with LaTeX label.

Works fine:
x = np.linspace(-10, 10)
y = x**2
im = hv.Path((x, y))
im * hv.HLine(0)

Doesn't properly plot:
x = np.linspace(-10, 10)
y = x**2
im = hv.Path((x, y)).relabel(label=r"$\mathbf{B}=0.5\hat{x}$ T")
im * hv.HLine(0)

Can confirm that I can replicate the bug. The Overlay seems to once again be dropping the object due to it's label. Thought it might be hitting a maximum attribute length or something because the sanitized version of the label is:
'reverse_over_mathbf_left_curly_bracket_B_right_curly_bracket_equals_0_full_stop_5_reverse_over_hat_left_curly_bracket_x_right_curly_bracket_T'

But that seems to work just fine as an attribute. Will have to investigate further tomorrow.

Not sure whether is has anything to do with the sanitised version being to long, because this also doesn't work:
x = np.linspace(-10, 10)
y = x**2
im = hv.Path((x, y)).relabel(label=r"\hat{x}$")
im * hv.HLine(0)

No it's definitely not, attribute names can be any length. Something going wrong on  Overlay or its baseclass AttrTree.

This has been fixed in https://github.com/ioam/holoviews/commit/5b3f40b265c8b0204a949df30d81a5a14f1d379d. The trees weren't properly capitalizing all paths. It should actually be fixed in general this time so I'll close the issue.


Potential Features: Controllers and Validators

Hello
I am curious if potential features for this framework might include base class Controllers and/or Validators. I find that much of the code that I have to write falls in to either of these categories. So far I've just coded brutishly without much regard for scalable design patterns or clear semantics. When the project stabilizes I'd like to rewrite my core business logic (i.e. user driven CRUD) in a more maintainable way. Therefore, I am curious if well-designed base Controllers/Valdiators are appropriate for this project. I totally understand if they are not since these might need to be too specialized and/or complex... If that's the case, are you aware of any other frameworks that handle these tasks particularly well?
Thx

Could you give any more concrete examples of what you're trying to do or how these additional components would be helping you? Where do you know this from? Are there any implementations that you like?

Basically just providing general CRUD user flow for various objects stored in the db. Examples: create/edit/delete profile/blog post/etc... Perhaps some of the logic in these controllers can be reused and base-classed. Ex. validating the posted data matches the db schema and then redirecting to the appropriate error routes. However, I would not be surprised if each application is much too specialized for there to be useful framework to handle these tasks. As for an example implementation, I am aware of Ruby on Rails. However, I believe that Rails is quite complicated and bloated and doesn't match this framework. So I am curious if there is something useful out there that might be good to learn from? I've taken a very quick look at silex and lumen, but neither fx seems particularly useful in this area. Perhaps these features are much too complex to fit with this very simple and elegant framework... If this is the case, I am quite content to write my own specialized code, but I am forced to wonder if there is an ideal and reusable solution.

Well, yes, writing your own classes to do this would still allow you to re-use much of your code. It's just a different level of abstraction. But if we could really make this fit in here, we should do that, of course.
Perhaps we should indeed look at the solution in Rails.
In general, I'm definitely open to such a feature, if we can implement it in a good way.
Otherwise, as we agreed, you writing that layer for a specific application yourself is still a good solution and will allow for a good amount of code re-use, though it's not optimal because sharing that layer across applications would be the ideal solution.

There are hundreds of php frameworks, and perhaps it was a long shot to think there was already a highly-modular and elegant component.
I will keep my eyes open and if I spot something worthy (or make something), will share.
Thx

That layer will definitely depend on the front-end framework that you use, right? For example, outputs for Bootstrap 2, 3 or 4, other frameworks, or plain HTML could be supported. Though plain HTML is a bit difficult because you also need the correct CSS classes that have adequate styles.
In the end, it might not be too hard to build a custom solution for this. But we should discuss this so that we can agree on the overall concept of how to do this, I guess.

Actually, I thought the view could be excluded from this layer. For example, imagine a controller with only these policy requirements:

The name attributes on form variables (or JSON property names for async) [input]
The variable names set in the TWIG context (or JSON again) [output]
These names match column names in some table
Any view code could obey these policies and wouldn't depend (much) on any given HTML

But maybe the layer could be even thinner. A base controller could have overridable properties for success route, validation error route, validation function, etc...
Although, perhaps I am thinking too eagerly... I will look at a "Hello World" CRUD Rails app and see if there is anything to learn.

That sounds good. I like the idea of excluding the view layer. But indeed, there are many solutions possible, some more efficient, some less.
Looking forward to hear about your experience with Rails!

Hello
I have done some research on Rails, Laravel, and a couple other frameworks and unfortunately don't have too much to recommend.
Many of these "full-service" frameworks use tight-coupling between model classes, database schema, and other components. This is particularly true for Rails which automatically generates consistent database migrations, model class definitions, and more. Clearly, features like these are too much and too complicated...
One thing I love about this framework is how the DB component uses "plain old php arrays" as the basis for its data exchange. It seems natural to use the plain old php arrays as Value Objects (VO) in a Data Access Object (DAO) design pattern. The DB component handles much of the boilerplate DAO pattern. Basically the only work a DAO wrapper needs to do is:

Implement various $dao->get(...) methods which vary on business domain
Implement $dao->save($vo) which switches between $db->insert and $db->update depending on the existence of a primary key in the VO

There isn't much overhead for developer users to implement these. The only possible enhancements to DB I can think of to ease this are:
a) Implementing $db->replace which isn't as efficient as,
b) Implementing a method which uses INSERT ... ON DUPLICATE KEY UPDATE as the query pattern
Of course both are already possible via $db->exec...
Another area I looked at was the role of the controller. It turns out that most useful and reusable controller methods already appear in $app, for example $app->view, $app->redirect. Personally, I have used "composition over inheritance" in my controllers to reuse this functionality. Without creating very tight links between other framework components, it does not seem possible to provide anything useful for a controller base.
One task that controllers do is validation, and this is an interesting area to consider. A Validation component seems like a good candidate for an enhancement. It can exist as a separate and decoupled component. Laravel has an interesting implementation (https://laravel.com/docs/5.4/validation#quick-writing-the-validation-logic).
I am building such a component. It is designed to apply various rules to values received from $app->input methods. It also collects errors and displays them with $app->flash. When I am finished, I will be glad to share it with this framework. Hopefully it will be as well-designed and useful as the rest of the framework.

Thanks for your research!
You say that one would have to switch between insert and update in a save method for a thin wrapper that implements the DAO pattern. Implementing such a replace method, as you suggested, is definitely something that I'd be open to. That is what other database engines or standards call "merge" or "upsert", if I understand you correctly.
For those "merge" or "upsert" operations, there are some slight variations, however, so I could even imagine separate methods insertOrReplace, insertOrMerge and insertOrIgnore, for example.
Most importantly, what the replace method does internally should be of no concern to the user of that method. All you need to know is the API of that method and then you will be able to use it without wondering about the internals, being assured that the method will comply with the contract agreed upon. So that method could very well use INSERT … ON DUPLICATE KEY UPDATE for MySQL and use other syntax for database engines which don't support that feature.
In general, what a "merge" or "upsert" method needs in addition to the data from the insert or update methods is (a) the condition of when to perform the update instead of the insert (e.g. primary key collisions?) and (b) the mappings of values to update.
The validators sound interesting as well. So you want not just the enforcement of specific data types, as provided by the $app->input() helper, but specific checks such as for the minimum or maximum length, right? What I don't like that much about the Laravel solution is the reliance on plain strings without any possible checks from the IDE or compiler. So instead of min:10|max:255 I'd prefer something like ->withMinLength(10)->withMaxLength(255), but perhaps that is not really feasible.
After all, maybe you don't actually have to prevent any tight coupling between the framework and your base controller. If only the base controller is tightly coupled to the framework, you could simply regard it as an extension of the framework. If something changes later, you'll have to adjust calls, but only in one place. Sometimes convenience (of development) and flexibility don't go together that well.

Thanks for your consideration!
For a "merge" or "upsert", the only other insight that I can offer is that REPLACE is non-standard SQL, and that these may only work if a table has a primary key. Enforcing the primary key requirement might be tricky. Many other frameworks couple together DB/ORM with entity model/class definitions. Tight coupling like that would provide for such enforcement.
What I like best about this framework is that it is plain old php! There are no new pseudo-languages to learn. There are no "magical" command line utilities to generate boilerplate code. It is simple and efficient. Perhaps enforcing primary keys can be done the same way. Consider this example:
abstract class DAO
{
    //fields below are set in constructor (not shown)
    private $db; //$app->db
    private $table; //entity table name
    private $pk; //primary key column name

    function get($id)
    {
        $vo = $this->db->selectRow("SELECT * FROM $this->table WHERE $this->pk = ?", [$id]);
        return $vo;
    }

    function save($vo)
    {
        $id = $vo[$this->pk];
        if ($id > 0)
            $this->db->update($this->table, $vo, [$this->pk => $id]);
        else
            $this->db->insert($this->table, $vo);
    }

    //delete method not shown
}

(Reference: http://www.odi.ch/prog/design/php/guide.php - it's old but still valid)
In this case the VOs are plain old php arrays as used by $app->db. The developer can subclass the DAO to include custom get methods (such as getAll, getNewest, getByUser...)
Regarding validation, I totally agree that Laravel's plain string parameters are messy. Also, validation tends to occur within a single method call, which seems to be unnecessary. I like the chained method call approach, ->withMinLength(10)->withMaxLength(255), but I'm curious what you think about this one:
Each rule is its own method call, and each call takes parameters which determine the error severity and message. These errors are collected and could be passed to $app->flash or somewhere else. ($app->flash would need to be modified to support multiple errors per severity level -- In the meantime I delimit them with a pipe character | and split them in the view template). Here's an example validation:
$v = new Validator();
$v->required($name, DANGER_FAIL, 'Please include your name');
$v->maxLength(255, $title, DANGER_FAIL, 'Title should be less than 255 characters');
$v->minLength(10, $title, WARNING_NOFAIL, 'Longer titles are more descriptive');
if ($v->hasErrors)
{
    $v->flashErrors($app->flash());
    $app->redirect('/posterror');
}
else
{
    $app->flash()->success('Your post has been submitted');
    $app->view('/user/posts');
}

I had also considered extending $app->input but think it might be better/simpler to leave these features separate.
Perhaps also the developer user can subclass the validator for reuse:
$successRoute = '/user/posts';
$errorRoute = '/posterror';

$v = new PostValidator($app);
$v->post(); //takes fields from $app->input;
$v->validate($successRoute, $errorRoute); //this could even be included in the base class

Of course each developer is free to implement these solutions independent of this framework (which is exactly what I have done). However, I think these two solutions fit very nicely with this framework and provide useful, reusable features. I am happy to contribute if they're good enough :)

Thank you!
I agree with everything you said and your DAO class looks good.
The Validator class looks fine as well, although there are two things that I don't like that much:

I thought that we would be passing the keys from the $_GET or $_POST arrays to the validator only, instead of passing the value itself (which must have been captured in a variable first). Passing the keys only avoids nasty warnings whenever some value does not actually exist. But I see why you did it that way. The only other solution would be having a GetValidator and a PostValidator, which I'd like, but they would be less flexible and wouldn't allow for mixed usage. The only solution that would allow for mixed usage would require you to specify whether you want a value from the GET or from the POST data, which is another parameter.
The code is perfectly readable as it is. But I think it could be easier to write if the severity wouldn't have to be specified via a constant but could be included in the method name, e.g. maxLengthOrFail. Not really sure about this, though.

By the way:

What I like best about this framework is that it is plain old php! There are no new pseudo-languages to learn. There are no "magical" command line utilities to generate boilerplate code.

Good point, I should add that to the project description :)


More categories at once[request/question]

PROBLEM
If I have mod like Charmonium or Atmosfera im able to hear music from it if i don't change category? If don't, can you add option to play songs from more then one category? something like vanilla + custom(because this mods have built-in resource packs). Im don't know i understand correctly your mod. If im not in the "player control" mode (creative or cheat on survival) im still gonna hear songs as they play in vanilla + resource packs? Because description doesn't seem to (heh) describe this.

Hmm well I didn't think about that, you're right. Currently, you can't change category in survival (except if you enable cheat) because categories are linked to dimensions. So there is something stupid, without cheat you can't play these custom musics from customs dimensions for now. Moreover as you noticed, some mods add musics to existing dimensions too, so these are two things I didn't think about.
I guess I just need to enable the switch between current category and custom category when not using cheat. I will try to do more by adding custom musics from resourcepacks/mods to appropriate dimension's category but to do so the resourcepack/mod need to use explicit names, that indicates where should be played (I looked into Charmonium and it's okay with them at least, that's how I got the idea).
Thanks a lot for the suggestion (and the other ones, I'll read them carefully), just be a bit patient about updates


raspberry pi zero 2 w + logitech k380

Hello,
My logitech keyboard k380 is paired with the pi zero 2 w but I can't use it. How could I make it work please ?
pi@raspberrypi:~ $ sudo systemctl status bt-hid-proxy.service -l && sudo systemctl status usb-gadget.service -l
● bt-hid-proxy.service - BT HID PROXY
Loaded: loaded (/etc/systemd/system/bt-hid-proxy.service; enabled; vendor preset: enabled)
Active: activating (start) since Thu 2022-01-20 19:36:36 GMT; 1min 35s ago
Main PID: 322 (python)
Tasks: 1 (limit: 409)
CPU: 814ms
CGroup: /system.slice/bt-hid-proxy.service
└─322 /usr/bin/python /home/pi/bt-hid-proxy/app/main.py
Jan 20 19:36:36 raspberrypi systemd[1]: Starting BT HID PROXY...
Jan 20 19:36:38 raspberrypi python[322]: device /dev/input/event0, name "vc4", phys "vc4/input0"
pi@raspberrypi:~ $ sudo systemctl status usb-gadget.service -l
● usb-gadget.service - Create virtual keyboard USB gadget
Loaded: loaded (/lib/systemd/system/usb-gadget.service; enabled; vendor preset: enabled)
Active: inactive (dead) since Thu 2022-01-20 19:36:37 GMT; 1min 53s ago
Process: 371 ExecStart=/opt/enable-rpi-hid (code=exited, status=0/SUCCESS)
Main PID: 371 (code=exited, status=0/SUCCESS)
CPU: 141ms
Jan 20 19:36:36 raspberrypi systemd[1]: Starting Create virtual keyboard USB gadget...
Jan 20 19:36:37 raspberrypi systemd[1]: usb-gadget.service: Succeeded.
Jan 20 19:36:37 raspberrypi systemd[1]: Finished Create virtual keyboard USB gadget.
pi@raspberrypi:~ $ sudo bluetoothctl
Agent registered
[CHG] Controller B8:27:EB:60:F2:8E Pairable: yes
[CHG] Device F4:73:35:57:9E:EB Connected: yes
[Keyboard K380]# devices
Device F4:73:35:57:9E:EB Keyboard K380
[Keyboard K380]#

@kimllee What device are you plugging the pi into?

@kimllee What device are you plugging the pi into?

Logitech keyboard k380

@kimllee I have used python3 and an apple keyboard.

@kimllee I have used python3 and an apple keyboard.

Okay since I have changed the python version used by pi OS from 2 to 3 I got this :
pi@raspberrypi:~ $ sudo systemctl status bt-hid-proxy.service -l
● bt-hid-proxy.service - BT HID PROXY
Loaded: loaded (/etc/systemd/system/bt-hid-proxy.service; enabled; vendor preset: enabled)
Active: activating (start) since Thu 2022-01-27 19:07:17 CET; 13s ago
Main PID: 2918 (python)
Tasks: 1 (limit: 409)
CPU: 491ms
CGroup: /system.slice/bt-hid-proxy.service
└─2918 /usr/bin/python /home/pi/bt-hid-proxy/app/main.py
Jan 27 19:07:17 raspberrypi systemd[1]: Starting BT HID PROXY...
Jan 27 19:07:17 raspberrypi python[2918]: device /dev/input/event0, name "vc4", phys "vc4/input0"
Looks like it's working better but I can't use my keyboard outside the pi OS gui. What am I missing please ?
Thank you

@kimllee to be honest I've never tested this with a desktop environment, this very well could be the issue.
Here is how I've used it in the past.

@kimllee I noticed that the rpi only worked when connected to a specific usb port on my computer. Also, the rpi's usb-c port (the same one it usually gets power from) needed to be the port connected to my computer. I haven't experimented so I don't know if other configurations will work too, but maybe running the cable between a different set of ports will help.

If there is anything codewise to fix this please do raise a PR 🙏.


Fix: Keep rules sorted

This PR

[x] keeps rules sorted in .php_cs.dist

could we auto review this by unit test you think?

@SpacePossum
Only if we extracted an internal ruleset that we could then inspect, I believe.

<?php

require_once __DIR__.'/../vendor/autoload.php';

// assert file exists

/** @var \PhpCsFixer\Config $config */
$config = include __DIR__.'/../.php_cs.dist';

// assert instance of Config

foreach ($config->getRules() as $rule => $config) {
    echo sprintf("\n%s", $rule); // assert `@` first, all `@[n]` are sorted, all rules (non-sets) are sorted
}

die;

List the rules as is as these are not resolved yet, so we could check I think.
We might need the ConfigurationResolver::separatedContextLessInclude trick to prevent from including the configuration only one time (we might need the multiple times in the tests).

OK, I will drop RTM to await for tests ;)
separatedContextLessInclude has nothing to do with preventing from including multiple times, it's only about not sharing context

2) PhpCsFixer\Tests\AutoReview\ProjectFixerConfigurationTest::testRuleDefinedAlpha
--- Original
+++ New
@@ @@
   33 => 'no_useless_return',
   34 => 'ordered_class_elements',
   35 => 'ordered_imports',
-  41 => 'phpdoc_add_missing_param_annotation',
-  42 => 'phpdoc_order',
-  43 => 'phpdoc_types_order',
   36 => 'php_unit_ordered_covers',
   37 => 'php_unit_set_up_tear_down_visibility',
   38 => 'php_unit_strict',
   39 => 'php_unit_test_annotation',
   40 => 'php_unit_test_class_requires_covers',
+  41 => 'phpdoc_add_missing_param_annotation',
+  42 => 'phpdoc_order',
+  43 => 'phpdoc_types_order',
   44 => 'semicolon_after_instruction',
   45 => 'single_line_comment_style',
   46 => 'strict_comparison',

we want this or not natcasesort but just sort?

i would use normal sort, as we are using normal sort everywhere else.
but no big deal here

well... 2.2 ?

@localheinz if you agree, please squash my doodles-commits into your first commit and do the retarget to 2.2, I don't want to mess around even more with your branch than I already did

on 2.2 there won't be changes in .php_cs files, eg no_alternative_syntax were not existing there.
@SpacePossum , simply open new PR of your commits only targetting 2.2, it will replace this PR

check, done, @localheinz please throw out my commits here (sorry for the noise)

replaced by #3629
Thanks @localheinz !


[8.x] Fixes bug when trying to make:listener of an already existing listener

This PR fixes an issue when trying to create a listener that already exists, right now if creating a listener with the name of a class that already exists it overwrites it.
Looks like  the alreadyExists method on the parent class GeneratorCommand.php does the trick for this one, so no need for the alreadyExists on this class.

Also notice the MakeModelCommand.php as a force option, I can add it on this pull request, or should I create a new one?
Thanks.

Not removing existing code without clearer understanding. It will break some use cases.

@taylorotwell that is basically what is happening, it always overwrites:

and with the code removal and only using the alreadyExists of the parent class it works:

I don't think it will be a breaking change, since it suppose to be working this way.


[Feature] Change Desgin Of Scroll To Top

Description
I would like to change the design of the scroll to top button to something like this:

It would be great to contribute in this repo for GSSoC'23!
Screenshots
See above
Checklist

[X] I have checked the existing issues
[X] I have read the [Contributing Guidelines]
[X] I have read the discussion tab thoroughly and got the project idea
[X] I am willing to work on this issue (optional)
[X] I am a GSSoC'23 contributor

Can you change to other one?

hm like what would it look like?

But it doesn't looks quiet good.

hm😞
ok i will find some other feature to add to this repo! Thanks!


lesson count not displayed

for bonus skills in en<>es tree
for skill 19 & 20 in en<ru tree
bonus es en.log
lessons 19 20 en ru.log

Bonus skills are not supported. I don't know why, but Duolingo seems to treat them very differently to other skills, and they are just not worth it for me.

ok, forget about bonus skills, what about others ?

I can't reproduce.

Are you sure you're running the latest version 1.2.4? Duolingo changes the UI components from time to time, breaking the script.

This is in the English FROM Russian tree ONLY for skills  # 19 and 20.
If i see the same problem  in my other trees i'll let you know
I just updated from 1.2.3 to 1.2.4 after clearing browser history etc problem is still there.
same error.
userscript.html?id=a1259e01-602f-4872-bcc8-b7af1da9100d:303 Uncaught TypeError: Cannot read property 'finishedLessons' of undefined
at MutationObserver.onChangeNextLesson (userscript.html?id=a1259e01-602f-4872-bcc8-b7af1da9100d:303)

Are those two the only skills with a '?' in their name? It might be an encoding problem. Can you check skills 16 and 32?

Привет!

Я зелёный совёнок Duo! Добро пожаловать на Duolingo, самое скачиваемое образовательное приложение в мире!
Вот два совета, как учить английский эффективнее.

Загрузите приложение Duolingo
Учитесь в любое время и в любом месте.

Занимайтесь каждый день
5-10 минут в день — и вы заведете полезную привычку, которая изменит вашу жизнь.

5900 Penn Avenue, Pittsburgh PA 15206, USA
Отказ от уведомлений

16 & 32 are fine, and the rest too, just 19 & 20 are no  good
i made an account for you : UID & PWD the same - NextLesson
Please take a look  yourself and delete it when done.

Thank you! Definitively an encoding problem. Fixed.

Hi NextLesson! Keep Duo happy! Remember that learning a language requires a little bit of practice every day.
Keep going to reach your next target
45 points away from level 2
If you'd rather not receive notifications, you can unsubscribe in
https://www.duolingo.com/unsubscribe?email=e260ec30beeb90ab15922dc22ea00bd98d30d16aInJlcGx5K0FPTTZRWlcyT1ZTUkVNS1lMNkxaNjNWNE5JNlpORVZCTkhIQ0VHVlo2SUByZXBseS5naXRodWIuY29tIg==&type=notify_practice&language_abbrev=es
(c) 2020 Duolingo
5900 Penn Avenue
Pittsburgh PA 15206
USA


Update flask-cors package

PR Title :boom:
Please title this PR with a summary of the change, along with the JIRA card number.
Suggested formats:

Fixes/Refs #RHIROS-XXX - Title
RHIROS-XXX Title

Feel free to remove this section from PR description once done.
Why do we need this change? :thought_balloon:
Please include the context of this change here.
Documentation update? :memo:

[ ] Yes
[ ] No

Security Checklist :lock:
Upon raising this PR please go through RedHatInsights/secure-coding-checklist
:guardsman: Checklist :dart:

[ ] Bugfix
[ ] New Feature
[ ] Refactor
[ ] Unittests Added
[ ] DRY code
[ ] Dependency Added
[ ] DB Migration Added

Additional :mega:
Feel free to add any other relevant details such as links, notes, screenshots, here.

I have updated the package but I observed that this is latest version 4.0.0  also affected with same vulnerability. So closing it. After getting fix and version update, I will recheck again.


Add browser support

Exception thrown because module is undefined in the browser.

Related PR with fix: https://github.com/sindresorhus/object-assign/pull/28

Please check the existing issues before opening a new issue or creating a pull request. https://github.com/sindresorhus/object-assign/pull/27

That's unfortunate that there are no intentions to make this work in the browser, considering the package is offered on Bower.