GSoC – week 6 : things get serious

During this week I’ve realized that I should completly re-write the login process. Speaking with my mentor, he gave to me some hints and some steps to follow, to make a good login process.
These steps, at a first attempt, looks simple overall, but, integrate it in Qt/Cascades was a bit hard. To be honest, the most hard part has been to decide how to parse the HTMLHTML HTML is an acronym for Hyper Text Markup Language. It is a markup language that is used in the development of web pages and websites. to find some useful tags (e.g. Some tags that should contain a reference to the xmlrpc endpoint). The first idea that comes up in my mind was to use a regular expression to do it. But, by reading some articles online, many devs say that is not good to parse HTML using regular expression. Just a mandatory quote from a comment on stackoverflow:

“Every time you attempt to parse HTML with regular expressions, the unholy child weeps the blood of virgins, and Russian hackers pwn your webapp. Parsing HTML with regex summons tainted souls into the realm of the living. HTML and regex go together like love, marriage, and ritual infanticide. The cannot hold it is too late. The force of regex and HTML together in the same conceptual space will destroy your mind like so much watery putty. ”

Well, I’m quite agree with that, I get the point, but, in this situation, I think I can use a regular expression, without offending anyone, mostly because I had to catch some tags (two at max!).
So, I come up with a discovery function, that following these steps, ‘sanitize’ (somehow) the ‘Blog Address’ input, switching on determinate actions in base of the input.
Nowdays these steps have been fully implemented in Qt and integrated (but not completly yet) in Cascades. While I’m writing, I found a little problem with the Qnetwork stuff, but it should be fixable within this week.
I’ve also created a very first draft of a possible function to implement the necessary APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. call to make a blog post. For the next week, my milestone, is to fully implement that function and make it work, to get it ready for the midterm evaluation.

#blackberry, #gsoc

GSoC – week 5: my little baby is born

I would like to present you my, just borned, little baby 🙂

Also if a picture is worth a thousand words, I want (or well, I must 🙂 ) write something more.
This is a first idea on how the login UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. would look like (I think I’ll not change it so much), if anyone have any critics/suggestion or whatever, this would be appreciated.
The login process is working fine, but, as I had a talk with Danilo (my mentor), he explain me, in details, what I need to to do, to make the login process working at it’s best.
As far as I understand, I’ve to create an helper function to discover where the endpoint for the XML-RPC has been placed. The first step, should be that if the user doesn’t fill in the ‘Blog Address’ input, then I’ll set the endpoint on https://wordpress.com (e.g. https://wordpress.com/xmlrpc.php ) and check if there is any records that belong to the given credentials. The second step is that if the user writes something in the ‘Blog Address’ input, than I’ll need to check where is the XML-RPC endpoint, mostly (in standard case), it would be an append on the URL that the user has given, if it has been inserted correctly. The third step is when from the given URL I cannot find the XML-RPC placed where I expected it to be, so I need to call this helper function that will do some parse (HTML and XML) and other (nice) stuff, to catch where the xmlrpc.php has been placed. The helper function is needed, if I understand it correctly, only when the user use a blog on an own host, with the JetPack plugin.
So, for the next week I’ll try to implement this stuff in Qt, Danilo gave me a step-by-step guide, so I hope to not encounter any big blocking issue.

#blackberry, #gsoc

GSoC – week 4 : hard times

This week has been an intense week for me. Due to other duties the work on this project proceeded a little bit slower than expected. Anyway, as I wrote last week, I’ve pointed my attention on how to bind C++ to Cascades. This has been a, some sort of, hard step. The main reason is because the connection in Cascades is a bit diffrent than how I made it with pure QML. The first blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. has been to understand what I exactly need to connect, what kind of calls, signals and others. This has been an hiccup, principally because I had made a long shoot on what I need. So, I’ve been back to my steps, and tried to pick a decision for an actual smaller step.
I’ve created a custom library, and, as a first step I had to deal with the network. I’ve made a first call, connected it with the interaction of the login button, to a c++ class method that uses a QtNetworkRequest to make the call to the WordPress endpoint, then, once the response (the XML) is ready, and we have a QtNetworkReply, I emit a signal with the data. This is the tipical situation that (I think) should be similar for all the other necessary calls.
During the next week I’ll (stress) test this piece of code to see if it’s really working as expected or if there is any hidden bug.
I’ve to say that I’m a bit out of my schedule, but I think I can regain that time almost easily. Nothing to worry about, I think.

#blackberry, #gsoc

GSoC – week 3 : API API and yet API

This week I’ve read and learnt a lot more about BlackBerry 10 APIs, paying attention on the Cascades library. The main reason why I choose to go with Cascades, it’s beacuse with these APIs is possible to create stunning apps, and the platform APIs provide access to the underlying featrues of the BlackBerry Application Platform. It should be easier to create a beautiful UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. together with a set of advanced tools that can be use to easily integrate the app to the system and giving the users an astonishing experience.
Said that, I’ve started with the basic (understanding) of Cascades: the layouts.
The layouts are the basic to construct Uis, and Cascades supports a (large) variety of different layouts that can be used to arrange and position controls in the apps; and, choosing the right one, right now, for me, is a must. After a long digging (write, try, sketch), I think (but I’m not sure at all) I will use a StackLayout, at the least for the login page.
I’ve also made a first (fake) attempt of the login process, but it’s not finished yet. I have to manage how to put all the stuff togheter. I also need to connect the C++ (Qt) signals to Cascades (QML), and, for the next week(s) (I though this is kinda important) this is my milestone. I will write some code to see if I understand correctly how it work, and how it needs to be implemented.
In the next weeks I’ll upload a first draft of what I’m doing.

#blackberry, #gsoc

Dev Chat Summary for July 3, 2013

We had a brief dev chat this week as many team members are vacationing, and the Automattic folks are returning from their meet-up last week. WPAndroid was not on the agenda this week as most of the Android contributors are taking time off.

Chat log

Agenda

  • WPiOS
  • WPWinPhone
  • WPBlackBerry (legacy)

WPiOS

Last week version 3.6.2 was released to fix a crash that affected the iPhone version of the app. We quickly discovered that 3.6.2 unfortunately included a problem using the sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. on the iPad so we quickly submitted and released an expedited patch in version 3.6.3.

WPWinPhone

@daniloercoli has created an alpha version of the REST client that the app will use when support for notifications is added to the app. Currently no ETA on the notifications feature and it is not being actively developed.

WPBlackBerry (legacy)

The current version of the app included some extra error logging and reporting in an effort to resolve some troublesome log in errors experienced by some users. At this point we’ve collected enough data to fix the major issues, and plan to release an update this week.

The next dev chat will be on July 10, 2013 at 1500 UTC. Mark your calendar and join us in #wordpress-mobile on Freenode.

#blackberry, #dev-chat, #ios, #mobile, #windows-phone

GSoC – week 2 : gearing up

During this week I focused my attention on the WordPress APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.. I’ve digged into it, looked at how they work, tried to understand which ones are the best and useful calls that best fits my purpose, and tried some calls (just to make sure that I’ve correctly understand the behavior).
Later on I’ve wrote some code (rude and rough, I admit) to execute this kind of calls, and, at the end, I think I will go with making the call, so also create the XML, using Qt. My milestone for the next week is to decide if it’s better to parse the returned XML in Qt or in Cascades (QML) itself.
I’ve also put some attention on the UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing./UXUX UX is an acronym for User Experience - the way the user uses the UI. Think ‘what they are doing’ and less about how they do it., so I made a first UI (just for the login), but I think I’ll complete it in a few days, I also had a discussion on how to make it (in the best way) with my mentor, so I will follow his advices, definitely.
I would also dealing, in the next week, with the bb10 API, to see if I can use it to make something better.
Currently I haven’t used the svn repository; when I will start building a primary version of the WordPress for BlackBerry 10 devices, in the next weeks, I will start uploading stuff, but now, there is no good code that need to be pushed somewhere 🙂

#blackberry, #gsoc

GSoC – week 1: introduction

Hello,

my name is Daniele Maio, I’m from Italy and I’m currently enrolled at the University of Catania for the last year of a bachelor degree in Computer Science. I have some years of experience in developing open source project. Since the born of maemo (http://maemo.org) I’ve addressed my interest in mobile development with opensource OS and tools. I was (I am) an active contributor, especially, for the maemo and meego communities. Some times ago BlackBerry unveiled their new platform, and, since the beginning, I felt in love with it.
Due to this last statement, I’ve decide to propose myself and my idea for the Google Summer of Code 2013. My project is, indeed, to build a WordPress mobile native app for the BlackBerry 10 devices. I’ve decide to build this app with the native coding language Qt/Cascades. There is already a port from the android version that currently works on bb10, but, it seems to be not so good (the porting obviously).
For this project, I can count on the mentoring help by Danilo Ercoli, I’ve already talked with him, and I have had the impression that he would be a great mentor.
I have to admit that I’m quite new to WordPress, I am not a blogger at all, I’ve used it only to build someone’s else blog or websites, but they are very few.
However, I’ve been always impressed by the growing up of WordPress, in terms of community and in terms of code and projects. This is the main reason I choose WordPress as a target for my gsoc project.

That’s all for now.
Regards.

#blackberry, #gsoc

Dev Chat Summary for June 19, 2013

Chat log

Agenda

  • WPiOS 3[.6].2 Update
  • WPAndroid Status
  • WPWinPhone Update
  • WPBlackBerry Update
  • WPiOS Reader Status

WPiOS 3[.6].2 Update

Released version 3.6.1 on Monday, which adds Crashlytics. This gives us fresh info on crashes and issues, we’ve already found some really common crashes that we’ll now be able to fix.

3.6.2 with fixes for the most common crashes has been submitted.

WPAndroid Status

Notifications release is performing well. A few (crash) bugs have popped up so there is some maintenance being done to alleviate the problems.

The new user work legwork is there now thanks to @daniloercoli and we’re starting on the UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. soon.

In other news it looks like @willnorris will be working on switching out the custom navigation drawer to the new, official one.

WPWinPhone Update

Version 2.2 (gallery support) hit the store and was announced on Monday. It introduces gallery support for self-hosted WordPress installs. Apart from client-side APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. work there’s currently nothing in the works.

WPBlackBerry Update

A new version is in the store (1.6.6) that reintroduces the support form (basically email) to help identify the cause of many recent 1-star reviews due to sign in problems. Once we’ve identified the issues we can fix them an issue another release.

WPiOS Reader Status

The week was spent testing, tuning performance, and creating the last graphics needed for the update. We’ll continue to do UI changes and test it through Friday. Performance is a big thing currently. Since the Automattic contributors will be at a company meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area. next week the projects will most likely enter a state of hiatus for a week or so.

Heads up / Next week

Since Automattic folks are out next week (and there most likely won’t be much to discuss because of this) we’ll just make a note of it next week in the weekly update.

The next dev chat will be on July 3, 2013 at 1500 UTC. Mark your calendar and join us in #wordpress-mobile on Freenode.

#android, #blackberry, #dev-chat, #heads-up, #ios, #windowsphone

Dev Chat summary for June 12, 2013

Chat log

Agenda

  • WPAndroid 2.4 Notifications
  • Windows phone app update
  • BlackBerry “legacy” app
  • New contributor projects/tickets
  • iOSiOS The operating system used on iPhones and iPads. 3.6.1
  • iOS Native Reader

WPAndroid 2.4 Notifications

The notifications update as released Tuesday and its been well received.  We’ve noticed a few corner cases bugs have popped up.  They are being actively squashed and a new update will be released as soon as the last one is confirmed DOA.

For the next planned release we’re working on two separate tracks: an update to NUX following along the lines of the iOS update, and a native reader.

Windows Phone App Update

An update to the WordPress for Windows Phone has been submitted and we’re awaiting its review. This update adds gallery support for self-hosted blogs running WordPress 3.5 or higher, and fixes the top five bugs reported.  We expect Microsoft to approve the app by Friday. Yay!

@daniloercoli noted that we’re seeing an issue with headerHeader The header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. of the xml files we get from Glotpress for use in localizing the app.  Visual Studio treats the files as they are incorrectly formatted, even though the header visually appears okay. Not quite sure what the issue is but we pinged @markoheijnen about it for further investigation.

BlackBerry “legacy” app

We’ll be working on an update to the “legacy” BlackBerry app.  The goal of this update is to address some connection issues that folks have been experiencing and to reintroduce the “Need Help” dialog and a direct link to contact support.  We’ll also fix an issue we’ve found with the stats feature and jetpack blogs.

New contributor projects/tickets

@mrroundhill suggested we might identify tickets/features that would be good for a new contributor to pick up.  This could be something as simple as tagging tickets in track.  We thought this was a great idea and mrroundhill will be posting a follow up about it on the make blog.

WPiOS 3.6.1

A bug fix release is being prepped to submit to Apple.  A lot of issues have already been addressed (https://github.com/wordpress-mobile/WordPress-iOS/compare/master…release;3.6.1) and we’re just trying to get one or two more into this release.  We’ll most likely submit today or tomorrow.

WPiOS Native Reader

After some delays to get the last couple of features just right the required APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. changes are now being reviewed. We still have a few things left on our checklist. The next few days will be about getting the final graphics, implementing infinite scroll, and making sure everything works correctly on the iPad.  We’re looking at finally having a betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. of the native reader ready by Monday June 17th.

Next Week

The next dev chat will be on June 19, 2013 at 15:00 UTC. Mark your calendar and join us in #wordpress-mobile on Freenode.

#android, #blackberry, #dev-chat, #ios, #native-reader, #windows-phone

Dev Chat Summary for May 15, 2013

Several of the team were out at Google IO this week so we filled in the gaps as we were able. Chat log.

Agenda

  • iOSiOS The operating system used on iPhones and iPads.
  • Android
  • WInPhone and BlackBerry
  • GitGit Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency. Git is easy to learn and has a tiny footprint with lightning fast performance. Most modern plugin and theme development is being done with this version control system. https://git-scm.com/.

iOS

  • Accounts is nearly complete. Needs more testing but we’ll hold off until NUX is ready.
  • NUX is currently being tested and awaiting updated translations.
  • Progress continues on the native reader. Support for adding/replying to comments is underway and irbrad is joining the effort.

Android

The notifications release is currently in betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. and very close to releasing. We haven’t decided what’s next but NUX is high on the list.

WinP and BlackBerry

BlackBerry is currently reviewing an update sent Monday, May 13th, and we expect it to be live in the store this week. This is basically version 2.3.3 of the Android app with some minor changes. The code is in the BlackBerry branch of the Android repository.

A Windows Phone update was submitted Tuesday. This update addresses an issue with the sharing feature. We expect it to be live later today or tomorrow.

Git

We’ve been having some trouble with the git repository at ios.git.wordpress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ getting out of sync with our git checkouts and the mirror on github.com. The repositories have had trouble staying in sync and most recently the commit authors have been reset and no longer match. We suspect the culprit is the subgit software that manages syncing between the svn and git repositories hosted on wordpress.org.

We discussed possible options:
A) Give subgit one last try.
B) Drop svn and make ios.git.wordpress.org the official repository, mirrored to githubGitHub GitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/.
C) Make the repository on github the official repo.

We talked it over and decided the best course of action is to sunset the svn repo in favor of git. We will correct the repository at ios.git.wordpress.org and it will become the official repo for WPiOS with a two way mirror to github.

Next week

The next dev chat will be on May 22, 2013 at 1500 UTC. Mark your calendar and join us in #wordpress-mobile on Freenode.

#android, #blackberry, #dev-chat, #git, #ios, #windows-phone