Register a SA Forums Account here!
JOINING THE SA FORUMS WILL REMOVE THIS BIG AD, THE ANNOYING UNDERLINED ADS, AND STUPID INTERSTITIAL ADS!!!

You can: log in, read the tech support FAQ, or request your lost password. This dumb message (and those ads) will appear on every screen until you register! Get rid of this crap by registering your own SA Forums Account and joining roughly 150,000 Goons, for the one-time price of $9.95! We charge money because it costs us money per month for bills, and since we don't believe in showing ads to our users, we try to make the money back through forum registrations.
 
  • Post
  • Reply
MrMoo
Sep 14, 2000

savetheclocktower posted:



Working on a documentation template for Prototype and PDoc (inline documentation for JavaScript).

That's quite pretty, it would be nice to group categories together like Apple. Unfortunately I don't have the imagination to create a unique style set:

Adbot
ADBOT LOVES YOU

MrMoo
Sep 14, 2000

Nuke Mexico posted:

NIH syndrome at its worst

I thought the primary goal was to reduce memory consumption for KDE 4, although the root cause seems to be a plethora of STL containers within their widgets.

MrMoo
Sep 14, 2000

Nuke Mexico posted:

because it almost certainly never is.

Read and weep, pretty lame discussion here:

http://lists.trolltech.com/qt4-preview-feedback/2004-09/msg00019.html

MrMoo
Sep 14, 2000

wolf_man posted:

I created "P.O.M" - Project Organizer and Manager . Its a web-based project management software. I was focusing on keeping it simple and clean.

Are there any web browsers for GEM, as that UI will fit in. Did you never try using activeCollab or base camp?

MrMoo
Sep 14, 2000

wolf_man posted:

I've never heard of GEM

The Atari ST's poo operating system:

MrMoo
Sep 14, 2000

Not too exciting, sending x264 encoded VHS quality video (320x240x15fps) over reliable multicast, taking about 10% cpu on encoder, 5% decoder (3Ghz P4) although generally idle processes, 128kbps bandwidth allegedly.



I have a separate module on OpenCV to detect faces in ~10ms, the current idea is for a video terminal to switch on and advertise its presence on the network when someone looks at it.

MrMoo fucked around with this message at 17:00 on Nov 10, 2008

MrMoo
Sep 14, 2000

mnd posted:

Can I ask what camera(s)/video source you're using?

Some cheap Microsoft cameras with annoying fluctuating luminance, doesn't seem to affect face detection but it's not conducive to video compression. I'm aiming to get this running on a Geode, and face recognition is not currently important.

MrMoo
Sep 14, 2000

Cowcatcher posted:

How fast is OpenCV nowadays? Did they streamline the code?

It doesn't seem particularly speedy but I have no reference. The default Haar classifiers for a face take ~100ms on a tiny QVGA source on a 3.2Ghz Xeon which seems a bit crap. The routine actually might be good but everything around it isn't too great.

MrMoo
Sep 14, 2000

nasoren posted:

What streaming server and client software are you using? What multicast protocols and routers, and how big a multicast domain? Any additional encapsulations?

A GStreamer plugin and running the pipeline through gst-launch as it's convenient, anything else would work too. It's the Pragmatic General Multicast, it can scale up to 1,000s clients quite easily with expensive Cisco gear in the middle. You have a choice between back-channel recovery or one-way channel using Reed Solomon FEC (not BCH), it's technically possible to throw LDCP in there to make it more efficient but you would need quite a large long load to demand it, typically file carousels.

I'm only testing it only on a ProCurve switch LAN with a handful of peers though :smith:

I've seen TRDP run to hundreds of clients before NAK implosions take effect. 1-way traffic scales unlimited, unsurprisingly, it's quite interesting reading the Plančte-BCAST stuff but the FLUTE/FCAST algorithms are known to be inferior to PGM due to lack of network element assist.

I don't know many users of PGM even though many companies support it, for market data TRDP is commonly used as it includes point-to-point recovery for small peer specific errors and so scales a bit better on a LAN. PGM however is an open standards protocol and is designed for router-assist. Cisco routers with PGM enabled catch and block duplicate recovery requests, so you can literally have a million clients requesting data and the source only sees one request. Very neat.

FEC is surprisingly cheap if you have a high clock rate, the processor 'speed' doesn't really matter. It's a bit odd but makes a 3Ghz single core Xeon or even P4 faster than 1.6Ghz modern quads or 2Ghz dual-core systems using 'speedier' chipsets.

The plugins are currently running user-mode and so running with UDP encapsulation and port sharing. For recommended security standards to run the real PGM protocol you would need a custom GStreamer shell to run with super-user privileges or restricted system capabilities. Cisco routers can accelerate real PGM protocol packet recovery, not UDP encapsulation, and not 1-way delivery.

It's technically possible to use over InfiniBand but no-one has expressed significant interest to date. Personally, 10G or OpenOnload are more interesting directions.

Let me know if you have any interesting uses for it.

MrMoo fucked around with this message at 17:55 on Nov 29, 2008

MrMoo
Sep 14, 2000

beep, beep. 400,000 multicast packets per second and saturated gigabit. Five-figure switches only, wondering how to acquire a $25k Cisco.

MrMoo
Sep 14, 2000

LOLLERZ posted:

http://pix-plz.com/

The rating system is very neat but the upload page is a bit poor on instruction and feedback. It's giving me a warning about Flash even though I have 10.x installed, doesn't seem completely happy with Chrome 4 on Ubuntu.

MrMoo
Sep 14, 2000

LOLLERZ posted:

I'm glad you noticed and gave me some specific stuff to fix.

More details:


Click here for the full 868x280 image.


The Flash warning implies I have the wrong version installed. Having "Step 2" on the far right and immediately usable is a bit confusing, it should be hidden or below "Step 1".

Once I have browsed for some files it's not obvious that I have completed "Step 1", and the list of files is neither marked as a list of files or clearly separated in the layout.


Click here for the full 1037x298 image.


The "upload files" should be a button if it's an action rather than a link to somewhere else, similar with "browse".

After clicking on "upload files" the progress is shown on the left not the right hand side.

Adding tags appears to be a "Step 3" but not indicated as such. There is no description what to do, that spaces separate tags, or by default nothing is selected - the last file group should be selected.


Click here for the full 1115x399 image.


Adding a tag to an image deselects the image, a bit odd.

You can add duplicate tags to an image.

After adding many tags they are not displayed correctly, some being hidden, and it can be difficult to delete some as the boxes jump about.



After adding tags it's not apparent that I have completed the upload process or what I should be doing next.


(edit) Holy cow, you realize that registering doesn't request or send any password? I have to re-use the registration link to sign in on a different machine.

MrMoo fucked around with this message at 07:11 on Oct 1, 2009

MrMoo
Sep 14, 2000


That's a nice green.

Here's a site I'm working on, I think it was designed two years ago by a Japanese artist but all the gaps left to whither. Let's say it's more functional than pretty.


Click here for the full 1012x744 image.


Account login is via Gmail or Google Apps, I hacked up the PHP-OpenID stuff to get it working with todays current implementations. The live search is a jquery modified and pink version of a scriptaculous version I did before, copying Apple. All the styles and inventory are taken live from a separate inventory system, along with client data from a separate CRM and directory.

MrMoo
Sep 14, 2000

I've been using Gears file upload and server side crop&resize a lot recently and it's turned out quite nice, hopefully sometime soon Chromium release a working HTML5 File API so it's not tied to a few browsers and I get image preview back in the open file dialog in Ubuntu.


Click here for the full 1097x678 image.


Every page has a admin icon that accesses page specific data, the goal is overlaying the administration on the end user site to reduce duplication of effort and to concentrate the navigation on the end user. This site however is a simple example as it's structure is rather small. The icon only appears for users logged in, via OpenAuth, to the company domain.



Click here for the full 1098x682 image.


The administration is all implemented in jQuery UI dialogs and tabs. Help links redirect to Google Sites so that end-users can also update the content with notes.



Click here for the full 1097x681 image.


Uploading an image brings up a standard dialog inspired by Google, although the list of sources is limited in this example it can extend as per requirements to link to other resources. Upload progress is displayed in the dialog using the Gears API feedback.



Click here for the full 1098x681 image.


Crop&resize occurs on a 512x512 scaled version of the uploaded image so you don't have to re-download the entire source image, important with high resolution DSLR photos. jQuery changed the resize icon in recent version and doesn't work as well as it used to, as shown here,


Click here for the full 677x536 image.




Click here for the full 1096x683 image.


Resize&crop complete the browser downloads a thumbnail version and the user can do other work if available. Closing the dialog refreshes the underlying page to reflect data content updates.



Click here for the full 1097x682 image.

MrMoo
Sep 14, 2000

But a secret pent up hatred for tree-huggers, the trees are lifeless without a face.

MrMoo
Sep 14, 2000

shrughes posted:

There is already a sufficient difference between this app and Safari that makes me want to use this app. How should I change this app so that it will pass review?

Showing us pictures of what looks like a web page isn't helping us understand these differences.

MrMoo
Sep 14, 2000


Looks a bit arduous without the most important feature: search.

MrMoo
Sep 14, 2000

MachinTrucChose posted:

I'm working on a tool that would help people find available domain names. You feed it a list of words, and a list of TLDs, and it looks up every variation, like word1.com, word1.net, word2.com, word2.net, etc.



Whilst it would be rather difficult to replicate names on sale or recently expired names you could investigate using a thesaurus like NetSol:

Only registered members can see post attachments!

MrMoo
Sep 14, 2000

It's an emoji, the sound of the characters for doggy poo sound like good luck or something similar. You can thus find oodles of toys and charms shaped as doggy poo in an around Japan.



http://www.japantimes.co.jp/text/ek20070320wh.html

MrMoo fucked around with this message at 11:32 on Nov 10, 2012

MrMoo
Sep 14, 2000


There's a hardware kit for this too, however it's been out of stock for an extended period of time.



http://wyolum.com/shop/11-clockthreejr-diy-kit.html

MrMoo
Sep 14, 2000

MarketPsych does this too, you can add on sentiment analysis and compare social media (twitter, facebook, and thousands of others) with standard news sources.

There are a couple of large companies who do this integration for governments and large organisations doing whatever. Only one I can think of right now is GNIP but plenty of other who also provide various services above such as corporate brand social ratings.

MrMoo
Sep 14, 2000

Suspicious Dish posted:

This boggles my mind every time I hear it. Why?

multicast or in the case of QUIC no head-of-line blocking for concurrent data streams on a single socket.

MrMoo
Sep 14, 2000

hendersa posted:

I've been banging away with gprof to generate timing info for callgraphs of various emulators.

Use oprofile and the same gprof tools to view the results, you will get significantly more useful and accurate results.

MrMoo
Sep 14, 2000

This might be surprising for some, a basic scrolling ticker takes up a lot of CPU and GPU time in a browser, example:



http://miru.hk/tmp/nyse/png/2cpu8.html



Maxed out single core and GPU surprisingly hitting hard, presumably just bit bltting.

Now offload the animation to the GPU but hook up with the CPU for content change at various animation points

http://miru.hk/tmp/nyse/png/2WAgpu8PRNG.html
http://miru.hk/tmp/nyse/svg/baa~timeditem.html
http://miru.hk/tmp/nyse/svg/baa~timeditem.html



Less than 5% on CPU and GPU. Using fancy new web animations API which is in draft and running in 100% javascript but surprisingly well.

I think this is where it is supposed to end up, 8x1 set of monitors in the middle and left, and the bottom of the big 4x4 on the right.

MrMoo fucked around with this message at 02:44 on May 11, 2014

MrMoo
Sep 14, 2000

Modern Pragmatist posted:

Aaaaand Something Awful just got better



Cosby AV looking pretty good.

MrMoo
Sep 14, 2000

Making progress, here's a HTML 5 ticker working on 8 HDTV's connected through way too much crap to a single box with pick a random high end nVidia dual card system and Ubuntu. Something like 11188 x 768px with bevel adjustments, in total ˝ billion pixels per second running at smooth 59.8fps. Why it isn't 60fps is a good question, some random box on the desk is showing signal sync of 59.9Hz which may explain why.



7/8 of the ticker on the floor, the screen on the left is the old system being replaced. One nifty device to get up that high because the ladders are too short. News isn't working because the signage engineers haven't heard of HTTP 1.1 vhosts and thus skipping DNS and using the IP address is not valid. The quotes are coming through Web Sockets which is somehow working without fault, odd as it is usually more finicky.



News finally up after some magic by someone else, the picture is overly messed up because of way too many intermediate boxes scaling and discaling the video signal, it starts of as Display Port, then HDMI then VGA then CAT5 and back to either RGB or VGA. The red cables in the first picture actually carry extra wires for signal synchronisation, a speciality of the Magenta boxes.



About 90% of the problems with this are all hardware based. Amazing.

MrMoo fucked around with this message at 01:14 on May 18, 2014

MrMoo
Sep 14, 2000

Alibaba day, the world gets to see stuff I worked on. Similar to a few pages back, all the screens showing prices and scrolling things:



Big 8-panel wide ticker, each panel is actually orientated vertically and rotated using XRandR in order to bypass acceleration defects in nVidia's drivers:


Big board comprising 4x4 panels, ticker slowed down so not much of a performance problem.


Small board at the main entrance which I think Fox like to sit a camera permanently underneath.


Another variation of the small board, spot the classy HTML encoding error by editorial.


The floor is unsurprisingly busy, hiding behind CNBC all morning.


The first trade indicators as the institutions work on IPO price.


Really rear end looking LED panels showing a barely legible company name.


For some reason this half of the floor has less people, probably because no cameras.


CNBC presenters going blah, blah, blah.

MrMoo
Sep 14, 2000

Two are broken on one end of the floor, no one can be assed to fix them as it takes hours to get up there and change it.

Everything is run by different companies and contractors, NYSE itself was recently bought out by ICE and a lot of things needing attention. Everyone waiting for the new exchange name for example.

MrMoo
Sep 14, 2000

That's barely legible for humans, funny if a machine learning computer system could do better.

MrMoo
Sep 14, 2000

hendersa posted:

Protip: When preparing microSD card images for download, cat /dev/zero into a dummy file until you fill the entire partition. Then, sync the filesystem in the partition, delete the dummy file, and then sync the filesystem again. You'll zero out all of the empty space and it will compress much better. My 7.6 GB microSD card image compressed down to 300 MB with xz.

There are tools in many OS and file systems to do this for you, e.g. zerofree for ext2/3/4.

Also of note, partimage is a smart version of dd that only copies the used section of a partition.

MrMoo fucked around with this message at 02:51 on Mar 4, 2015

MrMoo
Sep 14, 2000

Meanwhile in Enterprise land, sales is looking at $80k for this:



So that's not the app, that's some internal thing that crashes like crazy. It is not the content as that is way more and needs separate licenses for ISIN, CUSIP, SEDOL, and GICS from somewhere or other, it is for simple moving and transforming the data from point A to point B.

The idea is to reduce the effort required for the end-developer to reliably access the content without learning a new API. And whats the content? It is mapping between different financial codes because Reuters has their own symbology and IP lawyers so it is also painful to move between Bloomberg, Reuters, and IDC for content.

MrMoo
Sep 14, 2000

The two floating pieces at the back aren't really helping the illusion.

MrMoo
Sep 14, 2000



Firefox and Chrome have quite an odd event loop which can also process tasks, delayed tasks, and idle tasks. The DevTools interface uses this task feature to communicate between threads and an internal HTTP server, I have cloned this functionality in a very simple market data land app. There are two completely independent threads, one consuming market data (AAPL, MSFT) and storing a cached copy, and one providing copies of a CoW snapshot of the cached copy. I don't want both threads to stall when querying instrumentation and I don't want to be completely mental and have a separate HTTP server for each thread, just the provider. So the HTTP frontend queries over a web socket for provider and consumer thread information, the provider thread can reply immediately, the consumer thread request is enqueued as an asynchronous task. When the consumer thread has finished processing incoming data it executes any tasks, one such is to query the thread instrumentation (which thus does not requiring any locking or synchronization), serializes into JSON and punts back a new task to the provider thread as another asynchronous task. The provider thread then wakes up reads the JSON response and forwards over the web socket.

C++ code:
  // The anatomy of a typical run loop:
  //
  //   for (;;) {
  //     bool did_work = DoInternalWork();
  //     if (should_quit_)
  //       break;
  //
  //     did_work |= delegate_->DoWork();
  //     if (should_quit_)
  //       break;
  //
  //     TimeTicks next_time;
  //     did_work |= delegate_->DoDelayedWork(&next_time);
  //     if (should_quit_)
  //       break;
  //
  //     if (did_work)
  //       continue;
  //
  //     did_work = delegate_->DoIdleWork();
  //     if (should_quit_)
  //       break;
  //
  //     if (did_work)
  //       continue;
  //
  //     WaitForWork();
  //   }

MrMoo fucked around with this message at 01:01 on Dec 12, 2015

MrMoo
Sep 14, 2000

Consider you are only showing the consolidated market price, you should be able to get the price on each market venue, with some people preferring the primary exchange for NYSE. It quickly becomes a beast of data.

MrMoo
Sep 14, 2000

Luigi Thirty posted:

Currently I'm just grabbing whatever the closing price value is set to in this database

I have access to everything but :effort:

Here's the basic page for Apples, check out all the tabs



Surprisingly not a lot of it is accessible programmatically, a mountain of hacks upon hacks.

MrMoo fucked around with this message at 03:11 on May 22, 2016

MrMoo
Sep 14, 2000

Luigi Thirty posted:

I wish I had that kind of visualization! I've got about a hundred indicators I can get through the API that I'm using. I just need to, uh, figure out how to interpret most of it.

It's all D3.js stuff and probably only works in Chrome, the desktop app uses CEF for new stuff and Trident for old content. A similar system is Open F2.

MrMoo
Sep 14, 2000

Targeting 486-DX but only 1.44MB is a bit odd, 1.72MB formats were common then, up to 2MB for I think the MS installers.

MrMoo
Sep 14, 2000

Weee, a fully web standard powered market data distribution platform and into an iPhone.

MrMoo
Sep 14, 2000

My nephew barely knows any HTML or CSS but has managed to make some progress copying the NYSE floor designs, I updated with Polymer and WebComponents to hook up with WebSocket streamed live data.





Polymer is pretty nice, just make up your own HTML tags:

HTML code:
<long-form symbol="TRI"></long-form>
<long-form symbol="BAC"></long-form>
<long-form symbol="F"></long-form>
<long-form symbol="S"></long-form>
<long-form symbol="PFE"></long-form>

Adbot
ADBOT LOVES YOU

MrMoo
Sep 14, 2000

Dynamic CSS and Polymer is surprisingly challenging. Chrome pulled CSS variables in v49 and now they have reintroduced a subset via a Polyfill, I was hoping to use CSS like color: var(--tick-colour); but due to performance reasons the variable is never recalculated automatically.



Also some crap with cascading not working from :host down so that toggleClass() is completely gimped.

Official start date on this project is next week, :toot:

MrMoo fucked around with this message at 02:39 on Feb 25, 2017

  • 1
  • 2
  • 3
  • 4
  • 5
  • Post
  • Reply