Difference between revisions of "User:BrentNewland"

From ReactOS Wiki
Jump to: navigation, search
(Rewrote user page, lots of notes)
m (ViewVC?)
Line 295: Line 295:
 
*http://svndashboard.sourceforge.net/
 
*http://svndashboard.sourceforge.net/
 
*http://groogle.sourceforge.net/
 
*http://groogle.sourceforge.net/
 +
 +
==[http://svn.reactos.org/web/trunk/www/www.reactos.org/testman/ Testman]==
 +
Would be nice to include the latest failed tests on a component's wiki page
  
 
==Subversion==
 
==Subversion==

Revision as of 07:50, 26 March 2012

Important Links

Need to write rapps scripts for

Amaya W3C browser (supposed to be light fast stable and standards compliant)


Updates

  • 3/25* I've spent the earlier part of the week creating ~220 RAPPS entry files. Spent the latter half doing some research on GIT and Subversion, specifically using svn:externals (link all the folders you aren't modifying in your branch to the trunk version so you benefit constantly from trunk updates)

Plan

  • Right now I'm starting by going through every changelog and adding the information to each file page (as best I can) to establish a brief official history. I am also adding a link to the revision log for every file.
  • Next, once I've worked my way up to the 0.3.14 changelog, I will go filepage by filepage, determining exactly what that file does, including a detailed explanation, what components it fits into, any external references,a rostests list, and any current bugs (see Explorer.exe for an example bug list).
  • This should have wide-ranging benefits not just to ReactOS but to the Windows community as a whole. If you google for most Windows Files, you find a lot of junk out there that's not helpful. By including quality information, the ReactOS google rank should go up, then links to the wiki should go up, and the project will get more attention and visitors.
  • This is a little more forward thinking, but if it works as well as I hope, I've been thinking of ways to make the Wiki more useful for developers - perhaps a link in the source code folder for components which have a page in the wiki (e.g. a "explorer.roswiki" file in /trunk/reactos/base/shell/explorer/ with the contents "http://www.reactos.org/wiki/Explorer.exe", the user could have their browser open it by default); Some ways the Wiki could be more useful:
    • Developers could post reminders and notes on the Wiki
    • Links to good references
    • Status of that component
    • TODO lists
    • Plus each page would include any bugs it could find and quick links to the history
    • Think of the Wiki as the one-stop shop for everyone
  • Also, the Wiki is pretty light on material and cross-links (internal and external). It's not always easy to navigate to the ViewVC page, or the SVN HTMl interface, or other important pages (but hopefully that will change with the website overhaul).

My heavy editing will only last for a few weeks (hopefully), and then I'll just make regular changes. Unfortunately the Wiki has been somewhat neglected. Here are some changes I've made:

  • Put almost every page (except ones I'm working on right now) into a category of some sort (would love to see This page in the sidebar)
  • Incorporated content from various sources into the wiki (various FAQ's, about pages, info pages, some forum posts)
  • Cleaned up and combined/separated the ReactOS_ports page and category
  • Cleaned up and combined/optimised the File Systems page and category
  • Added cross-links to the outdated Version_Status page (without changing any of the statuses)
  • Added some anchors to People of ReactOS and redirects for people who had been linked to elsewhere in the wiki but had no page (broken links)
  • Recovered and recreated ChangeLog-0.2.2 and ChangeLog-0.2.3
  • Cleaned up the ReactOS subsystems page and category
  • Created the Frameworks page, which has important frameworks you might need to install to run some programs
  • Recreated the FAQ

And here's what I plan to do:

  • Go through every newsletter and add/link to any useful information
  • Go through the entire forum and incorporate any useful information into the wiki
  • Add lots more helpful tutorials
    • A completely new user to ReactOS should have a guide available that will walk them through anything they want to do - download the latest release, which one to download (the differences between dbg and dbgwin are not explained), installing it, installing a virtual machine if needed, exactly how to report a bug, exactly how to get a backtrace and anything else needed to file a proper report (I still don't know how to get raddr2line, seems like you may have to compile it yourself, and a fresh user will be turned away almost immediately by having to compile something)
  • Provide as much cross-linking as possible to lead users to new content
  • Update every page at least once initially and periodically thereafter
    • Even if I have to sit in the IRC channel and ask the same question over and over and over
    • Unless it was a one-off thing or is only there for historical purposes
  • Everything possible to make this Wiki as awesome as possible with as much relevant and up to date information as possible
  • Document every aspect of ReactOS, its components, its status, its GUI, missing features, the API, and all the suggestions and ideas I can find (excluding ridiculous ones)

And in the further future:

  • Create a new installer for ReactOS - using PHP (wrapped in a PHP wrapper or directly using php-gtk or similar)
    • I know it can be done - and not that difficultly
    • I think it has benefits - such as being easier for Distributions, allowing you to change settings while the install is in progress and saving your place when it has to reboot, allowing you to pick apps and download and install them with the OS, and more
    • I want to
    • I never expect that to be part of the official distribution
    • You don't have to use it if you don't want to
  • Create a replacement Control Panel for ReactOS using PHP
  • Create a ReactOS updater and appmarket using PHP
  • Create an external web interface a-la Windows Home Server using PHP
  • Get Active Desktop working
    • Simple GUI program that has no borders or title bar or menus, all it does is fill 100% with an HTML page (embedded using mshtml?, or webkit or gecko)
    • Use SetWindow to make the parent of this program 0, which makes it replace the wallpaper/desktop, but not the taskbar (from what I understand)
    • Have it auto-launch on startup and autorestart if it crashes
  • then get Active Desktop Portal program (made with PHP) updated and expanded


Misc Links

how to take screenshots

  • upload directly to web
  • only one program

donate reactos with phone

  • smscoin seems only good option, others require $200-$400 paid per month (by the project)
    • But ReactOS could receive as little as 25% of the donation

phpbb+reddit


Misc Thoughts

These are just notes I'm keeping as I explore different avenues.

No bitmap resources in ReactOS

  • All vector Graphics
  • important for scaling to different resolutions and DPI's (quality is always consistent)
  • Should be designed at very high resolutions (going high>low resolution for vector should look better than low>high)
  • includes icons
  • includes items like "X" to close screen
  • of course, ReactOS should support bitmap resources for other programs, but itself shouldn't use any
  • Essentially Windows Presentation Foundation for ReactOS explorer?

Freetype Fonts (an OpenType implementation, cross platform) and Pango

  • essentially vector graphic fonts
  • ReactOS already supports TTF

Cairo graphics library

  • 2D vector graphics library with hardware acceleration
  • Could be used to apply shading, gradients, and color blending (which vector graphics normally can't do) to Ui elements
  • GPL, C, win32 GDI (or Direct2D) compatible
  • Used by GTK+ project
    • Crazy to think of using GTK+ for explorer?

ReactOS Fonts

  • Fonts
    • DejaVuSans-Bold.ttf
    • DejaVuSans-BoldOblique.ttf
    • DejaVuSans-Oblique.ttf
    • DejaVuSans.ttf
    • DejaVuSansMono-Bold.ttf
    • DejaVuSansMono-BoldOblique.ttf
    • DejaVuSansMono-Oblique.ttf
    • DejaVuSansMono.ttf
    • DejaVuSerif-Bold.ttf
    • DejaVuSerif-BoldItalic.ttf
    • DejaVuSerif-Italic.ttf
    • DejaVuSerif.ttf
  • Gnu FreeFont
    • FreeMono.ttf
    • FreeMonoBold.ttf
    • FreeMonoBoldOblique.ttf
    • FreeMonoOblique.ttf
    • Does not include FreeSans or FreeSerif
  • http://en.wikipedia.org/wiki/Liberation_fonts Liberation Fonts]
    • based on modified Bitstream Vera font
    • LiberationMono-Bold.ttf
    • LiberationMono-BoldItalic.ttf
    • LiberationMono-Italic.ttf
    • LiberationMono-Regular.ttf
    • LiberationSans-Bold.ttf
    • LiberationSans-BoldItalic.ttf
    • LiberationSans-Italic.ttf
    • LiberationSans-Regular.ttf
    • LiberationSerif-Bold.ttf
    • LiberationSerif-BoldItalic.ttf
    • LiberationSerif-Italic.ttf
    • LiberationSerif-Regular.ttf
  • Marlett.ttf
  • symbol.ttf
  • tahoma.ttf
  • tahomabd.ttf

Suggested for ReactOS


ROSCMS

I've been thinking about checking out a branch of ROSCMS and doing some upgrades for it.

Mediawiki Latest

**Make phpBB markup allow [[ ]] for linking
***topics t15432
***posts p999321
***bugzilla bugs b3416
***wine bugs wb22917
***commits r56137
***Wine commits wr99728
***Wine Wiki wwAbout_Wine
      • otherwise it goes to the wiki
  • Use phpBB's text editor
  • Show categories for search results

Infobox for Wiki and extensions


phpBB latest

phpbb styles


ViewVC?

  • Support wikibbcode in viewvc
  • Give it a lot more features (right click?)
  • Show commits by developer and in general in calendar style
    • either web.archive.org style or something showing number of commits

PHP

ViewVc is written in Python, something PHP would be nice

Testman

Would be nice to include the latest failed tests on a component's wiki page

Subversion


BugZilla

ROSCMS


Search


Misc Notes

raddr2line http://svn.reactos.org/downloads/raddr2line.exe

Side Projects

I've been planning on these for some time now, but given the different projects I'm working on it makes sense to make them now. I've made several of these in the past.

Universal Database Abstraction/Access Layer

Need to make universal Db access layer

  • based on phpBB's
  • all major databases
  • basically a wrapper
  • Initially PHP, get people to port later
    • perhaps make parts more portable
  • http://crystal.martinrusev.net/

PHP3/4/5/6 API compatibility wrapper

  • Allow a PHP script written for version X to support older and newer versions
  • Maybe allow older scripts to work on newer PHP

Open PHP web installer

  • to make installing your scripts easy
  • A supplement to the PHP binary installer (which will allow you to install binary software on your computer with a PHP driven installer)

Open Authentication Framework

  • Something that can detect many installed programs (phpbb, vbb, ubb, mediawiki, wordpress, drupal, etc) and abstract their user databases
  • easy GUI converting or combining of different user databases
  • Simple and easy to use system for including auth on web pages
  • For external authentication: http://hybridauth.sourceforge.net/

Storage Abstraction Framework

  • Recognise how items like topics, forums, blog posts, etc. are stored
  • provide an API for a program to use that structure for its posts
  • not only good for new developers looking for compatibility, good for major projects and migration

phpbb4

  • Separate layout and style templates?
    • Widget templates?
      • Skinning a widget that can work with many mods is better than having to write many templates for one mod
  • Perhaps something like a php implementation similar to win32 (in function, not features or scope)
  • Open Source, may be useful for benchmarking all this stuff http://httparchive.org/


Create a full PHP interface for Win32

With as little binary reliance as possible (only native php, should work on any PHP platform)

ReactLive? InteractOS?

I've been considering beginning with a web based desktop (that looks ReactOS-like, since ReactOS looks like windows). This would be useful as an alternate version of ROSCMS. It would serve a good basis for a larger-scale implementation.

Apps

Servers

SMTP/POP/IMAP

Mail Server http://dd32.id.au/2011/10/14/php-based-mail-server-release-day/

  • IMAP has secure version (IMAPS) ssl
  • POP3 has a secure version (POP3S) ssl

TFTP

Socket

Socket Server

FTP

FTP Server

  • FTP has secure version (FTPS) - ssl instead of ssh

HTTP

HTTP Server

SOCKS

SOCKS support (needed to do proxies via your browser control panel)

TCP

TCP Client

ECHO

DayTime

Quote of the Day

TIME

NTP

WebDAV

DHCP

DNS

DNS Server

IRC

IRC

SSH/SFTP

SSH Server

  • not the same as FTPS (tls/ssl) or FTP over SSH, or simple FTP

Finger

  • Finger (don't think it's exactly portable or done entirely in PHP)

BitTorrent

  • BitTorrent server (torrential or tbdev)

SNMP


Nothing comparable yet

LDAP

LDAP (samba, active directory, ldap, wins, netbios, smb (netbios over tcp))

Misc

Additional Resources

  • Do not use is_array without using isset or empty first
    • Loop test
    • Using foreach and while and for

Automated Build Systems/Cpntinuous Integration Systems for PHP


Replace ReactOS Registry with MySQL

  • Convert any system registry calls or API registry functions to go through an abstraction layer or wrapper
  • Abstraction layer will connect to Windows Registry (service), or to other database specially configured
    • e.g. MySQL, MSSQL, PostgreSQL, etc,
  • Will require changes to ReactOS and database server
  • Will not be usable for first stages of boot (until database is started)