NexGeN Easy & Safe Hacks

Last updated by DhrupDeScoop Comments (44)

Hope to publish some nexgen easy & safe hacks for those who are beginning with Elgg Development or are  newbies or users who want to do 'something technical' to their sites, but cannot code for peanuts ;-)

  • The beauty of elgg is,
    while we cannot undo what is done,
    we can see it,
    understand it,
    learn from it and change.
    So that
    every new moment is spent
    not in regret,
    guilt, fear or anger,
    but in wisdom, understanding and code.


  • Elgg Data Folder Storage Hashing Matrix Improvement:

    Cannot find wherever this was discussed before... so here goes ;)

    I've been playing around with some () simpler DHT alogrithms and concocted one using Prime Tables and Modulus; did somewhat 1/2 way extensive testing and -- seems to generate Hash buckets indices mostly uniformly distributed - with only some slight skewing of the distribution.

    The aim was/ is to actually come up with some 'universal' algorithm that could be be used sharding the data folder for eentual "scalabiity" ;oO -- for later when considering a truly distributed elgg data store.

    The skew appear to be clustered near the high order buckets - most likely due to a weak random number generator (php's mt_rand;) Wonder if there's better pseudo-random number generators to test generated key sequences or... maybe my old friend Knuth's Vol3 has got 'just' the trick. I'll check...

    Some sample test-runs, with the spreads -->



      0:     0 	  5   XXXXXX                                                          
      1:     2 	  2   XXX                                                             
      2:     3 	 13   XXXXXXXXXXXXXX                                                  
      3:     5 	  5   XXXXXX                                                          
      4:     7 	 13   XXXXXXXXXXXXXX                                                  
      5:    11 	  3   XXXX                                                            
      6:    13 	 13   XXXXXXXXXXXXXX                                                  
      7:    17 	  5   XXXXXX                                                          
      8:    19 	 11   XXXXXXXXXXXX                                                    
      9:    23 	  6   XXXXXXX                                                         
     10:    29 	  8   XXXXXXXXX                                                       
     11:    31 	 12   XXXXXXXXXXXXX                                                   
     12:    37 	  4   XXXXX                                                           


      0:     0 	  4   XXXXX                                                           
      1:     2 	  3   XXXX                                                            
      2:     3 	  4   XXXXX                                                           
      3:     5 	  7   XXXXXXXX                                                        
      4:     7 	 13   XXXXXXXXXXXXXX                                                  
      5:    11 	  7   XXXXXXXX                                                        
      6:    13 	  8   XXXXXXXXX                                                       
      7:    17 	  2   XXX                                                             
      8:    19 	  7   XXXXXXXX                                                        
      9:    23 	 13   XXXXXXXXXXXXXX                                                  
     10:    29 	  5   XXXXXX                                                          
     11:    31 	 22   XXXXXXXXXXXXXXXXXXXXXXX                                         
     12:    37 	  5   XXXXXX                 



      0:     0 	  5   XXXXXX                                                          
      1:     2 	  5   XXXXXX                                                          
      2:     3 	 10   XXXXXXXXXXX                                                     
      3:     5 	  8   XXXXXXXXX                                                       
      4:     7 	 11   XXXXXXXXXXXX                                                    
      5:    11 	  6   XXXXXXX                                                         
      6:    13 	  9   XXXXXXXXXX                                                      
      7:    17 	  2   XXX                                                             
      8:    19 	  2   XXX                                                             
      9:    23 	  8   XXXXXXXXX                                                       
     10:    29 	 10   XXXXXXXXXXX                                                     
     11:    31 	 19   XXXXXXXXXXXXXXXXXXXX                                            
     12:    37 	  5   XXXXXX      



      0:     0 	  9   XXXXXXXXXX                                                      
      1:     2 	  3   XXXX                                                            
      2:     3 	  5   XXXXXX                                                          
      3:     5 	  5   XXXXXX                                                          
      4:     7 	  6   XXXXXXX                                                         
      5:    11 	  4   XXXXX                                                           
      6:    13 	  5   XXXXXX                                                          
      7:    17 	  5   XXXXXX                                                          
      8:    19 	  6   XXXXXXX                                                         
      9:    23 	 14   XXXXXXXXXXXXXXX                                                 
     10:    29 	  9   XXXXXXXXXX                                                      
     11:    31 	 26   XXXXXXXXXXXXXXXXXXXXXXXXXXX       



      0:     0 	 10   XXXXXXXXXXX                                                     
      1:     2 	  3   XXXX                                                            
      2:     3 	  6   XXXXXXX                                                         
      3:     5 	  3   XXXX                                                            
      4:     7 	 10   XXXXXXXXXXX                                                     
      5:    11 	  8   XXXXXXXXX                                                       
      6:    13 	  7   XXXXXXXX                                                        
      7:    17 	  4   XXXXX                                                           
      8:    19 	  8   XXXXXXXXX                                                       
      9:    23 	 15   XXXXXXXXXXXXXXXX                                                
     10:    29 	  8   XXXXXXXXX                                                       
     11:    31 	 15   XXXXXXXXXXXXXXXX                                                
     12:    37 	  3   XXXX

  • swapped to sha512 for test-data generate and the hashed bucket assignment spread become much more uniform;) still some skews apparently present, but marked improvement.

    beyond the intrinsic data folder/ subfolder assignments -> the data storage can be delegated to independent 'storage nodes' a la distributed (database) storage mechanisms. looks like this is starting to lead to *some place interesting. esp for 'scalability' aspects. the same DHT algorithm applied to sharding the database tuples --> maybe => some substantive benefits for scaling the whole of elgg's database for (scalability&) performance.

  • ♥ ♫ OkieZ ;oO;X;P --> An easier to search Elgg PlugIns Index Listing (&almost-up-to-date!;) ♫ ☺==>

    A Tabled DataGrid with dynamic Column Sorting by -- PLUGIN, ♥♫☺, DL & DESCRIPTION, DEVELOPER, DATE; "LiveSearch" (veryy fasttt!) of all text content (I grabbed some jQuery PlugIns stuffs to do this;) ---

    All data was 95% meticulously, carefully, lovingly prepared after live curl`d-screen-scraping from Comm@Elgg and then formatted for this sccop of an index.

    Use it or lose it ;o) Never need to ask again about 'which PlugIn' is out there, what does what, who coded what, blah, whatever, blah, whatever, yaddaaduh... ♫♫♥♫☺Enjoy ♥♫☺♫♫♫




  • Nice list. And yes, search is fast :)

  • That is really neat, using control F you can search for keywords to hone in on your search, awesome list!!

    This is a recomendation from me, +1 Dhrup

  • updated for @2012 11 06
    ♥ ♫ OkieZ ;oO;X;P --> easySearch Elgg plugInsIndex listing (updated) ♫ -->
    or also

  • hey guys:

    just 'playing around..' with my usual code trix stuff and.. stumbled on
    a method to sneak-grab a php class's protected variables ! dammn !

    cain't figure out yet if this cud ever lead any security situations..
    but wondering....;-o)


  • weelll;) kinda lost some traction earlier with some side-events.. but looks like  is back at #1 for 'facebook for kids' -- so says google. and iu says 'powered by elgg' at the bottom ;-)

  • "Pay with a Tweet" ?;) interesting idea for promoting.. tho i don't quite like having to hook into their 'app' rather than an api which they do not provide; so i thinks me gonna code up my own 'api' thang to do the same tweetngz ;P

  • too many.. related but sometimes disparate and disjointed requests for this sort of privacy control feature for elgg sites. i might spend some time looking into what it takes to develop a comprehensive feature-set plugin to cater for such levels of control. if y'all elggsters.. anyone wants to contribute and be part of the action to the idea-jam-pot.. just have your say.. @here ;oO maybe likely i will be listening. i believe the technique is called 'helping a developer to help you get what you want..'

    ▓User Controls▓Ignore░Block░Privacy░Permissions▓


  • " If you give someone a plugin, it will frustrate them for a day; but if you teach them how to code plugins, now.. that will frustrate them for the rest of their lifetime ! "  -- DeScoop's Coding Curse.

  • -- oki, also fixed the smiley recommend column for sorting; only remaining part is to add fully functional 'FaveTagging' w/ data save * reporting and// maybe we'll have something decent to judge, search, review all plugins ;oO less work for you; more fun for plugin devs; everyone wins ;-)

  • Sitting idle here, nothing better to do lolz ;-)
    && some of the top dwnloaded plugins ae -->

        DL 062173 Full-featured Photo Gallery plugin
        DL 037258 Profile Manager
        DL 031711 Integrates an Ajax Chat
        DL 029388 Adds group & site-wide event calendars to Elgg 1.5
        DL 025293 iZap Full featured video plugin
        DL 025268 Simple BlueWhite theme
        DL 021488 A cut down, mobile version for your site
        DL 019864 Make your Elgg site look FB
        DL 018116 Simple Neutral theme with menu bar
        DL 017200 Customize your mainpage just like user's profile page.
        DL 015164 Form and related plugins
        DL 013874 Custom index with widgets
        DL 012820 Pure Elgg based Chat/IM
        DL 012707 A simple theme with only two colours
        DL 012475 Add videos from Youtube, Hulu, Vimeo, Metacafe
        DL 012101 Friend request Let users confirm friend requests
        DL 011835 Socialize me Theme
        DL 010963 Chat plugin (Frei Chat) for Elgg 1.8.X
        DL 010911 Likes This module allows to mark objects as 'I like it'
        DL 010388 Extended topbar
        DL 010303 River Comments
        DL 010183 Elgg 1.8 / Elgg 1.7 translation Brazilian Portuguese
        DL 010095 SMTP, HTML emails, BCCs and file attachments


  • -- added 'FaveTagging' w/ data save & reporting;

    just need to get some assistance from the core team here to interface and copy the collected data over for for community pages integration here; 

    something decent to judge, search, review all plugins ;oO less work for you; more fun for all; everyone wins ;-)


  • Serious Security Breach: Time to start worrying:= 

    I discovered a spam security breach recently on a client site;
    I had thought some users were the client's friends setup for testing.
    Client said 'nope' ;)

    So.. Users all deleted & apache logs downloaded for study
    -- I had some *tight traps in place to block spammers
    but it seems that they got through.

    Unthinkable that anyone could break through my traps.
    The end-symptom of breach is 'User cannot be deleted'
    and a few other things - which I will discuss only in private;
    or if the Core Team is readng and they want to talk.. 
    Everyone knows where I can be contacted.

    It looks like these spammers have PhD
    degrees in Computer Sciences!!
    They are that smart - judging by their tactics.


  • (lesser known) tricks for devs ->
    didy'all know that jquery can be executed server-side ?
    kinda makes dom manipulation as easy as.. jquery !?
    there's also a cpl of other pkgs/methods and also
    may sometimes help eliminate lengthy regex juggling :--

    one pet-peeve of mine is that there seems to be no
    easy pkg`d utilities to handle on-the-fly input validations;
    some addons exist - jquery and others - that cater for this;
    i'll be looking at some -- to handle interactive input data
    validations for elgg forms - maybe some incorporate extra parms
    for the elgg input/ views library - then validations could be
    more easily affected (perhaps even ajax`d validations) and so..
    make the user experience smoother and also highten the
    efficiency and server-load angles.

  • Scoopz back, glad you are alive.


  • I had to phone him last time...

  • Most desperate features for elgg
    Mobile uploads of media,
    Easy management of media via mobiles,
    And via all methods.. once inside the
    (Elgg) site -- all funky techniques need
    To be avail.. ++ ajax 1or/2 the places at leas
    Most other cms/ platforms have levels of
    Ajax already, except elgg..
    TtCl mor semesters and we will become
    hgistory, no more the cuttin edge...
    Life is precious.. use it wisely...

  • has any other dev  investigated, tried devels using android, iphone, smart phones

    as the platform for everything ?? stuck here @ hosp has made,me wonder 

    what cud be possible.. since i'm  expected 2 b in here q a few many mnthssss!!

    might as well really 'move in...' almost permanently....

  • I'd figured y'all have mucho tons to say, talk,
    B/c Mobile & Smart Devices are taking.over everything...
    Kinda wonder who wants to willingly be
    'Left behind...' technology....
    Enjoy while the bubble lasts.......