May 19, 2018

Saksham Gupta

How I am creating automated colour palettes using Colour Theory

It’s been a week since I’ve been working on my Google Summer of Code project with phpMyAdmin and my work for this week was to create a separate page for the tool and add/remove functions in a preexisting colour picker tool. The existing tool was creating some palettes but they were not using colour theory to create palettes usable that could be used directly on websites. I have been focusing on four types four types of colour palettes, Monochromatic, Complementary, Analogous and Triadic.

The most difficulties were faced in Monochromatic and Analogous, in the monochromatic theme the main thing was how the palette should be managed if the hue value remains same and saturation and brightness changes of the base colour. I solved it by taking a range of saturation and brightness keeping the average of them equal to that of base colour. Also the values of saturation and brightness were in opposite orders for further contrast. In Analogous theme the problem was how further should the hue difference be set from base colour for optimal colours , I was quite satisfied with 45 degrees in the end. So in the end of this week I have completed all the colour palettes, the next step would be to start integrating the colour picker tool with back end.

by Saksham Gupta at May 19, 2018 06:08 PM

May 16, 2018

Piyush Vijay

Google Summer of Code with phpMyAdmin — Introducing modern JS features and tools

I’m very happy to announce that I’ve been working with phpMyAdmin this summer under Google Summer of Code program and my project for the same is “Introducing modern JS features and tools” into phpMyAdmin’s code base. The duration of project will be nearly four months (starting April, 23 to August 14).

The project involves introducing package manager for managing modules so that the modules can be updated easily, introducing ES6 into the code base, babel for compiling ES6 to ES5 which the browsers support, webpack for creating minified files which can be served in production mode and eslint for code linting to find out problematic patterns or code that doesn’t adhere to certain style guidelines.

phpMyAdmin’s javascript code is written very well in terms of logic and best practices and very well documented but there are some problems with the current code, many of the variables are globally exposed and the external libraries like jquery are used as a downloaded library. So every time a new release is there, these files need to be replaced with the new files manually.

The global variables can be reduced by using some modern javascript ES6 features like module import and export, block scoped variables and using classes and closures for interdependent files which is not there right now.

The problem of manually updating files can be removed by using a package manager like npm or yarn, which have commands like “npm update” to update the existing modules.

As the javascript code base of phpMyAdmin is very large, it might not be possible to revamp the whole code base in three months, so my major focus will be on bringing the new code with new features in such state that the existing code and the new code can me compiled together and can be used in production.

By the end of GSoC program, I expect to implement the aforementioned tools and features without breaking the build status and consistency of the code base and convert as much of ES5 code to ES6, as possible.

For future(not part of the program): There can be some other features which can be implemented like unit testing of the functions and type check of various variables which will help in reducing and easily identifying errors related to type check.

by Piyush Vijay at May 16, 2018 02:32 PM

May 14, 2018

Leonardo Strozzi

Google Summer of Code with phpMyAdmin

I’m very happy to announce that I was one of the selected to work with phpMyAdmin during Google Summer of Code this year, which will happen, this winter (here at Brazil), from April 23th to August 6th.

I will be working with the Twig templates currently in use at the project, which can be found here. The idea of using a template engine is to maintain code organization and consistency, by separating your logic code from your markup, or front-end.

phpMyAdmin’s front-end is not fully implemented using Twig, there’s plenty of work to be done here, my work on this project is to Refactor this templates, using more of Twig’s features to enhance code organization. The first thing that will be done is to analyse if all Twig extensions currently in use are really necessary or if it can be replaced by a Twig feature, if changes are made in this part, it will be necessary to change the code in every part that this changes affects, what can be done while refactoring each template.

After the extensions are all good, the next thing to do is to go through the code on functions that return html and apply Twig features on this functions and templates that are used. For example, here, a possible thing to do is to use ‘Blocks’ or ‘Extends’ feature to simplify all of these front-end calls into one.

By the end of the GSoC program I expect to have contributed to a project that seizes the most of Twig’s benefits. And I hope that I’ll be able to expand my open source contributions.

by Leonardo Strozzi at May 14, 2018 02:09 PM

May 12, 2018

Saksham Gupta

Google Summer of Code 2018 with phpMyAdmin - “Automated Theme Generator Tool”

I am very happy to announce that I’ll be working with phpMyAdmin this summer on the project ‘Automated Theme Generator Tool’. Currently there are pre-generated themes that can be manually installed and used. The idea is to create a tool that automates and makes easier the task of creating themes. Themes created from the Theme Generator tool would be less prone to bugs in the long run and could cater to each individuals needs. For the automated themes to look good to the eye, I’ll be using the concepts of Colour Theory.

The major goal of this project is to create a tool, that would create themes giving the users adequate freedom for changes and at the same time, automates the other parameters of the themes itself so that theme looks good i.e. by using colour combinations that are appealing to the eye. Designers use a variety of techniques to create themes and colour combinations that would be good looking. One of the main tools that would be used is a designer’s colour wheel.

Though RGB and Hexadecimal values are important for creating a webpage, they are of little use while studying Colour Theory. The HSB (hue, saturation, and brightness) are more important in working with colors. HSB values can be easily converted from hexadecimal and RGB values.

Munsell Colour System

Primarily we would focus on four types of colour schemes:

  • Monochromatic Colour Schemes

Monochromatic schemes use different tones from the same angle on the colour wheel. All colours are derived from the base colour and the hue value is not changed.

  • Analogous Colour Schemes

Analogous colour schemes are created by using colours that are next to each other on the colour wheel.

  • Complementary Colour Schemes

Complementary schemes are created by combining colours from opposite sides of the colour wheel.

  • Triadic Colour Schemes

Triadic schemes are made up of hues equally spaced around colour wheel.

All the colours generated by the colour scheme using the formulas of colour theory, would be displayed on a colour palette so that the user can further tune each colour according to his choice if they want to. The main elements to keep in mind while assigning colours are:

  1. Headers
  2. Footers
  3. Background
  4. Tables
  5. Groups
  6. Notices
  7. Results
  8. Buttons

Apart from styling the webpage as a whole, the users can use the same color picker tool to customise the font color and a drop down menu to change text font from a set of predefined fonts supported by the browser.

There are many different types of text that would require different colors to distinguish each other. The most important being the following:

  • Headings — These would generally match with the base color of the theme.
  • Links and Links (on hover) — The two text should be distinguished from each other apart from being different from the normal text.
  • Other text — This text would cover up most of the text present on a page.

One thing to keep in mind is that for the maximum visibility of text, the text color should be contrasting to that of the background color, by default. One option is to set complementary colors to that of the colors selected in the theme.

A minor tweak that can be allowed are a set of predefined icons and if time permits, we could start working on adding gradient to the themes. The last thing required would be to save the theme settings so that the same theme opens the every time phpMyAdmin is reopened.

The final tool would look somewhat like this:

Mockup

Mockup

The four color wheels indicate the different scheme types to choose from, currently the monochromatic color scheme is shown to be selected. A color picker tool is shown which could easily convert HSB, RGB and hexadecimal values into each other. The Elements and Text palette shows the colors that would be used for them respectively. On hovering on a particular color, a popup would show for what elements the particular color would be used (Example: The cursor is on the blue color, and a pop-up displays that it would be used for hyperlinks). The Theme name asks for an input to save the theme with a particular name. The Font Style option shows a drop-down menu to select a font style. A Preview and Go button are at the bottom of the page which displays a preview and saves the theme respectively. At the right side the Sample Preview shows various sample previews of four main components(Main Window, Query and Table List, Navigation Panel, Table Data). These preview panels can be hard coded on this page rather than linking it with the original pages, this would save time and make things easier. At the end of the project we could expect the theme generator tool to be completed and ready to be pushed to master branch, and later to STABLE branch after adequate testing. A summarised list of expected deliverables are:

  1. A customised color picker tool.
  2. Different color scheme modes.
  3. Custom text color and fonts.
  4. Theme preview mode.
  5. Save the themes settings and creating the necessary files.
  6. Choice of predefined icons. (Optional — as advised by the mentor)
  7. Color gradient on different elements. (If time permits)
  8. Remove inline style scripts. (As required and as per time)

Project Schedule

April 23, 2018 — May 14, 2018

  • Bonding with community.
  • Discuss and clear the ambiguities and implementation details.

May 14, 2018 — May 21,2018

  • Create a new page for Theme Generator Tools.
  • Implement Basic Colour Picker Tool and customising it according to our needs (adding necessary functions and removing the unnecessary ones).

May 22,2018 — May 29,2018

  • Save theme and create necessary files automatically.
  • Opens the same theme when phpMyAdmin restarts.
  • Test cases and documentation.

May 30,2018 — June 6,2018

  • Add color schemes functions.
  • Integrating the color scheme functions with the color picker tool.
  • Basic color changing webpage.
  • Fix inline styles where necessary.

June 7,2018 — June 14,2018

  • Make-up week.
  • Fix any bugs and write the required documentation.
  • Submit work for phase-1 evaluations.

Mid evaluation: June 11–15, 2018

June 15,2018 — June 22,2018

  • Add remaining color schemes functions.
  • Integrate text color changes with color picker tool.
  • Automate text colors with the selected color scheme.

June 23,2018 — June 30,2018

  • Create Sample Preview Panels
  • Font changes.
  • Write Tests and documentation.

July 1,2018 — July 8,2018

  • Make-up week.
  • Submit work for phase-2 evaluations.

Mid evaluation: July 9–13, 2018

July 9,2018 — July 16,2018

  • Predefined icon picker drop-down menu.
  • Integrate Theme Generator with Sample Preview.
  • Travis test cases.

July 17,2018 — July 24,2018

  • Fine tune CSS features.
  • Fix any bugs that might have gone unnoticed.
  • Remaining Travis test cases.

July 25,2018 — August 1,2018

  • Add gradient tool.
  • Fix any colour scheme automation .
  • Write Documentation.

August 2,2018 — August 6,2018

  • Make up week.
  • Wrap up the work.
  • Fix any bugs and do required documentation.
  • Work on more features if time permits.

Final evaluation: August 6–14, 2018

I’ll be updating my weekly progress of the project on this blog.

by Saksham Gupta at May 12, 2018 11:45 AM

May 11, 2018

Lakshay Arora

GSoC progress in community bonding period.

GSoC progress in community bonding period.

Worked on some issues in the Issue Tracker

  1. There was a bug in the edit view feature, where the form submission button was missing. It was a small task to add the button. Currently, I am working on removing two buttons in create view form as discussed in the issue page.

  2. There is a bug in the recent tables list on the navigation panel which doesn’t show the recently visited tables. I’ve submitted a PR which solves this issue.

Started working on the first enhancement

As I’ve stated in my proposal that I won’t be able to give 5-6 hours from 28th May to 8th June. I’ve already started working on the first enhancement. The aim is to append a modal on the page which would ask for login, instead of rendering the whole login page, which would preserve the information which user entered in the previous session.

Progress

I’ve made the modal which is correctly appended on the page when session times out and logs in the user.

Implementation in detail-

There is a function UpdateIdleTime() in functions.js which sends post request just a second before the session runs out. When it finds that the session has expired(according to server response, more on this below), it reloads the page. I’ve changed it so that instead of reloadin the page, it appends the modal returned(more on this below).

When updateIdleTime() sends a request to the server and it detects session timeout, it sends with a success false response and updateIdleTime() reloads the page. Instead of returning a false response, I’ve changed the file “libraries/classes/Auth/AuthenticationCookie.php” to return a modal.

When the user logs in again, a new session is started issuing a new session token, all the hidden form elements with the old session token are replaced with the new token. If a new user logs in, it reloads the page.

Security Concerns

I’m currenty testing for security vulnerabilities and implementing security features to prevent unauthorized access.

  1. Page is automatically reloaded if the modal is deleted explicilty.
  2. All the page functionalities are disabled while the modal appears.
  3. …..

See you next time. :)

May 11, 2018 12:00 AM

April 28, 2018

Michal Čihař

What's being cooked for Weblate 3.0

Next release on Weblate roadmap is called 3.0 and will bring some important changes. Some of these are already present in the Git repository and deployed on Hosted Weblate, but more of that will follow.

Component discovery

Component discovery is useful feature if you have several translation components in one repository. Previously import_project management command was the only way to help you, however it had to be executed manually on any change. Now you can use Component discovery addon which does quite similar thing, however is triggered on VCS update, so it can be used to follow structure of your project without any manual interaction. This feature is already available in Git and on Hosted Weblate, though you have to ask for initial setup there.

Code cleanups

Over the years (first Weblate release was more than six years ago) the code structure is far from optimal. There are several code cleanups scheduled and some of them are already present in Git repository. This will make Weblate easier to maintain and extend (eg. with third party file format drivers).

User management

Since the beginning Weblate has relied on user management and permissions as provided by Django. This is really not a good fit for language / project matrix permissions which most people need so we've come with Group ACL to extend this. This worked quite well for some use cases, but it turned out to be problematic for others. It is also quite hard to setup properly. For Weblate 3.0 this will be dropped and replaced by access control which fits more use cases. This is still being finalized in our issue tracker, so if you have any comments to this, please share them.

Migration path

Due to above mentioned massive changes, migrations across 3.0 will not be supported. You will always have to upgrade to 3.0 first and then upgrade to further versions. The code cleanups will also lead to some changes in the configuration, so take care when upgrading and follow upgrading instructions.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at April 28, 2018 10:00 AM

Lakshay Arora

Google Summer of Code 2018 with phpmyadmin

Selected for GSoC 2018 :).

Why phpmyadmin

I started backend development about a year ago and I’ve been using phpmyadmin ever since. I can’t remember a time in my learning when I didn’t use phpmyadmin to manage my databases. Using phpmyadmin makes the development process so easy and fast because I don’t have to write SQL queries again and again, and can focus on writing code for my app.

I was determined to participate in GSoC this year and wanted to work in php to apply what I had learned and to take my development skills to a higher level. When I saw phpmyadmin as one of the organisations in GSoC, I had instantly decided that I’ll be applying in this org.

Early participation and contributions

I started contributing to phpmyadmin in January this year and I was fascinated to see the well-maintained multi-platform (Web, Desktop, Mobile) support and codebase.

Through my contributions in phpmyadmin I have learnt a lot about open source development and more importantly about good software development techniques. Following are the links to my contributions to the repository.

  1. Closed PRs.
  2. Open PRs.
  3. Issues found

I am excited about contributing to phpmyadmin and hope to meet the expected standards.

Project Abstract

The aim of the project is to implement some of the enhancements suggested in the issue tracker to improve user experience(adding new useful features and making the app easier to use), security and performance.

Project Mentor : Isaac Bennetch

Blog and Checkins

I have still to figure out how often would I post on this blog. I am planning something of a weekly update posts but that’d depend on how the work progresses. I’ll stay in contact with my mentor, reporting the progress, getting feedback about the ideas and the code I’ll write.

April 28, 2018 12:00 AM

GSoC proposal. Enhancements I’ll work on.

Following is the list of enhancements I’ll work on this summer.

1. ​Add modal to login after session expired

The default idle session timeout is 24 minutes, after which the session is destroyed and the user has to login again to use the app. The problem is that the login page is rendered over the current page leading to loss of all the information user was entering. Login page overwrites the current page

Enhancement -

Append a modal on the page which would ask for login, instead of rendering the whole login page, which would preserve information.

2. Importing table from a CSV file

When a table is imported from a CSV file, the default table name is Table ## and default names for the columns are COL ##. Default table and column names

Enhancement-

Set the imported table name to the name of the imported file and column names to the titles of each column in the csv file OR ask the user to enter table and column names.

3. ​Increase input field width for varchar(255)

Enhancement-

In the insert row page, the dimensions of varchar textareas are small, which could be increased. As suggested in a ​comment​, the user appreciated presence of this feature in the earlier version and thus can be re-considered in the current version for a better user-experience.

Default width of varchar textareas in insert page

4. ​Edit an existing row and setting auto increment should prompt to add index

Making an existing int column ‘auto_increment’ shows the error message “#1075 - Incorrect table definition; there can be only one auto column and it must be defined as a key”. Error message when trying to add auto increment on existing column

Enhancement-

Show a dialog to add an index to the column.

5. ​Configuration option to disable drag drop files completely

Enhancement-

Add a configuration option to disable drag and drop files support.

6.​ ​Error popup

In the error popup, it is difficult to read the query when it overflows and it’s not possible to copy the query as the popup closes when clicked. Error popup

Enhancement-
  1. Disable onclick close by default and add a close button at the top right corner.
  2. Wrap the query if it overflows for better readability.
  3. Add a ‘Copy Query’ button.

7.​ ​Add warning for default user/password usage

Enhancement-
  1. Don’t use the controluser ‘pma’ if it does not yet exist and don’t use ‘pmapass’ as password.

  2. Test if pma:pmapass is used, and warn about it.

8. ​Order distinct values table by count

The distinct values table is currently ordered by value.

Enhancement-

Order the distinct values by count in descending order.

9. ​Store user preferences in browser local storage

All user configuration is stored in the user preferences. When the phpMyAdmin storage configuration is not configured, these do not persist over session.

Enhancement-

Use browser local storage for storing user configuration.

10. ​Add support for CHECK constraints (feature request)

MariaDB (MySQL-compatible) added support for CHECK constraints to version 10.2. (stable=10.2.8). It would be very useful if PHPMyAdmin had a UI for adding and managing these in tbl_create.php and tbl_structure.php.

Enhancement-

Implement a UI for adding and managing CHECK constraints in tbl_create.php and tbl_structure.php.

April 28, 2018 12:00 AM

April 09, 2018

Michal Čihař

New projects on Hosted Weblate

Hosted Weblate provides also free hosting for free software projects. The hosting requests queue has grown too long and waited for more than month, so it's time to process it and include new projects. I hope that gives you have good motivation to spend Christmas break by translating free software.

This time, the newly hosted projects include:

If you want to support this effort, please donate to Weblate, especially recurring donations are welcome to make this service alive. You can do that easily on Liberapay or Bountysource.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at April 09, 2018 10:00 AM

April 05, 2018

Michal Čihař

Weblate 2.20

Weblate 2.20 has been released today. There are several performance improvements, new features and bug fixes.

Full list of changes:

  • Improved speed of cloning subversion repositories.
  • Changed repository locking to use third party library.
  • Added support for downloading only strings needing action.
  • Added support for searching in several languages at once.
  • New addon to configure Gettext output wrapping.
  • New addon to configure JSON formatting.
  • Added support for authentication in API using RFC 6750 compatible Bearer authentication.
  • Added support for automatic translation using machine translation services.
  • Added support for HTML markup in whiteboard messages.
  • Added support for mass changing state of strings.
  • Translate-toolkit at least 2.3.0 is now required, older versions are no longer supported.
  • Added built in translation memory.
  • Added componentlists overview to dashboard and per component list overview pages.
  • Added support for DeepL machine translation service.
  • Machine translation results are now cached inside Weblate.
  • Added support for reordering commited changes.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. Weblate is also being used on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Turris, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at April 05, 2018 02:28 PM

April 02, 2018

Maurício Meneghini Fauth

Weekly phpMyAdmin contributions 2018-W13

Last week was very productive. I spent most of my time reviewing all the pull requests. I’ve also fixed a few minor bugs and refactored the static methods of some classes.

Issues:

The post Weekly phpMyAdmin contributions 2018-W13 appeared first on mauriciofauth.com.

by Maurício Meneghini Fauth at April 02, 2018 08:16 PM

March 21, 2018

Michal Čihař

Weekly phpMyAdmin contributions 2018-W11

Last week was pretty quiet. The most interesting part was licensing issue with two factor authentication library we use. In the end the library was relicensed to MIT, what makes it compatible with pretty much anything.

I've spent some time on the Debian packages as well, I'm getting closer to make them work again, but there are still some issues to overcome.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at March 21, 2018 11:00 AM

March 13, 2018

Michal Čihař

Weekly phpMyAdmin contributions 2018-W10

Last week was a bit quiet, I've spend some time on our infrastructure and doing reviews. There is still big pending task to update Debian packages and I will hopefully get to it this week.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at March 13, 2018 11:00 AM

March 01, 2018

Maurício Meneghini Fauth

Weekly phpMyAdmin contributions 2018-W08

Last week I back-ported a bug fix that was affecting branch 4.7. I removed the references to PMD in favor of Designer and I also refactored some classes by replacing the static methods with instance methods.

Issues:

The post Weekly phpMyAdmin contributions 2018-W08 appeared first on mauriciofauth.com.

by Maurício Meneghini Fauth at March 01, 2018 08:22 PM

February 20, 2018

Michal Čihař

Weblate 2.19.1

Weblate 2.19.1 has been released today. This is bugfix only release mostly to fix problematic migration from 2.18 which some users have observed.

Full list of changes:

  • Fixed migration issue on upgrade from 2.18.
  • Improved file upload API validation.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. Weblate is also being used on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Turris, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at February 20, 2018 02:00 PM

Weekly phpMyAdmin contributions 2018-W07

Last week was mostly spent on fixing issues with translations and improving our Docker container. That is now based on official PHP FPM image, so it will always get latest stable PHP instead of the one shipped by Alpine.

Besides that there was small, but important change in the motranslator library which no longer sets system locale (as it really has no good reason to do that). This change lead to releasing new major version of the library as it might need code changes for users who relied on this (what was the phpMyAdmin case).

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at February 20, 2018 11:00 AM

February 15, 2018

Michal Čihař

Weblate 2.19

Weblate 2.19 has been released today. The biggest improvement are probably addons to customize translation workflow, but there are some other enhancements as well.

Full list of changes:

  • Fixed imports across some file formats.
  • Display human friendly browser information in audit log.
  • Added TMX exporter for files.
  • Various performance improvements for loading translation files.
  • Added option to disable access management in Weblate in favor of Django one.
  • Improved glossary lookup speed for large strings.
  • Compatibility with django_auth_ldap 1.3.0.
  • Configuration errors are now stored and reported persistently.
  • Honor ignore flags in whitespace autofixer.
  • Improved compatibility with some Subversion setups.
  • Improved built in machine translation service.
  • Added support for SAP Translation Hub service.
  • Added support for Microsoft Terminology service.
  • Removed support for advertisement in notification mails.
  • Improved translation progress reporting at language level.
  • Improved support for different plural formulas.
  • Added support for Subversion repositories not using stdlayout.
  • Added addons to customize translation workflows.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. Weblate is also being used on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Turris, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at February 15, 2018 03:16 PM

February 12, 2018

Michal Čihař

New projects on Hosted Weblate

Hosted Weblate provides also free hosting for free software projects. The hosting requests queue has grown too long and waited for more than month, so it's time to process it and include new projects. I hope that gives you have good motivation to spend Christmas break by translating free software.

This time, the newly hosted projects include:

If you want to support this effort, please donate to Weblate, especially recurring donations are welcome to make this service alive. You can do that easily on Liberapay or Bountysource.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at February 12, 2018 11:00 AM

February 01, 2018

January 27, 2018

Maurício Meneghini Fauth

Weekly phpMyAdmin contributions 2018-W03

Last week I refactored the PhpMyAdmin\BrowseForeigners class by replacing the static methods with instance methods. I also investigated ways to increase code coverage.

Issues:

The post Weekly phpMyAdmin contributions 2018-W03 appeared first on mauriciofauth.com.

by Maurício Meneghini Fauth at January 27, 2018 07:25 PM

January 23, 2018

Michal Čihař

Weekly phpMyAdmin contributions 2018-W03

Last week was mostly spent on our infrastructure - I've migrated all virtual machines from old server to new one. This went pretty smoothly with about one hour delay during the migration. Everything now should work just fine and with considerably increased performance.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at January 23, 2018 11:00 AM

January 19, 2018

Maurício Meneghini Fauth

Weekly phpMyAdmin contributions 2018-W02

Last week I refactored the PhpMyAdmin\Display\Export class by moving the HTML to the templates and replacing the static methods with instance methods.

The post Weekly phpMyAdmin contributions 2018-W02 appeared first on mauriciofauth.com.

by Maurício Meneghini Fauth at January 19, 2018 08:29 PM

January 13, 2018

Maurício Meneghini Fauth

Weekly phpMyAdmin contributions 2018-W01

Last week was a bit calmer. I removed the javascript that was used to hide the action buttons on the table structure page. This code had a very low performance and the short-term solution was to remove it.

Issues:

The post Weekly phpMyAdmin contributions 2018-W01 appeared first on mauriciofauth.com.

by Maurício Meneghini Fauth at January 13, 2018 03:06 AM

January 09, 2018

Michal Čihař

Weekly phpMyAdmin contributions 2018-W01

First week of 2018 was a bit less intense on the code fixing side, but I've done some work on our infrastructure preparing for migration to the new server, which should be available as soon as Conservancy approves payments for it.

The new server will be located at Hetzner and you can check more details on the selection process in our wiki. The current server has been used for almost 10 years and is really showing it's age.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at January 09, 2018 11:00 AM

January 05, 2018

Michal Čihař

Gammu release day

I've just released new versions of Gammu, python-gammu and Wammu. These are mostly bugfix releases (see individual changelogs for more details), but they bring back Wammu for Windows.

This is especially big step for Wammu as the existing Windows binary was almost five years old. The another problem with that was that it was cross-compiled on Linux and it always did not behave correctly. The current binaries are automatically produced on AppVeyor during our continuous integration.

Another important change for Windows users is addition of wheel packages to python-gammu, so all you need to use it on Windows is to pip install python-gammu.

Of course the updated packages are also on their way to Debian and to Ubuntu PPA.

Filed under: Debian English Gammu python-gammu Wammu

by Michal Čihař (michal@cihar.com) at January 05, 2018 05:00 PM

January 02, 2018

Michal Čihař

Weekly phpMyAdmin contributions 2017-W51

Last week before Christmas was pretty calm, I've mostly spent time on fixing our Selenium tests which again showed a bit of instability, what should be hopefully addressed now.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at January 02, 2018 11:00 AM

December 22, 2017

Michal Čihař

New projects on Hosted Weblate

Hosted Weblate provides also free hosting for free software projects. The hosting requests queue has grown too long, so it's time to process it and include new projects. I hope that gives you have good motivation to spend Christmas break by translating free software.

This time, the newly hosted projects include:

There are also some notable additions to existing projects:

If you want to support this effort, please donate to Weblate, especially recurring donations are welcome to make this service alive. You can do that easily on Liberapay or Bountysource.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at December 22, 2017 11:00 AM

December 19, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W50

Last week contributions were mostly focused on fixing bugs. It's a bit hard to pinpoint something out of these, but most of them were really old, but not easy to trigger.

For example there were some javascript errors which were not easily reproducible, but turned out to be affecting quite a lot of our users. It turned out to be affecting only some variants of TIMESTAMP fields, what none of the reports did mention.

I've also switched all our libraries to use ApiGen 4 for generating docs as ApiGen 5 is way slower and is looking for new maintainer in the same time.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at December 19, 2017 11:00 AM

December 15, 2017

Michal Čihař

Weblate 2.18

Weblate 2.18 has been released today. The biggest improvement is probably reviewer based workflow, but there are some other enhancements as well.

Full list of changes:

  • Extended contributor stats.
  • Improved configuration of special chars virtual keyboard.
  • Added support for DTD file format.
  • Changed keyboard shortcuts to less likely collide with browser/system ones.
  • Improved support for approved flag in Xliff files.
  • Added support for not wrapping long strings in Gettext po files.
  • Added button to copy permalink for current translation.
  • Dropped support for Django 1.10 and added support for Django 2.0.
  • Removed locking of translations while translating.
  • Added support for adding new units to monolingual translations.
  • Added support for translation workflows with dedicated reviewers.

If you are upgrading from older version, please follow our upgrading instructions.

You can find more information about Weblate on https://weblate.org, the code is hosted on Github. If you are curious how it looks, you can try it out on demo server. You can login there with demo account using demo password or register your own user. Weblate is also being used on https://hosted.weblate.org/ as official translating service for phpMyAdmin, OsmAnd, Turris, FreedomBox, Weblate itself and many other projects.

Should you be looking for hosting of translations for your project, I'm happy to host them for you or help with setting it up on your infrastructure.

Further development of Weblate would not be possible without people providing donations, thanks to everybody who have helped so far! The roadmap for next release is just being prepared, you can influence this by expressing support for individual issues either by comments or by providing bounty for them.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at December 15, 2017 01:15 PM

December 05, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W48

Looking at list of handled issues, last week was extremely productive. Many of that are issues where I've been working on them for long time and I've managed to complete them last week. For example the user preferences cleanup to store less things in cookies or common.inc.php cleanup.

I've also gone through open pull requests and merged the ones which made sense or were basically good to merge, but needed some cleanups.

There was also some fun with phpseclib 2.0.8 which was mistakenly released from master branch instead of 2.0, what lead to API breakage. Fortunately this was really just a mistake and 2.0.9 reverted these changes.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at December 05, 2017 11:00 AM

November 28, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W47

Last week was mostly spent on improving two factor authentication support. It turned out that Firefox 57 behaves differently than Firefox 56 with U2F extension. Also it behaves differently than Chrome (which was broken as well by the way). Anyway all of these should work fine, but there still seem to be some issues with the two factor auth, but those will be certainly addressed in next weeks.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at November 28, 2017 11:00 AM

Maurício Meneghini Fauth

Weekly phpMyAdmin contributions 2017-W47

Last week I focused on refactoring the PhpMyAdmin\Display\Import class, which had several methods that were returning HTML code. I converted all of these methods into template calls making it easy to view the HTML and reducing the complexity of the class.

Issue:

The post Weekly phpMyAdmin contributions 2017-W47 appeared first on mauriciofauth.com.

by Maurício Meneghini Fauth at November 28, 2017 12:59 AM

November 21, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W46

Last week was equally spent on refactoring, bugfixing and infrastructure. We're looking for replacement our oldish server and it seems that rented server or virtual hosts seems to be best fit for us these days. Still there are quite some choices to consider.

I've done quite some development as well - I'm most happy with Util::linkOrButton refactoring which helped to cleanup the code quite a lot, but there were other fixes and improvements as well.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at November 21, 2017 11:00 AM

November 17, 2017

Michal Čihař

Running Bitcoin node and ElectrumX server

I've been tempted to run own ElectrumX server for quite some. First attempt was to run this on Turris Omnia router, however that turned out to be impossible due to memory requirements both Bitcoind and ElectrumX have.

This time I've dedicated host for this and it runs fine:

Electrum connecting to btc.cihar.com

The server runs Debian sid (probably it would be doable on stretch as well, but I didn't try much) and the setup was pretty simple.

First we need to install some things - Bitcoin daemon and ElectrumX dependencies:

# Bitcoin daemon, not available in stretch
apt install bitcoind

# We will checkout ElectrumX from git
apt install git

# ElectrumX deps
apt install python3-aiohttp

# Build environment for ElectrumX deps
apt install build-essentials python3-pip libleveldb-dev

# ElectrumX deps not packaged in Debian
pip3 install plyvel pylru

# Download ElectrumX sources
su - electrumx -c 'git clone https://github.com/kyuupichan/electrumx.git'

Create users which will run the services:

adduser bitcoind
adduser electrumx

Now it's time to prepare configuration for the services. For Bitcoin it's quite simple - we need to configure RPC interface and enable transaction index in /home/bitcoind/.bitcoin/bitcoin.conf:

txindex=1
listen=1
rpcuser=bitcoin
rpcpassword=somerandompassword

The ElectrumX configuration is quite simple as well and it's pretty well documented. I've decided to place it in /etc/electrumx.conf:

COIN=BitcoinSegwit
DB_DIRECTORY=/home/electrumx/.electrumx
DAEMON_URL=http://bitcoin:somerandompassword@localhost:8332/
TCP_PORT=50001
SSL_PORT=50002
HOST=::

DONATION_ADDRESS=3KPccmPtejpMczeog7dcFdqX4oTebYZ3tF

SSL_CERTFILE=/etc/letsencrypt/live/btc.cihar.com/fullchain.pem
SSL_KEYFILE=/etc/letsencrypt/live/btc.cihar.com/privkey.pem

REPORT_HOST=btc.cihar.com
BANNER_FILE=banner

I've decided to control both services using systemd, so it's matter of creating pretty simple units for that. Actually the Bitcoin one closely matches the one I've used on Turris Omnia and the ElectrumX the one they ship, but there are some minor changes.

Systemd unit for ElectrumX in /etc/systemd/system/electrumx.service:

[Unit]
Description=Electrumx
After=bitcoind.target

[Service]
EnvironmentFile=/etc/electrumx.conf
ExecStart=/home/electrumx/electrumx/electrumx_server.py
User=electrumx
LimitNOFILE=8192
TimeoutStopSec=30min

[Install]
WantedBy=multi-user.target

And finally systemd unit for Bitcoin daemon in /etc/systemd/system/bitcoind.service:

[Unit]
Description=Bitcoind
After=network.target

[Service]
ExecStart=/usr/bin/bitcoind
User=bitcoind
TimeoutStopSec=30min
Restart=on-failure
RestartSec=30

[Install]
WantedBy=multi-user.target

Now everything should be configured and it's time to start up the services:

# Enable services so that they start on boot 
systemctl enable electrumx.service bitcoind.service

# Start services
systemctl start electrumx.service bitcoind.service

Now you have few days time until Bitcoin fetches whole blockchain and ElectrumX indexes that. If you happen to have another Bitcoin node running (or was running in past), you can speedup the process by copying blocks from that system (located in ~/.bitcoin/blocks/). Only get blocks from sources you trust absolutely as it might change your view of history, see Bitcoin wiki for more information on the topic. There is also magnet link in the ElectrumX docs to download ElectrumX database to speed up this process. This should be safe to download from untrusted source.

The last think I'd like to mention is resources usage. You should have at least 4 GB of memory to run this, 8 GB is really preferred (both services consume around 4GB). On disk space, Bitcoin currently consumes 170 GB and ElectrumX 25 GB. Ideally all this should be running on the SSD disk.

You can however offload some of the files to slower storage as old blocks are rarely accessed and this can save some space on your storage. Following script will move around 50 GB of blockchain data to /mnt/btc/blocks (use only when Bitcoin daemon is not running):

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
#!/bin/sh
set -e

DEST=/mnt/btc/blocks

cd ~/.bitcoin/blocks/

find . -type f \( -name 'blk00[0123]*.dat' -o -name 'rev00[0123]*dat' \) | sed 's@^\./@@' | while read name ; do
        mv $name $DEST/$name
        ln -s $DEST/$name $name
done

Anyway if you would like to use this server, configure btc.cihar.com in your Electrum client.

If you find this howto useful, you can send some Satoshis to 3KPccmPtejpMczeog7dcFdqX4oTebYZ3tF.

Filed under: Crypto Debian English

by Michal Čihař (michal@cihar.com) at November 17, 2017 11:00 AM

November 16, 2017

Michal Čihař

New projects on Hosted Weblate

Hosted Weblate provides also free hosting for free software projects. The hosting requests queue has grown too long, so it's time to process it and include new project.

This time, the newly hosted projects include:

If you want to support this effort, please donate to Weblate, especially recurring donations are welcome to make this service alive. You can do that easily on Liberapay or Bountysource.

Filed under: Debian English SUSE Weblate

by Michal Čihař (michal@cihar.com) at November 16, 2017 05:00 PM

November 07, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W44

Most of last week was spent on bringing U2F and 2FA to phpMyAdmin. Besides that it was really just minor bug fixing.

We've had one pull request for the 2FA already open, however it was not really in quality to be merged and the original author really didn't come back to address our concerns. I was thinking to start over from his work, but in the end I've decided to start from scratch and come with code which will make easier to implement additional second authentication factors in the future.

Anyway what is now there is support for HOTP/TOTP authentication (Google Authenticator and similar) and FIDO U2F hardware tokens. The latter has been tested with TREZOR, but should work with any compliant device.

phpMyAdmin with TREZOR

Handled issues:

Filed under: Crypto English phpMyAdmin

by Michal Čihař (michal@cihar.com) at November 07, 2017 11:00 AM

November 06, 2017

Maurício Meneghini Fauth

Weekly phpMyAdmin contributions 2017-W44

Last week I fixed a few bugs in some templates, moved to templates HTML code in PHP files and replaced the globals of some classes with dependency injection.

Issues:

The post Weekly phpMyAdmin contributions 2017-W44 appeared first on mauriciofauth.com.

by Maurício Meneghini Fauth at November 06, 2017 01:27 PM

October 31, 2017

Michal Čihař

Weekly phpMyAdmin contributions 2017-W43

Last week was mostly focused on code cleanup. I've done quite some fixups in the database interface layer, which now has easier to use API and no more relies on global variables to store database links. Pretty much similar was done in the authentication layer, where many of the methods had names coming from historical reasons rather than their current functionality.

Handled issues:

Filed under: English phpMyAdmin

by Michal Čihař (michal@cihar.com) at October 31, 2017 11:00 AM

October 24, 2017

Subscriptions

Planet phpMyAdmin aggregates blogs of following phpMyAdmin contributors.

Last updated

May 21, 2018 06:30 AM
All times are UTC.

Feeds

[RSS 1.0 Feed] [RSS 2.0 Feed] [Atom Feed] [FOAF Subscriptions] [OPML Subscriptions] [Venus]

Planetarium