Network on moonzean
Log in
Sign up for Network to join "Network Development" and other Groups.
Network
Development
PHP
GoMobile
Anthimos
10/31/2022 8:16 PM
Hey! It's been a while since my last post, and frankly, there hasn't been much going on lately, at least visibly. Today I took some time to clean up Network a bit. 1. There were some bugs related to conversations and messages that resulted in conversations not being created / messages sent and old messages failing to get deleted. Messages are set to expire after 6 weeks and a statistic has been added to conversation settings, documenting the percentage of "active" messages on Network. I hope chat works properly now. 2. The design has been altered slightly. It was inspired by the unreleased in-development state of the former Network app. Post width, title, picture and votes are altered and post images are set to a higher resolution. "This can't be a coincidence", you might ask. And you'd be right. I'm regularly using this site and have developed various unpolished services for it. Yesterday, after my sister showed me one interview about Network from many years ago (https://www.youtube.com/watch?v=6hMGktAuHLY, in German, interview about moonzean starts at 14:15) I really wanted to fix the worst issues of Network. I remembered all the time spent, the crazy amount of features that could only be achieved by "just doing it" and the fulfilment of sharing progress made with this group. When I started programming, I thought that programming is what I'd love and what I'd be doing for the rest of my life. I started working a few years ago, and while programming can be "fun", it just never was the same as working on moonzean. And I think that it's because to me, programming is just what it takes to get some result, and seeing that result come live is what fuels me to make it happen. Anyways, here is a summary of recent side-services that I've worked on in the recent past: moonzean Projects - A project management tool that allows you to manage your projects and plan and track tasks moonzean Canvas - An infinite canvas where you can draw and enter text, intended to be used as documentation for moonzean Projects (but not implemented yet) Wisdom - a (still very primitive) knowledge database, like a wiki TimeTracker - a tool that allows you to keep track of what you do for how long Since moonzean as a service platform hasn't been used by other users, those services aren't specifically designed to be easily understandable by others. I'm eager to know if anyone else will read this, especially one of the other main contributors!
Anthimos
11/17/2017 12:33 AM
Updated password requirements: + Passwords have no further requirements at a length of 12 characters or more. - Password strength descriptions (to the user) have yet to be updated. When it comes to strong passwords, there are two factors that influence the security: - the amount of different characters available (charset) - the amount of characters used (length) The formula for how many different passwords are available is charset^length (charset to the power of length). With our current requirements of at least 1 uppercase letter, 1 lowercase letter and 1 number we have a charset of 26 (uppercase letters) + 26 (lowercase letters) + 10 (digits) = 62 different characters available. With 8 characters we get 62^8 = 218340105584896 (approx. 2.2 * 10^14) different passwords (*note). The more different passwords are available the more unlikely someone else is going to guess your password, making it safer. So when we reduce the charset to only 26 characters (just letters), we need a larger length to get a similar amount of different passwords: 26^10 = 141167095653376 (approx. 1.4 * 10^14) 141167095653376 may seem much less than 218340105584896, but it's at the same size order, so it's fine. How about if we only use numbers though? Well, we have 10 different digits, so this leads us to 10^14 = 100000000000000 (approx. 1.0 * 10^14) Thinking about that, the length of 12 seems to be ideal to use for passwords without further requirements. If the charset used contains more than just digits, the password is actually stronger than the current 8-char password minimum. (*note): Due to the requirements, the real amount of different passwords is slightly lower. Passwords need to have at least one character of each type, which reduces the amount of characters whose type is unknown. However, this doesn't really make the passwords weaker. It actually makes them stronger by disabling passwords that contain only one type of character (like "12345678" or "aaaaaaaa"), which is a good thing.
Anthimos
10/31/2017 8:03 PM
Happy Halloween! Just trying out some conditional themes. It could be fun to alter the page temporarily for seasonal events. :)
Anthimos
10/25/2017 2:38 PM
+ WidgetBuilder now detects simple infinite loops and prevents them from crashing your browser. There is an interesting theory about the Halting Problem, explaining how there is no way a program can universally know if a program will ever finish executing or if it will stay in an eternal loop.
Anthimos
09/17/2017 8:27 PM
WidgetBuilder has been updated with some new features, including: + Alert when attempting to leave with unsaved changes + Hints displaying when something goes wrong as well as how to possibly fix them + Autosave and autoupdate + Download your widget as a ZIP including placeholder images + Change the name of your widget or delete your project + Improved UX and performance optimisations + Save button goes grey whenever the project is up-to-date + Optimisations and fixes with rendering, saving and updating preview + Added a couple of more templates (more coming soon) + Also updated the Widget Store Connect design as well as the Widget API Documentation. + Added widgetapi.setHeight(height) and widgetapi.autoHeight() as APIs for requesting height for widgets.
Anthimos
09/13/2017 3:17 PM
Widgets on Network are supposed to be small tools that let you do something quickly: Have a glance at the current time, know the current temperature, calculate something quickly, play a short game or just a simple good-looking animation as eye candy. However, creating widgets wasn't that easy. Special API is required for widgets to work correctly, making it hard to write and test widgets on your own. Let's see how we can lower the burden of creating widgets: + WidgetBuilder has been updated with a new look and a focus on providing all the tools needed to create Widgets fast and efficiently. Currently implemented features include: + Templates for different WidgetAPIs (currently only empty) + Smooth loading and saving of widgets (auto-save on returning to menu) + Tab interface for DOM, style and script + Exact preview of how your widget would look like on Network This is just the pretty basic stuff implemented here, and I'll give you some more features you can expect in the next days: - Autosave, auto preview update - Download your widget as a ZIP so you can upload it to the widget store - Change widget name or delete widget - More WidgetAPI templates and help with missing API calls There is some more advanced stuff like version control, custom files and automatic push to widget store that I consider implementing if requested. Do you have any questions? Any further ideas? Let me know by commenting on this post. P.S. You find WidgetBuilder at the service switcher at the top left corner only if you are marked as "moonzean Tester" in your account settings. You can visit moonzean.com/widgetbuilder manually without being a moonzean tester though.
Simone
07/20/2017 6:26 PM
Bug fix and updates - Set "Go to Widget Store" link to open in new tab, fixes return button in widget store - Updated English translations for no widgets and no contacts - Updated style for the no contacts notice to match the no widgets one
Anthimos
06/19/2017 1:37 PM
Some small improvements - Widgets use a main file for serving widgets now - Now logging of debug messages for connection investigation implemented (only if moonzean tester) - Completely removed WeblySleek from style definitions and replaced with Segoe WPN - Small CSS fixes for the titlebar
Anthimos
06/16/2017 10:44 PM
Added a new widget that draws a random path in random colors. The probabilities of the path are set in a way to keep the path on the widget mostly.
Anthimos
06/01/2017 12:15 AM
+ Fixed a devastating issue that caused new registrations to fail: The confirmation mail sending module caused the script to interrupt, resulting in a uncompleted registering process, which resulted in problems cause by a missing profile picture and missing groups.
Anthimos
05/30/2017 9:54 PM
+ Fixed searching on the web site after it had broken due to an API change on the front-end which didn't get updated in the back-end
Anthimos
05/30/2017 11:14 AM
+ Everyone can decide by himself now if he wants to be a tester It seems easier to allow people to decide by themselves whether they want to be testers or not. This decision is a direct result of the new change to what role testers have on moonzean Improving the site is difficult, and direct feedback comes rarely. As a result, there are a lot of bugs happening with no knowledge of developers about where and when they occur. While the "when" question is the harder part of the bug-solving puzzle, finding out "where" problems occur makes it much easier to find bugs. That's why certain events (errors and other critical problems for now) will get automatically sent to moonzean so they can be investigated without much effort from the user. This really is not an attempt to invade the privacy of testers. Instead, the goal is to fix things faster with less effort from the testers. Current beta developers have been moved to be testers. You can change whether you want to be a tester or not in "Account Settings".
Anthimos
05/28/2017 3:36 PM
The new chat is going into public beta! After a long period of time the new chat finally feels stable and more responsive. The only major problem is the handling of disconnects which can temporarily fixed by reloading the page. Other than that, there are only minor things that happen under special circumstances (like contacts not getting removed on delete and appearing multiple times after getting contacts again). There is still the option to return to the old version, but I'm confident that you will not even want to use it. After another period of time the banner will be removed completely. Use this note to view the current state and to add problems you encounter: https://www.moonzean.com/embed/notes/post.php?postid=1684 Here a short summary of the main improvements: + online state updating in realtime + full image / file upload (via PHP) support + instant contact requests + smooth conversation starting experience (conversation gets created only when a message (text or image / file) is being sent + rendering fixes (color of messages depending on background color)
Anthimos
05/28/2017 3:39 PM
I vote for a bracket autocomplete feature on Network!
Anthimos
04/17/2017 2:39 AM
+ Fixed a bug where an invisible character "€" was included on the page that caused rendering issues on some browsers.
Anthimos
04/13/2017 2:57 AM
moonzean is using a different SSL certificate from letsencrypt.org now. Created using https://gethttpsforfree.com. Certificate expires in 3 months. Note: The StartSSL certificate is not trusted anymore by newer browsers, which resulted in a warning displayed in modern browsers when visiting moonzean.
Anthimos
03/01/2017 1:11 AM
+ Widget editing mode changed + Widgets can be rearranged now + Deleting Widgets doesn't refresh Widgets anymore Widgets collapse now when in edit mode, making it easier to rearrange them. Hold the drag-icon on the top right corner to drag a widget to a new position. New position is saved for the next page loads but doesn't sync with other open pages.
Anthimos
02/26/2017 9:15 PM
+ Widget deleting dialog customized The popup doesn't cover the whole page anymore. Problems with the dialog: - Height cannot be determined when title goes over 1 line (hotfixed to allow only 1 line) - The dialog isn't looking great on bright favorite colors
Simone
03/03/2017 9:37 PM
The hotfix is probably fine as a perma-fix.
Anthimos
02/25/2017 3:34 AM
+ Widget loading speed optimized The following adjustments have been made to decrease the loading speed: + Widgets are now being loaded using Javascript. If your connection is very slow you will see how one widget appears after another, in contrast to the previous way of all widgets showing up and then loading. + 3 widgets are being loaded simultaneously, asynchronous. This speeds up the loading of widgets when a fast connection is available while still not consuming full bandwidth when the connection is slow. + Hidden widgets load last. It doesn't help a lot to load a widget when it is hidden. In order to finish loading widgets faster, all hidden widgets are being skipped first and loaded after finishing. This allows the widgets to appear faster on Network Web. + Hidden widget loading animation fixed. Hidden widgets will not grow and collapse upon loading and changing height anymore. With these changes widgets are in a much better spot now compared to before. There are still some inconvenient things (updating height), displaying problems (auto-height not working properly and scrollable widgets) and other issues (keyboard not working in iOS app) that may be fixed in the future. However, expect some new features for widgets soon!
Anthimos
02/19/2017 9:45 PM
+ Widgets have been improved + Widgets load much faster now + Widgets don't need the index.php file anymore Widgets used to load very slowly (and still do to a degree) because of two reasons: widget size and the amount of requests. With each widget requiring on average 3 external script and style resources, the amount of requests for 10 widgets would be 40, not taking into account other resources like images. With the changes to widgets, all external script and style resources are being included directly, resulting in one big HTML file. After that, the HTML file is being minified to save space. As the minifying process takes a lot of time, the minified widget is being cached. Each time the widget is being requested, the cached widget HTML file is being loaded and the widgetapi (which is not static) is being injected into the file before sending it. Using this process, I found that on average, the loading time fell from about 80ms to 50ms and that the file size got reduced by 10 to 20%. With the example mentioned above, the amount of HTTP requests gets lowered from 40 to 10, which is 75% less, resulting in a notable difference in loading speed. Besides that, as widgets are now being manipulated, it is easy to support index.html files, which makes adapting widgets for Network much easier. The difference between a working HTML site and a widget has been significantly reduced with the main problem now being the height updating. Looking into future improvements, I think the next step will be to improve the loading algorithm of widgets.
Anthimos
01/29/2017 3:30 AM
Anthimos
01/29/2017 3:30 AM
TLDR: New chat available for developers to test. There has been a lot of inactivity recently in terms of new features. One important thing that keeps dragging on the release of a new app update is the messaging feature (say chat). While socket.io grants very fast performance, PHP polling has been much more reliable. This is especially the case when considering disconnects (which happen frequently on mobile devices). It has taken a lot of time to come up with a solution that increases the reliability of socket.io messages. There is a new framework which manages all packets sent and received and resends them in case of connection loss, resulting in guaranteed delivery of each packet. Chat has more problems though: First, the same messages are displayed very similar across all devices (app and desktop for now). As of now though, each platform has it's own implementation of messages. Unfortunately this means that future changes are more complicated and can cause bugs in one of the platforms. Moreover, there have been countless updates to the messaging protocol. This means that the server code has to be backwards compatible with older versions of apps for example and take care of the limitations of each implementation. (This is actually a widely spread issue across Network, for example with post data, group data, user data, ...) So in order to minimize these annoying (and frustrating) issues in the future, I decided that it would make sense to have a core messaging component that is being used across all platforms. After all, the only difference between all platforms is the way content is being displayed and how the users interact with it. Also, I hope the new implementation to be more future-compatible - the current protocol shouldn't show any limitations in the near future. The new framework is not ready yet, but I'd be grateful for any feedback regarding functionality. For now, only developers have access to the new chat and see the text in the image. If you are a developer and don't want or can't use the chat (which probably is the case right now) you can switch to the old version by clicking the "here" label. When the new chat gets more stable it can be enabled for everyone.
Anthimos
01/27/2017 9:12 PM
The widget commands on desktop have altered to be less intrusive. > When having a lot of widgets, the commands are found when scrolling to bottom. > When the widgets aren't covering the whole column, the commands stay on the bottom as usual (requires support of the position: sticky property) > The color of the commands is equal to your favourite color > The background of the commands grants better readability and is dependant on the background color (your favourite color).
Anthimos
01/27/2017 2:56 PM
Interested on your quality of posts? Click on your profile and you will see your Vote Score, which is the sum of all the upvotes minus all the downvotes you got. Your Vote Score is visible to you only (currently desktop only) and has the purpose to make you and everybody more engaged. (The Vote Score is not being cached so the profile page may take a long time to compute if you have a lot of posts)
Simone
01/30/2017 8:27 PM
Thanks for not making it public.
Anthimos
01/25/2017 8:37 PM
Creating SketchNotes is very easy. Simply choose a color and stroke width and start drawing! Basic functionality like undo and redo is available as well. SketchNote supports both mouse and touch input.
Anthimos
01/25/2017 7:47 PM
Anthimos
01/25/2017 8:31 PM
This post contains a SketchNote and is currently only visible on desktop. SketchNotes can be created by clicking the pencil icon in the posting area. SketchNotes may be used in the future as an overlay for images. Let me know what you think about this feature!