Monthly Archives: خرداد 1394

It’s OK To Not Know


It’s OK To Not Know

Or how to stay sane at a new job


I’m a work vagabond. Over the course of six years, I tried six different jobs and now I’m at my seventh halt. This is one thing I've learnt from all these different experiences.

1. Keep calm and do your research

You can’t know everything about the new job. But you can (and probably should) try to get there. No matter what it is, don’t expect someone to hand all the information on the plate and be unbiased about it.

2. Ask for help

People tend to fear coming off as incompetent or even lazy, but asking for help makes you deal with struggles faster. Don’t just limit yourself to the people you work with. Ask advice from everyone you know (and don’t know) who are able to give some worthy piece of mind.

3. Speak your mind

Speaking your mind is good for two reasons: you get to be right; and you get to be wrong. If you’re right, you earn credibility. If you’re wrong, you will be corrected and you will be right the next time. It’s OK to hit and miss, as long as you learn from your actions.


Read the full article on Despreneur and please share your own experiences with me!

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.

It’s 2014 — where is my backendless CMS?


It’s 2014 — where is my backendless CMS?

Please stop the madness


Wordpress, TYPO3, and all other great CMS have a huge backend to give you the opportunity to change every last bit of your website to your needs.

As a frontenddev who regularely works with a lot of content to digest, reorganize and publish for clients or other projects, I still struggle with the decision of a decent system that deals with the important background stuff (accounts, API, revision, newsletter, blog, security) and leaves all the frontend freedom to me.

Sometimes I wonder why I even bother to use a CMS anymore. When clients refuse to learn about editing content in the CMS of choice, or do not care about content that much nevertheless. Organizing content site-by-site, content area for content area is not only exhausting, but also a very unproductive way to get things done.

A valid reason for this could be, that we expect our CMS to do anything for us.

Should we either use a mediocre solution for everything or a good solution for one thing at a time? Most clients are happy with a blog/page mix. If we want more, we need to look for plugins, addons or widgets. Or even worse: use another service that we can hopefully adapt to the same style as the current mainwebsite has. So if our client needs a shop, maybe a newsletter opt-in, throw in another contact form, we soon have a clutter of shopify, mailchimp and other third-party software. Well done. This is not the way.

The Dream — a new concept to organize content in the way we love to.

Did you ever happen to hit refresh on the frontend after every insertion to see, if the content as inserted looks any good? Medium is very good at this: the editing and the result are almost identical. This is because the markup is done via the nice selection-tool and some on-hover icons to add embeds/images. Medium does this not via toolbars, widgets or similar that display all possibilities you have at one time.

If we strip our toolbelt down to something more simple, we can create something thats easy to use but powerful.

A few mockups later

If I were going to create a CMS, this is how I would begin to plan it.

Created with Balsamiq Mockups — their software is awesome!

Core principles:
Layout
, Module and Content editing.

The possibly most impressive editing tool to demonstrate, would be the modules.

The underlying idea of this, is that modules can have as many content areas as you need. You build them with HTML via your templating engine of choice (Smarty, Twig or Fluid maybe) where you set content areas that can be edited in the frontend. What kind of media it contains (text, images, date, etc) and where they get displayed in the markup.

Example of a bootstrap slider implementation

There is a CMS called Fireball, it’s developed to live on top of the Woltlab Community Framework. It makes use of the concept of having modules you can repeatedly use all over the website. See Example.

The light blue area is a rows-module that is selected. You can move it around via drag and drop, add another row via the + in the upper right corner, delete and of course also copy it.

How awesome would it be to add new rows at the click of a button?

Want to copy it to another page? We know how to copy on our desktop environments with the help of our keyboard, I could think about something similar: select the module, press ctrl and then drag it to the desired navigation item, and it would presumably land in the first available main content area. Want a cross reference where both items stay the same when you edit just one? ctrl+shift+drag it somewhere. It works so nicely in windows or other Desktop UIs, why not use the same idea for the web? It’s not only easy, on top of that — it would be intuitive to move around and add new stuff. I am not quite sure if I should make use of a selfmade context menu.

This Frontend/Backend-in-one solution would be javascript-heavy. At least for the editing.

Some predefined modules:

Rows, Page Navigation, Breadcrumbs, Language Selector, Article with or without Comment section, Slider, etc etc.

You could even restrict some modules to some parent-modules. There is no use for lists in tables and vice versa.

Content Editing as we know it

Not much to say on this one: There is already a library for a medium.com similar editor: https://github.com/daviferreira/medium-editor.

Layout

Usually, this is the first thing you do when you are done with the content: you decide which content goes where. The only thing I can think of is that you can set which parts repeat across other pages. Like navigation, header together with logo + slogan and subscription opt-in. The main content area could have an element that is always present in the same layout.

By now, we have covered all aspects of professional flexible templates:

We have a layout, partials and the actual content. We can easily change it to our needs.

TYPO3 Fluid is awesome in the way it organizes the layout:

Conclusion

There are still a few points open. For example: how to deal with hidden navigation items. Overall, I would really love to use something that is this easy to modify and expand. I always struggled with the existing Systems to add my custom stuff in a quick manner, without polluting RTF editors with my HTML, which is not well editable for clients. Another issue is, that making a CMS this easy to use, would perhaps empower our clients to fuck the whole website up very easily.

We also havn’t covered how we would set different sizes on rows — for now it’s only even sized container.

Please let me know what you think about it, and if you either believe that this idea has a future or not.

Kudos

This article is a created as a response to @nobackend ( http://nobackend.org/ )

[embedded content]
https://twitter.com/martinmuzatko/statuses/469436290765975553
[embedded content]
https://twitter.com/noBackend/statuses/469436783626039296

Further Read

I recommend this one: Brad Frost on Modular Frontend: http://bradfrostweb.com/blog/post/atomic-web-design/

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.

Spend less time perfecting and more time evolving


Spend less time perfecting and more time evolving

A case study in how “almost-finished” is better than never finished.


While we were redesigning our web app for Trading Paints last year, we took our time. We told ourselves the update wouldn’t go live until we had reached 100% perfection — after all, this launch would directly set the tone for our long-term future, and we’d only have one shot at introducing our new set of features.

Our well-intentioned mindset of perfectionism turned what should have been a small evolution into an astoundingly lengthy two-year redesign process (in Internet years, that’s practically a decade).

In those two years, we went through three different design and feature concepts, scrapping the first two iterations entirely and landing on a third. We threw away a lot of time and effort getting to Concept Three. Through all this, I thought I was going to scare away our lead programmer, who had to do a lot of re-work over that time.

The lesson we learned was that “good enough”, despite what others had always told us, is OK — that is, as long as you commit to evolving your product once you’ve shipped it.

It’s getting to the “shipped” status that’s the important part.

Our two scrapped redesigns would have been major improvements over our 2009-built Web 2.0 mess we set out to replace. Because of our Perfectionist’s Disease (well, stubbornness, really), our users had to deal with an icky, outdated, inefficient web app for two years longer than they should have.

It’s more important to ship a product in the first place than it is to ship a perfect product. Chances are, most of your audience won’t realize something nearly finished isn’t actually completely finished in your mind.

In our case at Trading Paints, our audience would have been delighted by any of the “imperfect” designs or features we built but didn’t release.

Eventually, at a certain point in our magical third concept, we shifted our focus to getting the damn thing out the door, promising ourselves we’d improve once we were live. This shift in our thinking led to a quicker launch, an end to two-years of wheel-spinning, and 25,000 happier users.


Self-proclaimed perfectionist Sean McCabe suggests curing perfectionism by aiming for 90%. This is solid advice for someone dealing with Perfectionist’s Disease.

Using McCabe’s 90% model, you shouldn’t spend so much time trying to perfect the last 10% when you can instead ship at 90% and evolve once you’ve reached that point. In our case, we had the opportunity to evolve and improve after we launched our redesign. In the case of a designer or developer doing project-based client work, evolving means aiming for the 90% mark and improving in your next attempt. If you’re a perfectionist, it’s awfully likely that 90% in your mind is 100% in other people’s minds.


We eventually launched the new Trading Paints earlier this year, still perfecting things and evolving features as days go on. Even after releasing an “almost-finished” product, our users have been delighted by the updates and pleasantly surprised when we drop in new features that we once swore we couldn’t launch without.

Our only wish is that we’d have stopped trying to be perfect two years sooner.


Note: This advice does not apply to brain surgeons.

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.

رونویسی از حیرانی‌ها – 34

دو

در سر
سه خیال داشتم
مثل درختی
که در خود
سه زاغچه دارد
---------------

چهار 

یک مرد و یک زن
یک وحدت
یک مرد، یک زن، و یک زاغچه
همچنان یک وحدت
------------------

هفت

آی
مردان باریک اندام حدامی
از چه روی پرندگانی زرین‌بال
اندیشه می‌کنید
مگر آن زاغچه را نمی‌بینید
که در حوالی همسران‌تان
پرسه می‌زند
---------------

هشت 

الفاظ فاخر بسیار می‌دانم
و اوزان زلال فراموش ناشدنی
و این را نیز می‌دانم
که زاغچه سهیم است
در آنچه که می‌دانم
-----------------

نه

هنگامی که زاغچه پر گشود
جدار دایره‌ای را
از دوایر بسیار
شیار زد
-----------------

دوازده 

رودخانه‌ای در گذر است
زاغچه‌ای باید
به پرواز در آمده باشد
--------------------


از:
سیزده شیوه نگریستن به زاغچه
والاس استیونس
ترجمه: عباس صفاری

کافه

از کافه بیرون آمدم

کافه انتهای یک خیابان نشسته بود

کافه را با خودم نبردم

کافه در انتهای یک خیابان تنها ماند

سال‌ها گذشت

به کافه برگشتم

کافه انتهای خیابان نبود

خیابان نبود

هیچ نبود.

پیش‌ترها

پیش‌ترها

حرف‌هایم بهتر درک می‌شد

این روزها وقتی می‌گویم

می‌خواهم با یک سرخپوست مرده درد دل کنم

بقیه می‌خندند

وقتی می‌گویم یکبار این کار را انجام دادم

سرخپوست مرده حرف‌های مرا شنید

و بهترین حرف‌ها را به من زد

همه تعجب می‌کنند

فقط

این روزها

سخت می‌شود سرخپوست مرده پیدا کرد.

Create an app Firefox OS


Create an app Firefox OS

The garden of Eden for Front end developers


Few weeks ago, I went to @lxjs conference which was great. Soledad Penadés explained me the vision of Firefox OS, and I found it exciting.

Screenshot of my simulator

After ten days, I started to work on creating an app for this system on my free time. I needed a simple but useful idea for me: a Buffer client for Firefox OS.

Before I started to develop with a library or system, I like to read their documentation. On that point, Firefox OS has the advantage of the documenting spirit of Mozilla: detailed in different languages and examples https://developer.mozilla.org/en-US/Firefox_OS.

Preparation

Now time to develop this app! I setup a front-end project like I’m used to doing it: NPM, Bower, Gulp.

I chose AngularJS, but promise, I will try Polymer or React in the next one. I could use Ionic Framework for the UI, but I wanted to try the Gaia interface. Have a look there: http://buildingfirefoxos.com/index.html

What is truly good with Firefox OS, it’s the fact they’re using the same libraries as third-party developers to make the system: UI elements, transitions, etc. The code of the default apps is open source too. So you can get inspiration by looking at it: https://github.com/mozilla-b2g/gaia

The only difference with a website is the app manifest: https://developer.mozilla.org/en-US/Apps/Build/Manifest. It’s not that different from a Google Chrome App’s manifest. You have to set the permissions, icon files. Good point, you need to describe the need of each permission. It will help the user to understand what he allows. No more bullshit permissions for games, yeah!

You have three types of app:

  • Hosted: The app is hosted online. Limited access to the APIs
  • Privileged: The common one in mobile. Mix between the others.
  • Certified: Access to sensible APIs like manage the WIFI, monitor the networks. The system apps have this status.

You can check the list of permissions here: https://developer.mozilla.org/en-US/Apps/Build/App_permissions

Good point, the user can change the permissions of the app even after the installation. The spirit of Firefox OS is focused on the transparency of the system, letting the power to the user. I’m fond of the concept! So you need always to check if the permission is granted before making a call to the API.
If you root your Android phone, I think you can do it too but it’s a hack, some apps may be buggy, and I don’t even talk about the closed-mind spirit of iOS…

The Dev tools of Firefox OS 1.3 can’t debug network requests while Firefox OS 2.0 yes. So I decided to work only on my browser until I need a device-specific API.

Simple Python HTTP server

I didn’t use file:/// because you can set the origin property in the manifest. It will look like app://my-app.com. Useful for origin problems.

Redirector extension

It simulates the redirect property of app manifest. This property allows you to have an automatic redirection from a page to another inside your app. It’s much simpler to use that instead of having an in-app browser for OAuth authentication.

CORS proxy

Firefox doesn’t have a security flag like Canary, so you need to bypass the checking of CORS by doing that if the API used doesn’t provide it. Remember it’s only on desktop. In Firefox OS, you have this permission: systemXHR (https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest#mozSystem)

Notification

Local notifications are the same as the one defined in the specs of HTML5. For the APIs which aren’t specific to the device, you can test them directly on your desktop. Sometimes, you’ll need to the nightly version. It wasn’t the case for me on this app.

Web Activity

This API allows you to delegate an activity to another. It’s the Intents of Android. I played a little bit with the simulator, and it’s easy to use. It’s well described here: https://developer.mozilla.org/en-US/docs/Web/API/Web_Activities

User Interface


Screenshot of the email app

As written earlier, all the UI elements of the system are open-sourced. You can custom them with CSS. Follow the guidelines to have an app well integrated: https://www.mozilla.org/en-US/styleguide/products/firefox-os/

I had some frustrations due to the lack of examples and uniformization of design elements (the icons of the header aren’t the same as the edit ones) but it will be improved.

I didn’t play enough with transitions due to the lack of time that I had but so far I tested; it’s easy to add them in your app. They look smoothed in the simulator. I will try on my soon-coming Firefox Flame.

Open System, Open services

The team of Mozilla is known by always open source their code. All the Firefox OS system is available online. But it is interesting to know they open sourced the code of the marketplace and the push server.

You can put your app in the default marketplace or another one, you’re free. You can set a whitelist of marketplaces in the manifest of your app. Android allows that too, but you need to enable the unknown sources. It’s not safe and hard for not advanced users to do it.

The push system is intelligent too. You wake up your app by sending a simple request. No title, description or sound. It’s like the silent notifications in iOS. The main advantage is to avoid sending sensitive data to Mozilla servers. We can trust them but to they can be compromised by a cracker (or the NSA). You can set a version property which is a number that keeps increasing. Your backend tells the Mozilla servers about a new version whenever it wants an App to be notified.

You can read more about it here:


My App

I didn’t describe in details the development of my app because the process was the same as a Single Page Application. The code is available here: https://github.com/yrezgui/buffer-firefoxos

If you have any questions, feel free to contact me: http://www.yrezgui.com

Screenshot of my app

Conclusion

I just loved to create an app for Firefox OS. I rediscovered the excitement that I got when I developed Firefox and Chrome extensions. The simulator debugger still need to be improved (a right-click on an element doesn’t display the options of the desktop one), the UI library is nearly done but the system is ready. I developed for Firefox 1.3, but version 2.0 is already available in beta.

Bonus point, the simulator, doesn’t take ten minutes to open as the Android one, and you don’t need to wait your app to be loaded to open the inspector like iOS. You can catch easier the errors at the loading.

The philosophy of having a complete open source system, default open source apps, manageable permissions for each app is the right way to do mobile OS. But it doesn’t mean the system needs to look ugly, or it’s hard to use it (I’m looking at you MeeGo!). Creating apps is starting to be cool again, so rush for it ☺

This entry passed through the Full-Text RSS service - if this is your content and you're reading it on someone else's site, please read the FAQ at fivefilters.org/content-only/faq.php#publishers.

از رنجی که میبریم…

آن سالهایی که برای کنکور می خواندم، در تصوراتم از روانشناسی، خودم را در اتاقی می دیدم در طبقات بالایی آپارتمانی در یکی از خیابان های پر تردد شهر، که پنجره هایش رو به خیابان و پیاده رو ها باز می شود. همیشه در خیالاتم فرد افسرده ای را می دیدم که به من مراجعه کرده و از ناامیدی هایش می گوید و من هم پس از کمی گفتگو بلند می شدم و قهوه ای می ریختم و بهش می دادم و خودم هم با فنجان قهوه ام به سمت پنجره می رفتم و پرده را کنار می کشیدم و به بیرون نگاه می کردم و از مراجع هم درخواست می کردم که با من به بیرون نگاه کند. به مردمی که بی تفاوت در حال و رفت و آمد هستند. مردمی که بعضی شان عجله دارند و بعضی شان آهسته راه می روند، بعضی ها تنها و بعضی ها با همراه، بعضی هایشان پیر هستند و بعضی جوان و خردسال، دست بعضی ها در جیب و دست بعضی ها در دست دیگری، بعضی شان می خندند و بعضی شان در فکر فرو رفته اند. آنوقت رو به مراجع می کردم و می گفتم؛ ببین! زندگی همین است، همین آدمهایی که بی تفاوت به من و تو در حال گذر هستند.
حالا چند سال است که درمان می کنم و هیچ وقت، هیچ مراجعی را به سمت پنجره نبرده ام تا آدمها را نگاه کند و بفهمد که زندگی همین است، اتفاقاً اتاق های درمانم همیشه رو به پیاده رو باز می شوند و می شود از آنجا آدمها را دید که بی تفاوت به ما، این سو و آن سو می روند. فلسفه ی آن خیالات درست بودند، اینکه زندگی بدون ذره ای اهمیت به ما در جریان است، چه ما خوشحال باشیم و چه غمگین، چه تنها باشیم و چه با همراه، چه پیر باشیم و چه جوان. به واقع این واقعیت بی رحم دنیای ماست که بی هیچ توجهی به ما روز را به شب می رساند و شب را به روز، فصل ها را عوض می کند و بهار را زمستان. و حتی آنقدر می تواند بی رحم باشد که روزی زمین دهان باز کند و خواب هزاران نفر را آشفته کند و ما آنقدر در این پهنای گسترده ریز هستیم که عملاً به حساب نمی آییم.
آدم هایی که در پیاده روهای خیالی افکار من زندگی می کردند، می توانستند به درمانجوی خیالی من کمک کنند، ولی حالا به این فکر می کنم که دنبال دلایل بیرونی برای زندگی گشتن، تلاش بیهوده ای است و راه به جایی نمی برد. شاید حالا ترجیح می دهم مراجع را به درونش هدایت کنم و با پیاده روهای درونش آشنا کنم، آنجایی که غم وجود دارد و شادی، آنجا که می تواند فصل های زندگی اش را خودش به دست گیرد، آنجا که می تواند تابستان زندگی اش را زمستان کند یا پاییز را بهار، آنجا که می تواند با تنهایی ها و بیهوده گی هایش روبرو شود، آنجا که زندگی واقعی با تمام دلهره ها و اضطراب هایش جریان دارد.
حالا فکر می کنم، هر وقت آدمها مسئولیت گرفتاری های زندگی شان را پذیرفتند، و معنایی برای همین رنجی که از زندگی می کشند پیدا کردند، زندگی شان بهبود پیدا می کند و این تجویزهای بیرونی دردی را دوا نمی کند.

منبع :وبلاگ اگزیستانسیالیسم/ روان درمانی، فلسفه

نویسنده:غلامرضا میناخانی

 

I’m on drugs

 فقط پاییز نیست. دارو هم می خورم. چقدر همه ی عمرم فکر کردم هیچ مشکل ذهنی و روانی با روانکاو و روان شناس و گروه درمانی حل نمی شه؟  چقدر به همه ی دوستای داخل ایران و ایرانی م که روانکاو و روان شناس دارند- که کم هم نیستند-  گفتم این ها همه ادای روشنفکریه؟ احتمالن هنوز یه قدم خیلی کوچک مانده تا به اون جا برسم که قبول کنم این ها ادای روشن فکری نیست اما فعلن به مرحله ای رسیدم که مطمئنم دارو نتیجه می ده. روان پزشکی از لیست اداهای روشن فکر حذف شده. هیچ وقت توی زندگی م نتونستم تمرکز کنم، و این جدید نیست، تمام سالهای ابتدایی مامانم آمد مدرسه معلم ها گفتند خیلی وول می خوره و حواسش پرته.  بعد فکر کردن شاید چون درسها رو بلدم حواس پرتم، این شد که وادرام کردن به تابستان ها هم درس خوندن تا از روی کلاسها بپرم. تابستان هم حواس پرت بودم، شهریوری که قرار بود کلاس دوم رو امتحان بدم صبح روز امتحان املا مامانم ازم املا گرفت، شدم منهای بیست و پنج. املا می گفتند گوش نمی کردم و به جای این که دقیقن همون کلمات رو بنویسم مضمون کلی رو می نوشتم. می گفتند کلمه، می نوشتم واژه یا بر عکس. می گفتند با سرعت، می نوشتم سریع. فقط مامانم شانس آورد که املای بچه ی دوم ابتدایی نیم صفحه است و نه پنج صفحه.  بقیه سالهای مدرسه و دانشگاه هم همین بود، بعدها توی اروپا دیگه خودم خیلی سر حواس پرتی سر کلاسهای دانشگاه سرزنش نکردم، عادت کرده بودم. تنها چیزی که می تونست باعث بشه تمرکز کنم کتاب خوندن بود، رمان. هیچ وقت نتونستم یه فیلم یک و نیم ساعته رو خودم ببینم بدونی این که بیست بار عقب و جلو بزنم. توی سینما و تئاتر نشستن برام عذاب بود وقتی از نیم ساعت می گذشت.  نمی تونستم  تمرکز کنم و این باعث می شد کارهام رو نتونم انجام بدم و کار انجام ندادنم باعث استرس م می شد و استرسم از یه حدی که می گذشت شبیه دیوانه هام می کرد. 

حالا حالم خیلی خوبه. می تونیم به پاییز هم ربطش بدیم، اما خودم می دونم که فرق می کنه. این که آدم احساس کنه که روی ذهنش کنترل داره  خیلی حس خوبیه. فکر می کنی روی جهان کنترل داری، و این برای آدمهای کنترل فریک خیلی مساله ی مهمیه. می دونی هیچ چیزی مهم تر از ذهنت برای کنترل کردن وجود نداره. بعد چون چیزی به این مهمی سر جاشه، دیگه چیزهای کوچیک خیلی اذیتت نمی کنه. همکارم که پنج شش ماهه آمده و از وقتی آمده بود من رو در حال داد زدن سر دیگران، در حال بغض و استرس دیده بود، باورش نمی شه آدمی که از سفر برگشته همون سارای قبلیه. هر بار که می بینه دیگه مثل ترقه نمی پرم با هر تلفنی، و  هر مشکلی که همه رو عصبی می کنه، با من کاری نداره هی می گه ?Are you on drugs Sara